| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
| 10 #include "SkData.h" | 10 #include "SkData.h" |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 for (auto& handle_access_func : | 293 for (auto& handle_access_func : |
| 294 { &get_surface_backend_texture_handle, &get_surface_backend_render_t
arget_handle }) { | 294 { &get_surface_backend_texture_handle, &get_surface_backend_render_t
arget_handle }) { |
| 295 for (auto& accessMode : accessModes) { | 295 for (auto& accessMode : accessModes) { |
| 296 auto surface(create_surface()); | 296 auto surface(create_surface()); |
| 297 test_backend_handle_access_copy_on_write(reporter, surface.get(), ac
cessMode, | 297 test_backend_handle_access_copy_on_write(reporter, surface.get(), ac
cessMode, |
| 298 handle_access_func); | 298 handle_access_func); |
| 299 } | 299 } |
| 300 } | 300 } |
| 301 } | 301 } |
| 302 #if SK_SUPPORT_GPU | 302 #if SK_SUPPORT_GPU |
| 303 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceBackendHandleAccessCopyOnWrite_Gpu,
reporter, ctxInfo) { | 303 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceBackendHandleAccessCopyOnWrite_Gpu, re
porter, ctxInfo) { |
| 304 const SkSurface::BackendHandleAccess accessModes[] = { | 304 const SkSurface::BackendHandleAccess accessModes[] = { |
| 305 SkSurface::kFlushRead_BackendHandleAccess, | 305 SkSurface::kFlushRead_BackendHandleAccess, |
| 306 SkSurface::kFlushWrite_BackendHandleAccess, | 306 SkSurface::kFlushWrite_BackendHandleAccess, |
| 307 SkSurface::kDiscardWrite_BackendHandleAccess, | 307 SkSurface::kDiscardWrite_BackendHandleAccess, |
| 308 }; | 308 }; |
| 309 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { | 309 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { |
| 310 for (auto& handle_access_func : | 310 for (auto& handle_access_func : |
| 311 { &get_surface_backend_texture_handle, &get_surface_backend_rend
er_target_handle }) { | 311 { &get_surface_backend_texture_handle, &get_surface_backend_rend
er_target_handle }) { |
| 312 for (auto& accessMode : accessModes) { | 312 for (auto& accessMode : accessModes) { |
| 313 auto surface(surface_func(ctxInfo.fGrContext, kPremul_SkAlphaTyp
e, nullptr)); | 313 auto surface(surface_func(ctxInfo.fGrContext, kPremul_SkAlphaTyp
e, nullptr)); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 | 391 |
| 392 auto surface(create_surface()); | 392 auto surface(create_surface()); |
| 393 test_unique_image_snap(reporter, surface.get(), false, getImageBackingStore, | 393 test_unique_image_snap(reporter, surface.get(), false, getImageBackingStore, |
| 394 getSufaceBackingStore); | 394 getSufaceBackingStore); |
| 395 surface = create_direct_surface(); | 395 surface = create_direct_surface(); |
| 396 test_unique_image_snap(reporter, surface.get(), true, getImageBackingStore, | 396 test_unique_image_snap(reporter, surface.get(), true, getImageBackingStore, |
| 397 getSufaceBackingStore); | 397 getSufaceBackingStore); |
| 398 } | 398 } |
| 399 | 399 |
| 400 #if SK_SUPPORT_GPU | 400 #if SK_SUPPORT_GPU |
| 401 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(UniqueImageSnapshot_Gpu, reporter, ctxInfo
) { | 401 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(UniqueImageSnapshot_Gpu, reporter, ctxInfo) { |
| 402 GrContext* context = ctxInfo.fGrContext; | 402 GrContext* context = ctxInfo.fGrContext; |
| 403 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { | 403 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { |
| 404 auto surface(surface_func(context, kOpaque_SkAlphaType, nullptr)); | 404 auto surface(surface_func(context, kOpaque_SkAlphaType, nullptr)); |
| 405 | 405 |
| 406 auto imageBackingStore = [reporter](SkImage* image) { | 406 auto imageBackingStore = [reporter](SkImage* image) { |
| 407 GrTexture* texture = as_IB(image)->peekTexture(); | 407 GrTexture* texture = as_IB(image)->peekTexture(); |
| 408 if (!texture) { | 408 if (!texture) { |
| 409 ERRORF(reporter, "Not texture backed."); | 409 ERRORF(reporter, "Not texture backed."); |
| 410 return static_cast<intptr_t>(0); | 410 return static_cast<intptr_t>(0); |
| 411 } | 411 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 494 REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID()); | 494 REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID()); |
| 495 | 495 |
| 496 obj = func(surface, SkSurface::kDiscardWrite_BackendHandleAccess); | 496 obj = func(surface, SkSurface::kDiscardWrite_BackendHandleAccess); |
| 497 REPORTER_ASSERT(reporter, obj != 0); | 497 REPORTER_ASSERT(reporter, obj != 0); |
| 498 sk_sp<SkImage> image3(surface->makeImageSnapshot()); | 498 sk_sp<SkImage> image3(surface->makeImageSnapshot()); |
| 499 // expect a new(er) image, since we claimed we would write | 499 // expect a new(er) image, since we claimed we would write |
| 500 REPORTER_ASSERT(reporter, image0->uniqueID() != image3->uniqueID()); | 500 REPORTER_ASSERT(reporter, image0->uniqueID() != image3->uniqueID()); |
| 501 REPORTER_ASSERT(reporter, image2->uniqueID() != image3->uniqueID()); | 501 REPORTER_ASSERT(reporter, image2->uniqueID() != image3->uniqueID()); |
| 502 } | 502 } |
| 503 // No CPU test. | 503 // No CPU test. |
| 504 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceBackendHandleAccessIDs_Gpu, reporte
r, ctxInfo) { | 504 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceBackendHandleAccessIDs_Gpu, reporter,
ctxInfo) { |
| 505 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { | 505 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface
}) { |
| 506 for (auto& test_func : { &test_backend_handle_unique_id, &test_backend_h
andle_gen_id }) { | 506 for (auto& test_func : { &test_backend_handle_unique_id, &test_backend_h
andle_gen_id }) { |
| 507 for (auto& handle_access_func : | 507 for (auto& handle_access_func : |
| 508 { &get_surface_backend_texture_handle, &get_surface_backend_rend
er_target_handle}) { | 508 { &get_surface_backend_texture_handle, &get_surface_backend_rend
er_target_handle}) { |
| 509 auto surface(surface_func(ctxInfo.fGrContext, kPremul_SkAlphaTyp
e, nullptr)); | 509 auto surface(surface_func(ctxInfo.fGrContext, kPremul_SkAlphaTyp
e, nullptr)); |
| 510 test_func(reporter, surface.get(), handle_access_func); | 510 test_func(reporter, surface.get(), handle_access_func); |
| 511 } | 511 } |
| 512 } | 512 } |
| 513 } | 513 } |
| 514 } | 514 } |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 890 desc.fHeight = kHeight; | 890 desc.fHeight = kHeight; |
| 891 desc.fFlags = kRenderTarget_GrBackendTextureFlag; | 891 desc.fFlags = kRenderTarget_GrBackendTextureFlag; |
| 892 desc.fTextureHandle = textureObject; | 892 desc.fTextureHandle = textureObject; |
| 893 | 893 |
| 894 auto surface = SkSurface::MakeFromBackendTexture(context, desc, nullptr)
; | 894 auto surface = SkSurface::MakeFromBackendTexture(context, desc, nullptr)
; |
| 895 test_surface_clear(reporter, surface, grSurfaceGetter, 0xABABABAB); | 895 test_surface_clear(reporter, surface, grSurfaceGetter, 0xABABABAB); |
| 896 context->getGpu()->deleteTestingOnlyBackendTexture(textureObject); | 896 context->getGpu()->deleteTestingOnlyBackendTexture(textureObject); |
| 897 } | 897 } |
| 898 } | 898 } |
| 899 #endif | 899 #endif |
| OLD | NEW |