Chromium Code Reviews| Index: Source/platform/graphics/RecordingImageBufferSurface.h |
| diff --git a/Source/platform/graphics/RecordingImageBufferSurface.h b/Source/platform/graphics/RecordingImageBufferSurface.h |
| index c8af6a045081ddfc38190d3bd03f27eb84842e20..a3d887e274115296f3a039ede26522ac64f0db7e 100644 |
| --- a/Source/platform/graphics/RecordingImageBufferSurface.h |
| +++ b/Source/platform/graphics/RecordingImageBufferSurface.h |
| @@ -7,6 +7,8 @@ |
| #include "platform/graphics/ImageBufferSurface.h" |
| #include "public/platform/WebThread.h" |
| +#include "third_party/skia/include/core/SkCanvas.h" |
| +#include "wtf/Deque.h" |
| #include "wtf/OwnPtr.h" |
| #include "wtf/RefPtr.h" |
| @@ -18,6 +20,17 @@ namespace blink { |
| class ImageBuffer; |
|
Sergey
2014/08/28 09:55:34
I am not sure, that this declarations belong here.
|
| +// The same with the default state stack size in SkCanvas |
| +#define INITIAL_STATE_STACK_SIZE 1 |
| + |
| +struct StateRec { |
|
Justin Novosad
2014/08/28 14:53:00
This struct and the typedef below should be moved
Sergey
2014/09/03 01:50:51
Done.
|
| +public: |
| + SkMatrix m_ctm; |
| + SkRect m_clip; |
| +}; |
| + |
| +typedef Deque<StateRec, INITIAL_STATE_STACK_SIZE> StateStack; |
| + |
| class PLATFORM_EXPORT RecordingImageBufferSurface : public ImageBufferSurface { |
| WTF_MAKE_NONCOPYABLE(RecordingImageBufferSurface); WTF_MAKE_FAST_ALLOCATED; |
| public: |
| @@ -39,6 +52,11 @@ private: |
| void initializeCurrentFrame(); |
| bool finalizeFrameInternal(); |
| + // saves current clip and transform matrix of canvas |
| + bool saveState(SkCanvas*, StateStack*); |
| + // we should make sure that we can transfer state in saveState |
| + void setCurrentState(SkCanvas*, StateStack*); |
| + |
| OwnPtr<SkPictureRecorder> m_currentFrame; |
| RefPtr<SkPicture> m_previousFrame; |
| OwnPtr<SkCanvas> m_rasterCanvas; |