summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BaseRenderer.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/BaseRenderer.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/BaseRenderer.cpp b/Source/WebCore/platform/graphics/android/BaseRenderer.cpp
index 4fde188..ea6c8ec 100644
--- a/Source/WebCore/platform/graphics/android/BaseRenderer.cpp
+++ b/Source/WebCore/platform/graphics/android/BaseRenderer.cpp
@@ -29,7 +29,9 @@
#if USE(ACCELERATED_COMPOSITING)
+#include "GaneshRenderer.h"
#include "GLUtils.h"
+#include "RasterRenderer.h"
#include "SkBitmap.h"
#include "SkBitmapRef.h"
#include "SkCanvas.h"
@@ -56,6 +58,26 @@
namespace WebCore {
+BaseRenderer::RendererType BaseRenderer::g_currentType = BaseRenderer::Raster;
+
+BaseRenderer* BaseRenderer::createRenderer()
+{
+ if (g_currentType == Raster)
+ return new RasterRenderer();
+ else if (g_currentType == Ganesh)
+ return new GaneshRenderer();
+ return NULL;
+}
+
+void BaseRenderer::swapRendererIfNeeded(BaseRenderer*& renderer)
+{
+ if (renderer->getType() == g_currentType)
+ return;
+
+ delete renderer;
+ renderer = createRenderer();
+}
+
void BaseRenderer::drawTileInfo(SkCanvas* canvas,
const TileRenderInfo& renderInfo, int pictureCount)
{