From 3de7acc180e37c7c513f2b3425bd4616ea47fa57 Mon Sep 17 00:00:00 2001 From: "junov@chromium.org" Date: Tue, 7 Aug 2012 14:53:59 +0000 Subject: [PATCH] Removing the SkPicture backend from SkDeferredCanvas code Review URL: https://codereview.appspot.com/6446095 git-svn-id: http://skia.googlecode.com/svn/trunk@4974 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/utils/SkDeferredCanvas.h | 14 -------------- src/utils/SkDeferredCanvas.cpp | 38 -------------------------------------- tests/CanvasTest.cpp | 2 -- tests/DeferredCanvasTest.cpp | 7 ------- 4 files changed, 61 deletions(-) diff --git a/include/utils/SkDeferredCanvas.h b/include/utils/SkDeferredCanvas.h index 363de1b..01a7114 100644 --- a/include/utils/SkDeferredCanvas.h +++ b/include/utils/SkDeferredCanvas.h @@ -8,20 +8,12 @@ #ifndef SkDeferredCanvas_DEFINED #define SkDeferredCanvas_DEFINED -#ifndef SK_DEFERRED_CANVAS_USES_GPIPE -#define SK_DEFERRED_CANVAS_USES_GPIPE 1 -#endif - #include "SkCanvas.h" #include "SkDevice.h" #include "SkPixelRef.h" -#if SK_DEFERRED_CANVAS_USES_GPIPE #include "SkGPipe.h" #include "SkChunkAlloc.h" -#else -#include "SkPicture.h" -#endif /** \class SkDeferredCanvas Subclass of SkCanvas that encapsulates an SkPicture or SkGPipe for deferred @@ -184,7 +176,6 @@ public: typedef SkRefCnt INHERITED; }; -#if SK_DEFERRED_CANVAS_USES_GPIPE protected: class DeferredPipeController : public SkGPipeController { public: @@ -212,7 +203,6 @@ protected: SkTDArray fBlockList; SkGPipeReader fReader; }; -#endif public: class DeferredDevice : public SkDevice { @@ -347,12 +337,8 @@ public: void endRecording(); void beginRecording(); -#if SK_DEFERRED_CANVAS_USES_GPIPE DeferredPipeController fPipeController; SkGPipeWriter fPipeWriter; -#else - SkPicture fPicture; -#endif SkDevice* fImmediateDevice; SkCanvas* fImmediateCanvas; SkCanvas* fRecordingCanvas; diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index acac47c..1606771 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -169,11 +169,7 @@ size_t SkDeferredCanvas::storageAllocatedForRecording() const { } size_t SkDeferredCanvas::freeMemoryIfPossible(size_t bytesToFree) { -#if SK_DEFERRED_CANVAS_USES_GPIPE return this->getDeferredDevice()->freeMemoryIfPossible(bytesToFree); -#else - return 0; -#endif } void SkDeferredCanvas::validate() const { @@ -518,8 +514,6 @@ SkCanvas* SkDeferredCanvas::canvasForDrawIter() { return drawingCanvas(); } -#if SK_DEFERRED_CANVAS_USES_GPIPE - // SkDeferredCanvas::DeferredPipeController //------------------------------------------- @@ -576,8 +570,6 @@ void SkDeferredCanvas::DeferredPipeController::reset() { fAllocator.reset(); } -#endif // SK_DEFERRED_CANVAS_USES_GPIPE - // SkDeferredCanvas::DeferredDevice //------------------------------------ @@ -592,9 +584,7 @@ SkDeferredCanvas::DeferredDevice::DeferredDevice( SkSafeRef(fDeviceContext); fImmediateDevice = immediateDevice; // ref counted via fImmediateCanvas fImmediateCanvas = SkNEW_ARGS(SkCanvas, (fImmediateDevice)); -#if SK_DEFERRED_CANVAS_USES_GPIPE fPipeController.setPlaybackCanvas(fImmediateCanvas); -#endif beginRecording(); } @@ -610,22 +600,13 @@ void SkDeferredCanvas::DeferredDevice::setMaxRecordingStorage(size_t maxStorage) } void SkDeferredCanvas::DeferredDevice::endRecording() { -#if SK_DEFERRED_CANVAS_USES_GPIPE fPipeWriter.endRecording(); fPipeController.reset(); -#else - fPicture.endRecording(); -#endif fRecordingCanvas = NULL; } void SkDeferredCanvas::DeferredDevice::beginRecording() { -#if SK_DEFERRED_CANVAS_USES_GPIPE fRecordingCanvas = fPipeWriter.startRecording(&fPipeController, 0); -#else - fRecordingCanvas = fPicture.beginRecording(fImmediateDevice->width(), - fImmediateDevice->height()); -#endif } void SkDeferredCanvas::DeferredDevice::setDeviceContext( @@ -675,26 +656,15 @@ bool SkDeferredCanvas::DeferredDevice::isFreshFrame() { } void SkDeferredCanvas::DeferredDevice::flushPending() { -#if SK_DEFERRED_CANVAS_USES_GPIPE if (!fPipeController.hasRecorded()) { return; } -#else - if (!fPicture.hasRecorded()) { - return; - } -#endif if (fDeviceContext) { fDeviceContext->prepareForDraw(); } -#if SK_DEFERRED_CANVAS_USES_GPIPE fPipeWriter.flushRecording(true); fPipeController.playback(); -#else - fPicture.draw(fImmediateCanvas); - this->beginRecording(); -#endif } void SkDeferredCanvas::DeferredDevice::flush() { @@ -702,23 +672,16 @@ void SkDeferredCanvas::DeferredDevice::flush() { fImmediateCanvas->flush(); } -#if SK_DEFERRED_CANVAS_USES_GPIPE size_t SkDeferredCanvas::DeferredDevice::freeMemoryIfPossible(size_t bytesToFree) { return fPipeWriter.freeMemoryIfPossible(bytesToFree); } -#endif size_t SkDeferredCanvas::DeferredDevice::storageAllocatedForRecording() const { -#if SK_DEFERRED_CANVAS_USES_GPIPE return (fPipeController.storageAllocatedForRecording() + fPipeWriter.storageAllocatedForRecording()); -#else - return 0; -#endif } SkCanvas* SkDeferredCanvas::DeferredDevice::recordingCanvas() { -#if SK_DEFERRED_CANVAS_USES_GPIPE size_t storageAllocated = this->storageAllocatedForRecording(); if (storageAllocated > fMaxRecordingStorageBytes) { // First, attempt to reduce cache without flushing @@ -731,7 +694,6 @@ SkCanvas* SkDeferredCanvas::DeferredDevice::recordingCanvas() { this->freeMemoryIfPossible(~0); } } -#endif return fRecordingCanvas; } diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp index b58657e..4347edc 100644 --- a/tests/CanvasTest.cpp +++ b/tests/CanvasTest.cpp @@ -756,14 +756,12 @@ static void TestDeferredCanvasStateConsistency( AssertCanvasStatesEqual(reporter, &deferredCanvas, &referenceCanvas, testStep); -#if SK_DEFERRED_CANVAS_USES_GPIPE deferredCanvas.flush(); testStep->setAssertMessageFormat( kDeferredPostFlushPlaybackAssertMessageFormat); AssertCanvasStatesEqual(reporter, deferredCanvas.getDeferredDevice()->immediateCanvas(), &referenceCanvas, testStep); -#endif // Verified that deferred canvas state is not affected by flushing // pending draw operations diff --git a/tests/DeferredCanvasTest.cpp b/tests/DeferredCanvasTest.cpp index 701b5cf..5e5e425 100644 --- a/tests/DeferredCanvasTest.cpp +++ b/tests/DeferredCanvasTest.cpp @@ -210,13 +210,9 @@ static void TestDeferredCanvasMemoryLimit(skiatest::Reporter* reporter) { canvas.drawBitmap(sourceImage, 0, 0, NULL); } - // SkPicture path is not fixed -#if SK_DEFERRED_CANVAS_USES_GPIPE REPORTER_ASSERT(reporter, mockDevice.fDrawBitmapCallCount == 4); -#endif } -#if SK_DEFERRED_CANVAS_USES_GPIPE static void TestDeferredCanvasBitmapCaching(skiatest::Reporter* reporter) { SkBitmap store; store.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); @@ -282,16 +278,13 @@ static void TestDeferredCanvasBitmapCaching(skiatest::Reporter* reporter) { canvas.drawBitmap(sourceImages[1], 0, 0, NULL); REPORTER_ASSERT(reporter, canvas.storageAllocatedForRecording() > 2*bitmapSize); } -#endif static void TestDeferredCanvas(skiatest::Reporter* reporter) { TestDeferredCanvasBitmapAccess(reporter); TestDeferredCanvasFlush(reporter); TestDeferredCanvasFreshFrame(reporter); TestDeferredCanvasMemoryLimit(reporter); -#if SK_DEFERRED_CANVAS_USES_GPIPE TestDeferredCanvasBitmapCaching(reporter); -#endif } #include "TestClassDef.h" -- 2.7.4