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 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 return static_cast<intptr_t>(0); | 353 return static_cast<intptr_t>(0); |
354 } | 354 } |
355 return static_cast<intptr_t>(rt->getUniqueID()); | 355 return static_cast<intptr_t>(rt->getUniqueID()); |
356 }; | 356 }; |
357 | 357 |
358 test_unique_image_snap(reporter, surface.get(), false, imageBackingStore
, | 358 test_unique_image_snap(reporter, surface.get(), false, imageBackingStore
, |
359 surfaceBackingStore); | 359 surfaceBackingStore); |
360 | 360 |
361 // Test again with a "direct" render target; | 361 // Test again with a "direct" render target; |
362 GrBackendObject textureObject = context->getGpu()->createTestingOnlyBack
endTexture(nullptr, | 362 GrBackendObject textureObject = context->getGpu()->createTestingOnlyBack
endTexture(nullptr, |
363 10, 10, kRGBA_8888_GrPixelConfig); | 363 10, 10, kRGBA_8888_GrPixelConfig, true); |
364 GrBackendTextureDesc desc; | 364 GrBackendTextureDesc desc; |
365 desc.fConfig = kRGBA_8888_GrPixelConfig; | 365 desc.fConfig = kRGBA_8888_GrPixelConfig; |
366 desc.fWidth = 10; | 366 desc.fWidth = 10; |
367 desc.fHeight = 10; | 367 desc.fHeight = 10; |
368 desc.fFlags = kRenderTarget_GrBackendTextureFlag; | 368 desc.fFlags = kRenderTarget_GrBackendTextureFlag; |
369 desc.fTextureHandle = textureObject; | 369 desc.fTextureHandle = textureObject; |
370 GrTexture* texture = context->textureProvider()->wrapBackendTexture(desc
); | 370 GrTexture* texture = context->textureProvider()->wrapBackendTexture(desc
); |
371 { | 371 { |
372 auto surface(SkSurface::MakeRenderTargetDirect(texture->asRenderTarg
et())); | 372 auto surface(SkSurface::MakeRenderTargetDirect(texture->asRenderTarg
et())); |
373 test_unique_image_snap(reporter, surface.get(), true, imageBackingSt
ore, | 373 test_unique_image_snap(reporter, surface.get(), true, imageBackingSt
ore, |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 const int kWidth = 10; | 757 const int kWidth = 10; |
758 const int kHeight = 10; | 758 const int kHeight = 10; |
759 SkAutoTDeleteArray<uint32_t> pixels(new uint32_t[kWidth * kHeight]); | 759 SkAutoTDeleteArray<uint32_t> pixels(new uint32_t[kWidth * kHeight]); |
760 sk_memset32(pixels.get(), color, kWidth * kHeight); | 760 sk_memset32(pixels.get(), color, kWidth * kHeight); |
761 GrBackendTextureDesc desc; | 761 GrBackendTextureDesc desc; |
762 desc.fConfig = kRGBA_8888_GrPixelConfig; | 762 desc.fConfig = kRGBA_8888_GrPixelConfig; |
763 desc.fWidth = kWidth; | 763 desc.fWidth = kWidth; |
764 desc.fHeight = kHeight; | 764 desc.fHeight = kHeight; |
765 desc.fFlags = kRenderTarget_GrBackendTextureFlag; | 765 desc.fFlags = kRenderTarget_GrBackendTextureFlag; |
766 desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture( | 766 desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture( |
767 pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig); | 767 pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true); |
768 desc.fSampleCnt = sampleCnt; | 768 desc.fSampleCnt = sampleCnt; |
769 sk_sp<SkSurface> surface = SkSurface::MakeFromBackendTexture(context, desc,
nullptr); | 769 sk_sp<SkSurface> surface = SkSurface::MakeFromBackendTexture(context, desc,
nullptr); |
770 if (!surface) { | 770 if (!surface) { |
771 context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); | 771 context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); |
772 return nullptr; | 772 return nullptr; |
773 } | 773 } |
774 *outTexture = desc.fTextureHandle; | 774 *outTexture = desc.fTextureHandle; |
775 return surface; | 775 return surface; |
776 } | 776 } |
777 | 777 |
778 static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target( | 778 static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target( |
779 GrContext* context, int sampleCnt, uint32_t color, GrBackendObject* outTextu
re) { | 779 GrContext* context, int sampleCnt, uint32_t color, GrBackendObject* outTextu
re) { |
780 const int kWidth = 10; | 780 const int kWidth = 10; |
781 const int kHeight = 10; | 781 const int kHeight = 10; |
782 SkAutoTDeleteArray<uint32_t> pixels(new uint32_t[kWidth * kHeight]); | 782 SkAutoTDeleteArray<uint32_t> pixels(new uint32_t[kWidth * kHeight]); |
783 sk_memset32(pixels.get(), color, kWidth * kHeight); | 783 sk_memset32(pixels.get(), color, kWidth * kHeight); |
784 GrBackendTextureDesc desc; | 784 GrBackendTextureDesc desc; |
785 desc.fConfig = kRGBA_8888_GrPixelConfig; | 785 desc.fConfig = kRGBA_8888_GrPixelConfig; |
786 desc.fWidth = kWidth; | 786 desc.fWidth = kWidth; |
787 desc.fHeight = kHeight; | 787 desc.fHeight = kHeight; |
788 desc.fFlags = kRenderTarget_GrBackendTextureFlag; | 788 desc.fFlags = kRenderTarget_GrBackendTextureFlag; |
789 desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture( | 789 desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture( |
790 pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig); | 790 pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true); |
791 desc.fSampleCnt = sampleCnt; | 791 desc.fSampleCnt = sampleCnt; |
792 sk_sp<SkSurface> surface = SkSurface::MakeFromBackendTextureAsRenderTarget(c
ontext, desc, | 792 sk_sp<SkSurface> surface = SkSurface::MakeFromBackendTextureAsRenderTarget(c
ontext, desc, |
793 n
ullptr); | 793 n
ullptr); |
794 if (!surface) { | 794 if (!surface) { |
795 context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); | 795 context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); |
796 return nullptr; | 796 return nullptr; |
797 } | 797 } |
798 *outTexture = desc.fTextureHandle; | 798 *outTexture = desc.fTextureHandle; |
799 return surface; | 799 return surface; |
800 } | 800 } |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
958 // our surface functions. | 958 // our surface functions. |
959 GrRenderTarget* rt = surface->getCanvas()->internal_private_accessTo
pLayerDrawContext() | 959 GrRenderTarget* rt = surface->getCanvas()->internal_private_accessTo
pLayerDrawContext() |
960 ->accessRenderTarget(); | 960 ->accessRenderTarget(); |
961 REPORTER_ASSERT(reporter, | 961 REPORTER_ASSERT(reporter, |
962 ctxInfo.grContext()->resourceProvider()->attachStenc
ilAttachment(rt)); | 962 ctxInfo.grContext()->resourceProvider()->attachStenc
ilAttachment(rt)); |
963 gpu->deleteTestingOnlyBackendTexture(textureObject); | 963 gpu->deleteTestingOnlyBackendTexture(textureObject); |
964 } | 964 } |
965 } | 965 } |
966 } | 966 } |
967 #endif | 967 #endif |
OLD | NEW |