| |
| /* |
| * 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 |