| Index: tests/SurfaceTest.cpp
|
| diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
|
| index 610e3370f6a47133544e77aa32a67f27271809d6..d31718694712db5cfa341df88a373639efaa146e 100644
|
| --- a/tests/SurfaceTest.cpp
|
| +++ b/tests/SurfaceTest.cpp
|
| @@ -170,37 +170,53 @@ static void test_canvaspeek(skiatest::Reporter* reporter,
|
| const SkColor color = SK_ColorRED;
|
| const SkPMColor pmcolor = SkPreMultiplyColor(color);
|
|
|
| - GrContext* context = NULL;
|
| + int cnt;
|
| #if SK_SUPPORT_GPU
|
| - context = factory->get(GrContextFactory::kNative_GLContextType);
|
| + cnt = GrContextFactory::kGLContextTypeCnt;
|
| +#else
|
| + cnt = 1;
|
| #endif
|
|
|
| - for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
|
| - SkImageInfo info, requestInfo;
|
| - size_t rowBytes;
|
| -
|
| - SkAutoTUnref<SkSurface> surface(createSurface(gRec[i].fType, context,
|
| - &requestInfo));
|
| - surface->getCanvas()->clear(color);
|
| -
|
| - const void* addr = surface->getCanvas()->peekPixels(&info, &rowBytes);
|
| - bool success = (NULL != addr);
|
| - REPORTER_ASSERT(reporter, gRec[i].fPeekShouldSucceed == success);
|
| -
|
| - SkImageInfo info2;
|
| - size_t rb2;
|
| - const void* addr2 = surface->peekPixels(&info2, &rb2);
|
| -
|
| - if (success) {
|
| - REPORTER_ASSERT(reporter, requestInfo == info);
|
| - REPORTER_ASSERT(reporter, requestInfo.minRowBytes() <= rowBytes);
|
| - REPORTER_ASSERT(reporter, pmcolor == *(const SkPMColor*)addr);
|
| + for (int i= 0; i < cnt; ++i) {
|
| + GrContext* context = NULL;
|
| +#if SK_SUPPORT_GPU
|
| + GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType) i;
|
| + if (!GrContextFactory::IsRenderingGLContext(glCtxType)) {
|
| + continue;
|
| + }
|
| + context = factory->get(glCtxType);
|
|
|
| - REPORTER_ASSERT(reporter, addr2 == addr);
|
| - REPORTER_ASSERT(reporter, info2 == info);
|
| - REPORTER_ASSERT(reporter, rb2 == rowBytes);
|
| - } else {
|
| - REPORTER_ASSERT(reporter, NULL == addr2);
|
| + if (NULL == context) {
|
| + continue;
|
| + }
|
| +#endif
|
| + for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
|
| + SkImageInfo info, requestInfo;
|
| + size_t rowBytes;
|
| +
|
| + SkAutoTUnref<SkSurface> surface(createSurface(gRec[i].fType, context,
|
| + &requestInfo));
|
| + surface->getCanvas()->clear(color);
|
| +
|
| + const void* addr = surface->getCanvas()->peekPixels(&info, &rowBytes);
|
| + bool success = (NULL != addr);
|
| + REPORTER_ASSERT(reporter, gRec[i].fPeekShouldSucceed == success);
|
| +
|
| + SkImageInfo info2;
|
| + size_t rb2;
|
| + const void* addr2 = surface->peekPixels(&info2, &rb2);
|
| +
|
| + if (success) {
|
| + REPORTER_ASSERT(reporter, requestInfo == info);
|
| + REPORTER_ASSERT(reporter, requestInfo.minRowBytes() <= rowBytes);
|
| + REPORTER_ASSERT(reporter, pmcolor == *(const SkPMColor*)addr);
|
| +
|
| + REPORTER_ASSERT(reporter, addr2 == addr);
|
| + REPORTER_ASSERT(reporter, info2 == info);
|
| + REPORTER_ASSERT(reporter, rb2 == rowBytes);
|
| + } else {
|
| + REPORTER_ASSERT(reporter, NULL == addr2);
|
| + }
|
| }
|
| }
|
| }
|
| @@ -429,22 +445,28 @@ DEF_GPUTEST(Surface, reporter, factory) {
|
| #if SK_SUPPORT_GPU
|
| TestGetTexture(reporter, kRaster_SurfaceType, NULL);
|
| if (NULL != factory) {
|
| - GrContext* context = factory->get(GrContextFactory::kNative_GLContextType);
|
| - if (NULL != context) {
|
| - TestSurfaceInCache(reporter, kGpu_SurfaceType, context);
|
| - TestSurfaceInCache(reporter, kGpuScratch_SurfaceType, context);
|
| - Test_crbug263329(reporter, kGpu_SurfaceType, context);
|
| - Test_crbug263329(reporter, kGpuScratch_SurfaceType, context);
|
| - TestSurfaceCopyOnWrite(reporter, kGpu_SurfaceType, context);
|
| - TestSurfaceCopyOnWrite(reporter, kGpuScratch_SurfaceType, context);
|
| - TestSurfaceWritableAfterSnapshotRelease(reporter, kGpu_SurfaceType, context);
|
| - TestSurfaceWritableAfterSnapshotRelease(reporter, kGpuScratch_SurfaceType, context);
|
| - TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode);
|
| - TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode);
|
| - TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurface::kRetain_ContentChangeMode);
|
| - TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode);
|
| - TestGetTexture(reporter, kGpu_SurfaceType, context);
|
| - TestGetTexture(reporter, kGpuScratch_SurfaceType, context);
|
| + for (int i= 0; i < GrContextFactory::kGLContextTypeCnt; ++i) {
|
| + GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType) i;
|
| + if (!GrContextFactory::IsRenderingGLContext(glCtxType)) {
|
| + continue;
|
| + }
|
| + GrContext* context = factory->get(glCtxType);
|
| + if (NULL != context) {
|
| + TestSurfaceInCache(reporter, kGpu_SurfaceType, context);
|
| + TestSurfaceInCache(reporter, kGpuScratch_SurfaceType, context);
|
| + Test_crbug263329(reporter, kGpu_SurfaceType, context);
|
| + Test_crbug263329(reporter, kGpuScratch_SurfaceType, context);
|
| + TestSurfaceCopyOnWrite(reporter, kGpu_SurfaceType, context);
|
| + TestSurfaceCopyOnWrite(reporter, kGpuScratch_SurfaceType, context);
|
| + TestSurfaceWritableAfterSnapshotRelease(reporter, kGpu_SurfaceType, context);
|
| + TestSurfaceWritableAfterSnapshotRelease(reporter, kGpuScratch_SurfaceType, context);
|
| + TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode);
|
| + TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode);
|
| + TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurface::kRetain_ContentChangeMode);
|
| + TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode);
|
| + TestGetTexture(reporter, kGpu_SurfaceType, context);
|
| + TestGetTexture(reporter, kGpuScratch_SurfaceType, context);
|
| + }
|
| }
|
| }
|
| #endif
|
|
|