diff options
author | Nicolas Roard <nicolasroard@google.com> | 2011-11-14 14:04:02 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-11-14 14:04:02 -0800 |
commit | 047c2fb0008c735609e24b536007bf27b02ae4e6 (patch) | |
tree | cdf0676c37c81a87246b095c31d63549af98667c /Source | |
parent | 8301739277842d9b70d13b5224743cf6eb8234ab (diff) | |
parent | 4c64d282bac19cea4612c86ed79803ad09abb5fb (diff) | |
download | external_webkit-047c2fb0008c735609e24b536007bf27b02ae4e6.zip external_webkit-047c2fb0008c735609e24b536007bf27b02ae4e6.tar.gz external_webkit-047c2fb0008c735609e24b536007bf27b02ae4e6.tar.bz2 |
am 4c64d282: Use a single shared bitmap instead of one per BaseTile.
* commit '4c64d282bac19cea4612c86ed79803ad09abb5fb':
Use a single shared bitmap instead of one per BaseTile.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/WebCore/platform/graphics/android/RasterRenderer.cpp | 23 | ||||
-rw-r--r-- | Source/WebCore/platform/graphics/android/RasterRenderer.h | 2 |
2 files changed, 15 insertions, 10 deletions
diff --git a/Source/WebCore/platform/graphics/android/RasterRenderer.cpp b/Source/WebCore/platform/graphics/android/RasterRenderer.cpp index 8bf6fcc..0c92de4 100644 --- a/Source/WebCore/platform/graphics/android/RasterRenderer.cpp +++ b/Source/WebCore/platform/graphics/android/RasterRenderer.cpp @@ -65,15 +65,20 @@ static const String TAGS[] = { TAG_UPDATE_TEXTURE, }; +SkBitmap* RasterRenderer::g_bitmap = 0; + RasterRenderer::RasterRenderer() : BaseRenderer(BaseRenderer::Raster) { #ifdef DEBUG_COUNT ClassTracker::instance()->increment("RasterRenderer"); #endif - m_bitmap.setConfig(SkBitmap::kARGB_8888_Config, - TilesManager::instance()->tileWidth(), - TilesManager::instance()->tileHeight()); - m_bitmap.allocPixels(); + if (!g_bitmap) { + g_bitmap = new SkBitmap(); + g_bitmap->setConfig(SkBitmap::kARGB_8888_Config, + TilesManager::instance()->tileWidth(), + TilesManager::instance()->tileHeight()); + g_bitmap->allocPixels(); + } } RasterRenderer::~RasterRenderer() @@ -89,14 +94,14 @@ void RasterRenderer::setupCanvas(const TileRenderInfo& renderInfo, SkCanvas* can m_perfMon.start(TAG_CREATE_BITMAP); if (renderInfo.baseTile->isLayerTile()) { - m_bitmap.setIsOpaque(false); - m_bitmap.eraseARGB(0, 0, 0, 0); + g_bitmap->setIsOpaque(false); + g_bitmap->eraseARGB(0, 0, 0, 0); } else { - m_bitmap.setIsOpaque(true); - m_bitmap.eraseARGB(255, 255, 255, 255); + g_bitmap->setIsOpaque(true); + g_bitmap->eraseARGB(255, 255, 255, 255); } - SkDevice* device = new SkDevice(NULL, m_bitmap, false); + SkDevice* device = new SkDevice(NULL, *g_bitmap, false); if (renderInfo.measurePerf) { m_perfMon.stop(TAG_CREATE_BITMAP); diff --git a/Source/WebCore/platform/graphics/android/RasterRenderer.h b/Source/WebCore/platform/graphics/android/RasterRenderer.h index 69dfaf8..96b3f58 100644 --- a/Source/WebCore/platform/graphics/android/RasterRenderer.h +++ b/Source/WebCore/platform/graphics/android/RasterRenderer.h @@ -52,7 +52,7 @@ protected: virtual const String* getPerformanceTags(int& tagCount); private: - SkBitmap m_bitmap; + static SkBitmap* g_bitmap; }; |