summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android/GLWebViewState.h
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-11-19 14:23:02 -0500
committerCary Clark <cary@android.com>2010-11-23 15:58:09 -0500
commiteabb311cd2b57ff80b4cf632078cf078d789b563 (patch)
treeb16e6af4e3b973aa223e113e6d063dd6c0dea08c /WebCore/platform/graphics/android/GLWebViewState.h
parent9a193fae103e41510ec598934ec912e0575c8e19 (diff)
downloadexternal_webkit-eabb311cd2b57ff80b4cf632078cf078d789b563.zip
external_webkit-eabb311cd2b57ff80b4cf632078cf078d789b563.tar.gz
external_webkit-eabb311cd2b57ff80b4cf632078cf078d789b563.tar.bz2
reenable draw extras when GL is turned on
This captures the drawing in the UI thread, then passes the drawing to the tile imaging thread. The draw extras interface now takes an additional rectangle, and each draw extra fills in the inval area formed as that part is drawn. The old extra implementation in GLWebViewState has been removed. The inval portion of the setBaseLayer call has been split out so it can be called directly. bug:3161294 Change-Id: I28d3e6879059770b973e7c0f7c0796909f7359aa
Diffstat (limited to 'WebCore/platform/graphics/android/GLWebViewState.h')
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/WebCore/platform/graphics/android/GLWebViewState.h b/WebCore/platform/graphics/android/GLWebViewState.h
index cc1834d..e50c5f4 100644
--- a/WebCore/platform/graphics/android/GLWebViewState.h
+++ b/WebCore/platform/graphics/android/GLWebViewState.h
@@ -167,10 +167,8 @@ public:
void resetTransitionTime() { m_transitionTime = -1; }
unsigned int paintBaseLayerContent(SkCanvas* canvas);
- void setBaseLayer(BaseLayerAndroid* layer, IntRect& rect);
- void setExtra(android::DrawExtra* extra, LayerAndroid* navLayer);
- void resetExtra(bool repaint);
-
+ void setBaseLayer(BaseLayerAndroid* layer, const IntRect& rect);
+ void setExtra(BaseLayerAndroid* , SkPicture& , const IntRect& );
void scheduleUpdate(const double& currentTime, float scale);
TiledPage* frontPage();
@@ -194,6 +192,7 @@ public:
bool hasContent();
private:
+ void inval(const IntRect& rect); // caller must hold m_baseLayerLock
// Delay between scheduling a new page when the scale
// factor changes (i.e. zooming in or out)
@@ -221,8 +220,7 @@ private:
bool m_usePageA;
TiledPage* m_tiledPageA;
TiledPage* m_tiledPageB;
- android::DrawExtra* m_extra;
- LayerAndroid* m_navLayer;
+ SkIRect m_lastInval;
};
} // namespace WebCore