diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/WritePixelsTest.cpp | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index f5cdddccd0..e26e134b2d 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -14,6 +14,7 @@ #if SK_SUPPORT_GPU #include "GrContext.h" +#include "GrGpu.h" #endif #include <initializer_list> @@ -410,9 +411,45 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, ctxInfo) { const SkImageInfo ii = SkImageInfo::MakeN32Premul(DEV_W, DEV_H); for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) { - sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kNo, - ii, 0, origin, nullptr)); - test_write_pixels(reporter, surface.get()); + for (int sampleCnt : {0, 4}) { + sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), + SkBudgeted::kNo, ii, sampleCnt, + origin, nullptr)); + if (!surface && sampleCnt > 0) { + // Some platforms don't support MSAA + continue; + } + test_write_pixels(reporter, surface.get()); + } + } +} + +DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo) { + GrContext* context = ctxInfo.grContext(); + + for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) { + for (int sampleCnt : {0, 4}) { + GrBackendTextureDesc desc; + desc.fConfig = kSkia8888_GrPixelConfig; + desc.fWidth = DEV_W; + desc.fHeight = DEV_H; + desc.fFlags = kRenderTarget_GrBackendTextureFlag; + desc.fSampleCnt = sampleCnt; + desc.fOrigin = origin; + desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture( + nullptr, DEV_W, DEV_H, kSkia8888_GrPixelConfig, true); + sk_sp<SkSurface> surface(SkSurface::MakeFromBackendTextureAsRenderTarget(context, desc, + nullptr)); + if (!surface) { + context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); + continue; + } + + test_write_pixels(reporter, surface.get()); + + surface.reset(); + context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle); + } } } #endif |