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..d48f7e4fbb39b7539690bb71c0563b52d307fbf6 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,9 @@ namespace blink { |
| class ImageBuffer; |
| +// The same with the default state stack size in SkCanvas |
| +#define INITIAL_STATE_STACK_SIZE 1 |
|
zino
2014/09/03 10:50:17
Should we use WTF::Deque? I think it is better to
Sergey
2014/09/04 10:26:50
Junov, what do you think? I would probably agree w
|
| + |
| class PLATFORM_EXPORT RecordingImageBufferSurface : public ImageBufferSurface { |
| WTF_MAKE_NONCOPYABLE(RecordingImageBufferSurface); WTF_MAKE_FAST_ALLOCATED; |
| public: |
| @@ -34,11 +39,22 @@ public: |
| virtual void setImageBuffer(ImageBuffer*) OVERRIDE; |
| private: |
| + struct StateRec { |
| + public: |
|
zino
2014/09/03 10:50:17
Is this Blink coding rule?
If not so, I think this
Sergey
2014/09/11 12:58:53
Probably not required here at all.
|
| + SkMatrix m_ctm; |
| + SkRect m_clip; |
|
zino
2014/09/03 10:50:18
If you use getDeviceClipBounds(), you should proba
Sergey
2014/09/11 12:58:52
Probably not required here at all.
|
| + }; |
| + typedef Deque<StateRec, INITIAL_STATE_STACK_SIZE> StateStack; |
| friend class ::RecordingImageBufferSurfaceTest; // for unit testing |
| void fallBackToRasterCanvas(); |
| 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; |