virtual void onDraw(const int loops, SkCanvas* canvas) { #if 0 // what specifically are we interested in timing here? SkBaseDevice *device = canvas->getDevice()->createCompatibleDevice( SkBitmap::kARGB_8888_Config, CANVAS_WIDTH, CANVAS_HEIGHT, false); SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(device)); device->unref(); initDeferredCanvas(deferredCanvas); drawInDeferredCanvas(loops, deferredCanvas); finalizeDeferredCanvas(deferredCanvas); deferredCanvas->flush(); #endif }
static void TestDeferredCanvasStateConsistency( skiatest::Reporter* reporter, const TestData& d, CanvasTestStep* testStep, const SkCanvas& referenceCanvas, bool silent) { SkAutoTUnref<SkSurface> surface(createSurface(0xFFFFFFFF)); SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(surface.get())); testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); testStep->draw(deferredCanvas, d, reporter); testStep->setAssertMessageFormat(kDeferredPreFlushAssertMessageFormat); AssertCanvasStatesEqual(reporter, d, deferredCanvas, &referenceCanvas, testStep); if (silent) { deferredCanvas->silentFlush(); } else { deferredCanvas->flush(); } testStep->setAssertMessageFormat( silent ? kDeferredPostSilentFlushPlaybackAssertMessageFormat : kDeferredPostFlushPlaybackAssertMessageFormat); AssertCanvasStatesEqual(reporter, d, deferredCanvas->immediateCanvas(), &referenceCanvas, testStep); // Verified that deferred canvas state is not affected by flushing // pending draw operations // The following test code is commented out because it currently fails. // Issue: http://code.google.com/p/skia/issues/detail?id=496 /* testStep->setAssertMessageFormat(kDeferredPostFlushAssertMessageFormat); AssertCanvasStatesEqual(reporter, &deferredCanvas, &referenceCanvas, testStep); */ }