summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp31
1 files changed, 6 insertions, 25 deletions
diff --git a/Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp b/Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp
index b24c806..0e22103 100644
--- a/Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp
+++ b/Source/WebCore/platform/graphics/android/BackedDoubleBufferedTexture.cpp
@@ -41,7 +41,7 @@ namespace WebCore {
BackedDoubleBufferedTexture::BackedDoubleBufferedTexture(uint32_t w, uint32_t h,
SkBitmap* bitmap,
SkBitmap::Config config)
- : DoubleBufferedTexture(eglGetCurrentContext(), EglImageMode)
+ : DoubleBufferedTexture(eglGetCurrentContext(), SurfaceTextureMode)
, m_usedLevel(-1)
, m_config(config)
, m_owner(0)
@@ -82,8 +82,10 @@ BackedDoubleBufferedTexture::~BackedDoubleBufferedTexture()
if (!m_sharedBitmap)
delete m_bitmap;
delete m_canvas;
- SharedTexture* textures[3] = { m_textureA, m_textureB, 0 };
- destroyTextures(textures);
+ if (m_sharedTextureMode == EglImageMode) {
+ SharedTexture* textures[3] = { m_textureA, m_textureB, 0 };
+ destroyTextures(textures);
+ }
#ifdef DEBUG_COUNT
ClassTracker::instance()->decrement("BackedDoubleBufferedTexture");
#endif
@@ -146,21 +148,6 @@ bool BackedDoubleBufferedTexture::busy()
return m_busy;
}
-bool BackedDoubleBufferedTexture::textureExist(TextureInfo* textureInfo)
-{
- if (!m_bitmap)
- return false;
-
- if (!m_bitmap->width() || !m_bitmap->height())
- return false;
-
- if (textureInfo->m_width == m_bitmap->width() &&
- textureInfo->m_height == m_bitmap->height())
- return true;
-
- return false;
-}
-
void BackedDoubleBufferedTexture::producerUpdate(TextureInfo* textureInfo)
{
if (!m_bitmap)
@@ -172,13 +159,7 @@ void BackedDoubleBufferedTexture::producerUpdate(TextureInfo* textureInfo)
return;
}
- if (textureExist(textureInfo))
- GLUtils::updateTextureWithBitmap(textureInfo->m_textureId, *m_bitmap);
- else {
- GLUtils::createTextureWithBitmap(textureInfo->m_textureId, *m_bitmap);
- textureInfo->m_width = m_bitmap->width();
- textureInfo->m_height = m_bitmap->height();
- }
+ GLUtils::paintTextureWithBitmap(textureInfo, m_bitmap, 0, 0, this);
if (!m_sharedBitmap) {
delete m_bitmap;