Index: src/core/SkPictureRangePlayback.h |
diff --git a/src/core/SkPictureRangePlayback.h b/src/core/SkPictureRangePlayback.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..61d10f5d920706125746e395e66811e34e631ada |
--- /dev/null |
+++ b/src/core/SkPictureRangePlayback.h |
@@ -0,0 +1,40 @@ |
+/* |
+ * Copyright 2014 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkPictureRangePlayback_DEFINED |
+#define SkPictureRangePlayback_DEFINED |
+ |
+#include "SkPicturePlayback.h" |
+ |
+// This version of picture playback plays all the operations between |
+// a pair of start and stop values. |
+// The opcode at 'start' should be a saveLayer while the opcode at |
+// 'stop' should be a restore. Neither of those commands will be issued. |
+// Since this class never uses the bounding box hierarchy, the base class' |
+// useBBH setting is ignored. |
+class SkPictureRangePlayback : public SkPicturePlayback { |
+public: |
+ // Set both start & stop to 0 to disable draw limiting. Note that disabling |
+ // draw limiting isn't the same as using the base SkPicturePlayback object |
+ // since this class never uses the bounding box hierarchy information. |
+ SkPictureRangePlayback(const SkPicture* picture, size_t start, size_t stop) |
+ : INHERITED(picture) |
+ , fStart(start) |
+ , fStop(stop) { |
+ } |
+ |
+ virtual void draw(SkCanvas* canvas, SkDrawPictureCallback*) SK_OVERRIDE; |
+ |
+private: |
+ size_t fStart; |
+ size_t fStop; |
+ |
+ typedef SkPicturePlayback INHERITED; |
+}; |
+ |
+ |
+#endif |