summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/Tile.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-06-19 18:07:29 -0700
committerChris Craik <ccraik@google.com>2012-06-19 18:20:19 -0700
commitec90800d68fd500bb07f052c81fda0f54a794b1f (patch)
tree842f4f66af2b6f653db51713e5ef63670b72a5c1 /Source/WebCore/platform/graphics/android/rendering/Tile.cpp
parentcfad1b4c7cfa8eb502d1263c81f43e37e28ee928 (diff)
downloadexternal_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.cpp11
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();