summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-04-09 13:58:33 -0700
committerChris Craik <ccraik@google.com>2012-04-09 14:47:30 -0700
commit55395a33cb848de5b522b7309a337ca7625a2523 (patch)
tree55aaa0e459cd11b62736ca07d0453c742227c166 /Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
parent98e8504d9f510b8cbaca1b0144efea3a4d1a8eec (diff)
downloadexternal_webkit-55395a33cb848de5b522b7309a337ca7625a2523.zip
external_webkit-55395a33cb848de5b522b7309a337ca7625a2523.tar.gz
external_webkit-55395a33cb848de5b522b7309a337ca7625a2523.tar.bz2
Force kModeProcess functor invocation to return
Previously drawing would cease if no painting collection existed, regardless of whether the drawing collection was ready. This change forces drawing to occur once the functor enters kModeProcess, since it should only arrive there by content missing. Change-Id: I6c14ad4180499dda0461c6c45d46f22c5690f61b
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
index 8fb4d4b..91335c7 100644
--- a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
+++ b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
@@ -205,9 +205,17 @@ int SurfaceCollectionManager::drawGL(double currentTime, IntRect& viewRect,
returnFlags |= uirenderer::DrawGlInfo::kStatusInvoke;
if (!shouldDraw) {
- if (didCollectionSwap) {
+ if (didCollectionSwap
+ || (!m_paintingCollection
+ && m_drawingCollection
+ && m_drawingCollection->isReady())) {
+ // either a swap just occurred, or there is no more work to be done: do a full draw
m_drawingCollection->swapTiles();
returnFlags |= uirenderer::DrawGlInfo::kStatusDraw;
+ } else {
+ // current collection not ready - invoke functor in process mode
+ // until either drawing or painting collection is ready
+ returnFlags |= uirenderer::DrawGlInfo::kStatusInvoke;
}
return returnFlags;