summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2011-11-14 14:04:02 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-11-14 14:04:02 -0800
commit047c2fb0008c735609e24b536007bf27b02ae4e6 (patch)
treecdf0676c37c81a87246b095c31d63549af98667c /Source
parent8301739277842d9b70d13b5224743cf6eb8234ab (diff)
parent4c64d282bac19cea4612c86ed79803ad09abb5fb (diff)
downloadexternal_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.cpp23
-rw-r--r--Source/WebCore/platform/graphics/android/RasterRenderer.h2
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;
};