summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/BaseRenderer.cpp19
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)