Chromium Code Reviews| Index: tests/SurfaceTest.cpp |
| =================================================================== |
| --- tests/SurfaceTest.cpp (revision 8437) |
| +++ tests/SurfaceTest.cpp (working copy) |
| @@ -133,15 +133,32 @@ |
| testPaint)) |
| } |
| +static void TestSurfaceWritableAfterSnapshotRelease(skiatest::Reporter* reporter, |
| + SurfaceType surfaceType, |
| + GrContext* context) { |
| + // This test succeeds by not triggering an assertion. |
| + // The test verifies that the surface remains writable (usable) after |
| + // acquiring and releasing a snapshot without triggering a copy on write. |
| + SkSurface* surface = createSurface(surfaceType, context); |
| + SkAutoTUnref<SkSurface> aur_surface(surface); |
| + SkCanvas* canvas = surface->getCanvas(); |
| + canvas->clear(1); |
| + surface->newImageShapshot()->unref(); // Create and destroy SkImage |
| + canvas->clear(2); |
| +} |
| + |
| static void TestSurface(skiatest::Reporter* reporter) { |
|
bsalomon
2013/04/03 14:13:43
Just noting that TestSurface and TestSurfaceGpu co
|
| TestSurfaceCopyOnWrite(reporter, kRaster_SurfaceType, NULL); |
| TestSurfaceCopyOnWrite(reporter, kPicture_SurfaceType, NULL); |
| + TestSurfaceWritableAfterSnapshotRelease(reporter, kRaster_SurfaceType, NULL); |
| + TestSurfaceWritableAfterSnapshotRelease(reporter, kPicture_SurfaceType, NULL); |
| } |
| static void TestSurfaceGpu(skiatest::Reporter* reporter, GrContextFactory* factory) { |
| #if SK_SUPPORT_GPU |
| GrContext* context = factory->get(GrContextFactory::kNative_GLContextType); |
| TestSurfaceCopyOnWrite(reporter, kGpu_SurfaceType, context); |
| + TestSurfaceWritableAfterSnapshotRelease(reporter, kGpu_SurfaceType, context); |
| #endif |
| } |