diff options
author | Chris Craik <ccraik@google.com> | 2012-06-19 18:07:29 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2012-06-19 18:20:19 -0700 |
commit | ec90800d68fd500bb07f052c81fda0f54a794b1f (patch) | |
tree | 842f4f66af2b6f653db51713e5ef63670b72a5c1 /Source/WebCore/platform/graphics/android/rendering/Tile.cpp | |
parent | cfad1b4c7cfa8eb502d1263c81f43e37e28ee928 (diff) | |
download | external_webkit-ec90800d68fd500bb07f052c81fda0f54a794b1f.zip external_webkit-ec90800d68fd500bb07f052c81fda0f54a794b1f.tar.gz external_webkit-ec90800d68fd500bb07f052c81fda0f54a794b1f.tar.bz2 |
Pin renderers to threads instead of tiles
Move thread local bitmaps to renderers, so the renderers own them, and can
perform optimizations.
Change-Id: I60d604759f4ce2ec9981990d1613eaf23cd1e625
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/Tile.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/rendering/Tile.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/Tile.cpp b/Source/WebCore/platform/graphics/android/rendering/Tile.cpp index 96b189a..76be981 100644 --- a/Source/WebCore/platform/graphics/android/rendering/Tile.cpp +++ b/Source/WebCore/platform/graphics/android/rendering/Tile.cpp @@ -33,7 +33,7 @@ #include "AndroidLog.h" #include "GLUtils.h" -#include "RasterRenderer.h" +#include "BaseRenderer.h" #include "TextureInfo.h" #include "TileTexture.h" #include "TilesManager.h" @@ -64,7 +64,6 @@ Tile::Tile(bool isLayerTile) #ifdef DEBUG_COUNT ClassTracker::instance()->increment("Tile"); #endif - m_renderer = BaseRenderer::createRenderer(); } Tile::~Tile() @@ -74,8 +73,6 @@ Tile::~Tile() if (m_frontTexture) m_frontTexture->release(this); - delete m_renderer; - #ifdef DEBUG_COUNT ClassTracker::instance()->decrement("Tile"); #endif @@ -297,7 +294,7 @@ bool Tile::isTileVisible(const IntRect& viewTileBounds) } // This is called from the texture generation thread -void Tile::paintBitmap(TilePainter* painter) +void Tile::paintBitmap(TilePainter* painter, BaseRenderer* renderer) { // We acquire the values below atomically. This ensures that we are reading // values correctly across cores. Further, once we have these values they @@ -328,8 +325,6 @@ void Tile::paintBitmap(TilePainter* painter) return; } - // swap out the renderer if necessary - BaseRenderer::swapRendererIfNeeded(m_renderer); // setup the common renderInfo fields; TileRenderInfo renderInfo; renderInfo.x = x; @@ -343,7 +338,7 @@ void Tile::paintBitmap(TilePainter* painter) const float tileWidth = renderInfo.tileSize.width(); const float tileHeight = renderInfo.tileSize.height(); - m_renderer->renderTiledContent(renderInfo); + renderer->renderTiledContent(renderInfo); m_atomicSync.lock(); |