diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp b/Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp index 6f679da..0ab72b7 100644 --- a/Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp +++ b/Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp @@ -34,6 +34,7 @@ #include "AndroidLog.h" #include "GaneshRenderer.h" #include "GLUtils.h" +#include "InstrumentedPlatformCanvas.h" #include "RasterRenderer.h" #include "SkBitmap.h" #include "SkBitmapRef.h" @@ -94,7 +95,10 @@ void BaseRenderer::renderTiledContent(TileRenderInfo& renderInfo) const bool visualIndicator = TilesManager::instance()->getShowVisualIndicator(); const SkSize& tileSize = renderInfo.tileSize; - SkCanvas canvas; + Color *background = renderInfo.tilePainter->background(); + InstrumentedPlatformCanvas canvas(TilesManager::instance()->tileWidth(), + TilesManager::instance()->tileHeight(), + background ? *background : Color::transparent); setupCanvas(renderInfo, &canvas); if (!canvas.getDevice()) { @@ -112,10 +116,8 @@ void BaseRenderer::renderTiledContent(TileRenderInfo& renderInfo) canvas.translate(-renderInfo.x * tileSize.width(), -renderInfo.y * tileSize.height()); canvas.scale(renderInfo.scale, renderInfo.scale); renderInfo.tilePainter->paint(&canvas); - if (renderInfo.baseTile && renderInfo.baseTile->backTexture()) - checkForPureColor(renderInfo, &canvas); - else - renderInfo.isPureColor = false; + + checkForPureColor(renderInfo, canvas); if (visualIndicator) { double after = currentTimeMS(); @@ -144,6 +146,13 @@ void BaseRenderer::renderTiledContent(TileRenderInfo& renderInfo) renderingComplete(renderInfo, &canvas); } +void BaseRenderer::checkForPureColor(TileRenderInfo& renderInfo, InstrumentedPlatformCanvas& canvas) +{ + renderInfo.isPureColor = canvas.isSolidColor(); + renderInfo.pureColor = canvas.solidColor(); + deviceCheckForPureColor(renderInfo, &canvas); +} + } // namespace WebCore #endif // USE(ACCELERATED_COMPOSITING) |