diff options
Diffstat (limited to 'samplecode')
-rw-r--r-- | samplecode/SamplePicture.cpp | 64 | ||||
-rw-r--r-- | samplecode/SampleShapes.cpp | 8 |
2 files changed, 3 insertions, 69 deletions
diff --git a/samplecode/SamplePicture.cpp b/samplecode/SamplePicture.cpp index d7b6b229f4..585b2f20f1 100644 --- a/samplecode/SamplePicture.cpp +++ b/samplecode/SamplePicture.cpp @@ -14,7 +14,6 @@ #include "SkUtils.h" #include "SkColorPriv.h" #include "SkColorFilter.h" -#include "SkShape.h" #include "SkTime.h" #include "SkTypeface.h" #include "SkXfermode.h" @@ -22,67 +21,6 @@ #include "SkStream.h" #include "SkXMLParser.h" -class SignalShape : public SkShape { -public: - SignalShape() : fSignal(0) {} - - SkShape* setSignal(int n) { - fSignal = n; - return this; - } - -protected: - virtual void onDraw(SkCanvas* canvas) { - // SkDebugf("---- sc %d\n", canvas->getSaveCount() - 1); - } - -private: - int fSignal; -}; - -static SkPMColor SignalProc(SkPMColor src, SkPMColor dst) { - return dst; -} - -/* Picture playback will skip blocks of draw calls that follow a clip() call - that returns empty, and jump down to the corresponding restore() call. - - This is a great preformance win for drawing very large/tall pictures with - a small visible window (think scrolling a long document). These tests make - sure that (a) we are performing the culling, and (b) we don't get confused - by nested save() calls, nor by calls to restoreToCount(). - */ -static void test_saveRestoreCulling() { - SkPaint signalPaint; - SignalShape signalShape; - - SkPicture pic; - SkRect r = SkRect::MakeWH(0, 0); - int n; - SkCanvas* canvas = pic.beginRecording(100, 100); - int startN = canvas->getSaveCount(); - SkDebugf("---- start sc %d\n", startN); - canvas->drawShape(signalShape.setSignal(1)); - canvas->save(); - canvas->drawShape(signalShape.setSignal(2)); - n = canvas->save(); - canvas->drawShape(signalShape.setSignal(3)); - canvas->save(); - canvas->clipRect(r); - canvas->drawShape(signalShape.setSignal(4)); - canvas->restoreToCount(n); - canvas->drawShape(signalShape.setSignal(5)); - canvas->restore(); - canvas->drawShape(signalShape.setSignal(6)); - SkASSERT(canvas->getSaveCount() == startN); - - SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); - bm.allocPixels(); - SkCanvas c(bm); - c.drawPicture(pic); -} - /////////////////////////////////////////////////////////////////////////////// #include "SkImageRef_GlobalPool.h" @@ -137,8 +75,6 @@ public: // unref fPicture in our destructor, and it will in turn take care of // the other references to fSubPicture fSubPicture->unref(); - - test_saveRestoreCulling(); } virtual ~PictureView() { diff --git a/samplecode/SampleShapes.cpp b/samplecode/SampleShapes.cpp index dc10f1a454..6742017a48 100644 --- a/samplecode/SampleShapes.cpp +++ b/samplecode/SampleShapes.cpp @@ -127,16 +127,14 @@ protected: matrix.preScale(SK_Scalar1*2, SK_Scalar1*2); gs->appendShape(&fGroup, matrix); -#if 0 - canvas->drawShape(gs); -#else +#if 1 SkPicture* pict = new SkPicture; SkCanvas* cv = pict->beginRecording(1000, 1000); cv->scale(SK_ScalarHalf, SK_ScalarHalf); - cv->drawShape(gs); + gs->draw(cv); cv->translate(SkIntToScalar(680), SkIntToScalar(480)); cv->scale(-SK_Scalar1, SK_Scalar1); - cv->drawShape(gs); + gs->draw(cv); pict->endRecording(); drawpicture(canvas, *pict); |