diff options
author | Grace Kloba <klobag@google.com> | 2010-07-08 14:50:52 -0700 |
---|---|---|
committer | Grace Kloba <klobag@google.com> | 2010-07-09 08:53:57 -0700 |
commit | 6d43b9ceb777071c088fe12ee94af80e34816bcf (patch) | |
tree | db69180ecec4b0789bcc5060fe8ce6f2160a6492 /WebCore/platform/graphics/android/GraphicsLayerAndroid.h | |
parent | 5f90462bbf4efb0ac7bb65a852d5559d0ab30f0b (diff) | |
download | external_webkit-6d43b9ceb777071c088fe12ee94af80e34816bcf.zip external_webkit-6d43b9ceb777071c088fe12ee94af80e34816bcf.tar.gz external_webkit-6d43b9ceb777071c088fe12ee94af80e34816bcf.tar.bz2 |
Combine base PictureSet with composite layers into
one SkLayer tree. The BaseLayerAndroid is the root
of the composite layers and it has the PictureSet
as its base content.
Before, WebViewCore uses m_contentMutex and both UI
and WebCore threads access the m_content. Now we use
the layer approach. When WebCore thread updates its
content in recordContent, it creates a new BaseLayerAndroid
and copy both PictureSet and composite layers into it.
Then it is sent to be consumed by UI thread.
Clean up sync layer in both ChromeClientAndroid and
GraphicsLayerAndroid.
splitContent can be a little tricky with this change.
Now UI has its own copy of PictureSet. When it takes
too long to draw, it will send a request to WebCore
to split the PictureSet. When it is done, a copy of
the new PictureSet will be sent back to UI.
There is a matching change in framework/base
Diffstat (limited to 'WebCore/platform/graphics/android/GraphicsLayerAndroid.h')
-rw-r--r-- | WebCore/platform/graphics/android/GraphicsLayerAndroid.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/WebCore/platform/graphics/android/GraphicsLayerAndroid.h b/WebCore/platform/graphics/android/GraphicsLayerAndroid.h index b72877b..54a035b 100644 --- a/WebCore/platform/graphics/android/GraphicsLayerAndroid.h +++ b/WebCore/platform/graphics/android/GraphicsLayerAndroid.h @@ -108,22 +108,21 @@ public: virtual void setZPosition(float); - void askForSync(); - void syncPositionState(); - void needsSyncChildren(); - void syncChildren(); - void syncMask(); virtual void syncCompositingState(); - void setFrame(Frame*); void notifyClientAnimationStarted(); - void sendImmediateRepaint(); LayerAndroid* contentLayer() { return m_contentLayer; } static int instancesCount(); private: + void askForSync(); + void syncPositionState(); + void needsSyncChildren(); + void syncChildren(); + void syncMask(); + void updateFixedPosition(); // with SkPicture, we always repaint the entire layer's content. @@ -146,8 +145,6 @@ private: FloatPoint m_currentPosition; - RefPtr<Frame> m_frame; - Vector<FloatRect> m_invalidatedRects; LayerAndroid* m_contentLayer; |