summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/Tile.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-05-10 13:45:37 -0700
committerChris Craik <ccraik@google.com>2012-05-10 16:08:46 -0700
commitbd3f93b66934582acd0b6c70bcf60ca643b36ead (patch)
treeca21e51653e0a5e256e8cc9a0762729bd62728b5 /Source/WebCore/platform/graphics/android/rendering/Tile.cpp
parentd236e597b13a93d21eafa2edeacb5092076937e1 (diff)
downloadexternal_webkit-bd3f93b66934582acd0b6c70bcf60ca643b36ead.zip
external_webkit-bd3f93b66934582acd0b6c70bcf60ca643b36ead.tar.gz
external_webkit-bd3f93b66934582acd0b6c70bcf60ca643b36ead.tar.bz2
dirty all tiles when entering/exiting single surface mode
bug:6471089 Change-Id: I609a75d028ec9fa7b26be90d38b116a9766c4f21
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/Tile.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/Tile.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/Tile.cpp b/Source/WebCore/platform/graphics/android/rendering/Tile.cpp
index 3af05f4..2e2c397 100644
--- a/Source/WebCore/platform/graphics/android/rendering/Tile.cpp
+++ b/Source/WebCore/platform/graphics/android/rendering/Tile.cpp
@@ -146,6 +146,13 @@ bool Tile::removeTexture(TileTexture* texture)
return true;
}
+void Tile::markAsDirty()
+{
+ android::AutoMutex lock(m_atomicSync);
+ m_dirtyArea.setEmpty(); // empty dirty rect prevents fast blit path
+ markAsDirtyInternal();
+}
+
void Tile::markAsDirty(const SkRegion& dirtyArea)
{
if (dirtyArea.isEmpty())
@@ -171,6 +178,13 @@ void Tile::markAsDirty(const SkRegion& dirtyArea)
if (!intersect)
return;
+ markAsDirtyInternal();
+}
+
+void Tile::markAsDirtyInternal()
+{
+ // NOTE: callers must hold lock on m_atomicSync
+
m_dirty = true;
if (m_state == UpToDate) {
// We only mark a tile as unpainted in 'markAsDirty' if its status is