diff options
author | Derek Sollenberger <djsollen@google.com> | 2010-11-04 16:22:28 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2010-11-04 16:22:28 -0400 |
commit | 144ccd9c8dba05ffaa0ae598f9b70032050fc20e (patch) | |
tree | e63cbbd7d1297d293f0952904618b9ff63a981f1 /WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp | |
parent | f337498167288e7a10576e418b97d8d9afa223c8 (diff) | |
download | external_webkit-144ccd9c8dba05ffaa0ae598f9b70032050fc20e.zip external_webkit-144ccd9c8dba05ffaa0ae598f9b70032050fc20e.tar.gz external_webkit-144ccd9c8dba05ffaa0ae598f9b70032050fc20e.tar.bz2 |
Revert "Support partial invalidation of tiles based on webkit's inval rect."
This reverts commit fc92ca2409a95b539274985812d88016b6b84b7e.
Diffstat (limited to 'WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp')
-rw-r--r-- | WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp b/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp index 1a8e686..7cecddd 100644 --- a/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp +++ b/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp @@ -56,27 +56,28 @@ BackedDoubleBufferedTexture::~BackedDoubleBufferedTexture() TextureInfo* BackedDoubleBufferedTexture::producerLock() { - m_busyLock.lock(); + m_varLock.lock(); m_busy = true; - m_busyLock.unlock(); + m_varLock.unlock(); return DoubleBufferedTexture::producerLock(); } void BackedDoubleBufferedTexture::producerRelease() { DoubleBufferedTexture::producerRelease(); - android::Mutex::Autolock lock(m_busyLock); + android::Mutex::Autolock lock(m_varLock); m_busy = false; } void BackedDoubleBufferedTexture::producerReleaseAndSwap() { DoubleBufferedTexture::producerReleaseAndSwap(); - android::Mutex::Autolock lock(m_busyLock); + android::Mutex::Autolock lock(m_varLock); m_busy = false; } -void BackedDoubleBufferedTexture::producerUpdate(TextureInfo* textureInfo) +void BackedDoubleBufferedTexture::producerUpdate(BaseTile* painter, + TextureInfo* textureInfo, PaintingInfo& info) { // no need to upload a texture since the bitmap is empty if (!m_bitmap.width() && !m_bitmap.height()) { @@ -92,9 +93,34 @@ void BackedDoubleBufferedTexture::producerUpdate(TextureInfo* textureInfo) textureInfo->m_height = m_bitmap.height(); } + m_varLock.lock(); + // set the painting information for this texture + if (equalsIdTextureA(textureInfo->m_textureId)) + m_paintingInfoA = info; + else if (equalsIdTextureB(textureInfo->m_textureId)) + m_paintingInfoB = info; + m_varLock.unlock(); + producerReleaseAndSwap(); } +// Compare the current texture displayed with some PaintingInfo. +bool BackedDoubleBufferedTexture::consumerTextureUpToDate(PaintingInfo& info) +{ + android::Mutex::Autolock lock(m_varLock); + if (isTextureAReadable()) + return info == m_paintingInfoA; + return info == m_paintingInfoB; +} + +bool BackedDoubleBufferedTexture::consumerTextureSimilar(PaintingInfo& info) +{ + android::Mutex::Autolock lock(m_varLock); + if (isTextureAReadable()) + return info.similar(m_paintingInfoA); + return info.similar(m_paintingInfoB); +} + bool BackedDoubleBufferedTexture::acquire(BaseTile* owner) { if (m_owner == owner) @@ -102,7 +128,7 @@ bool BackedDoubleBufferedTexture::acquire(BaseTile* owner) // if the writable texture is busy (i.e. currently being written to) then we // can't change the owner out from underneath that texture - android::Mutex::Autolock lock(m_busyLock); + android::Mutex::Autolock lock(m_varLock); if (!m_busy) { if (m_owner) m_owner->removeTexture(); |