summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2012-05-17 17:32:25 -0700
committerNicolas Roard <nicolasroard@google.com>2012-05-17 18:01:19 -0700
commit377dc9f6b46a2ac0f968d9ee8d3c7916f3bf6904 (patch)
tree518fb21355b3530d6cdd18e3c6303348ee5501c0 /Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
parent37df6b06a8481e3608cff1718038d353a8733d6c (diff)
downloadexternal_webkit-377dc9f6b46a2ac0f968d9ee8d3c7916f3bf6904.zip
external_webkit-377dc9f6b46a2ac0f968d9ee8d3c7916f3bf6904.tar.gz
external_webkit-377dc9f6b46a2ac0f968d9ee8d3c7916f3bf6904.tar.bz2
Fix invalidations sent to framework
bug:6479200 bug:6323847 bug:4124445 Change-Id: I1a4058ba6c69d3e285b6274d99a6eafcbf1cdc6f
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
index b4fd699..5abca02 100644
--- a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
+++ b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
@@ -68,12 +68,14 @@ void SurfaceCollectionManager::swap()
// if we have a drawing collection, discard it since the painting collection is done
if (m_drawingCollection) {
ALOGV("destroying drawing collection %p", m_drawingCollection);
+ m_drawingCollection->addFrameworkInvals();
SkSafeUnref(m_drawingCollection);
}
// painting collection becomes the drawing collection
ALOGV("drawing collection %p", m_paintingCollection);
m_paintingCollection->setIsDrawing(); // initialize animations
+ m_paintingCollection->addFrameworkInvals();
if (m_queuedCollection) {
// start painting with the queued collection
@@ -203,6 +205,10 @@ int SurfaceCollectionManager::drawGL(double currentTime, IntRect& viewRect,
m_drawingCollection, m_paintingCollection,
m_queuedCollection, m_fastSwapMode, shouldDraw);
+ // ask for kStatusInvoke while painting, kStatusDraw if we have content to be redrawn next frame
+ // returning 0 indicates all painting complete, no framework inval needed.
+ int returnFlags = 0;
+
bool didCollectionSwap = false;
if (m_paintingCollection) {
ALOGV("preparing painting collection %p", m_paintingCollection);
@@ -222,6 +228,7 @@ int SurfaceCollectionManager::drawGL(double currentTime, IntRect& viewRect,
if (newCollectionHasAnimPtr)
*newCollectionHasAnimPtr = m_paintingCollection->hasCompositedAnimations();
swap();
+ returnFlags |= uirenderer::DrawGlInfo::kStatusDraw;
}
} else if (m_drawingCollection) {
ALOGV("preparing drawing collection %p", m_drawingCollection);
@@ -229,10 +236,6 @@ int SurfaceCollectionManager::drawGL(double currentTime, IntRect& viewRect,
m_drawingCollection->computeTexturesAmount(texturesResultPtr);
}
- // ask for kStatusInvoke while painting, kStatusDraw if we have content to be redrawn next frame
- // returning 0 indicates all painting complete, no framework inval needed.
- int returnFlags = 0;
-
if (m_paintingCollection)
returnFlags |= DrawGlInfo::kStatusInvoke;