diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2016-07-07 20:09:45 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-07-07 20:09:46 +0000 |
commit | a1a529eec0f1183c2dbb09d9c6fd12211154bebd (patch) | |
tree | ca358a5e7b835c6ee6975d511294d2171b3d4483 /libs/hwui/renderthread/CanvasContext.cpp | |
parent | 5c1d5461c9e44c48c22819d6985406f056eca35a (diff) | |
parent | 03de074d05108fa9fb07c6b847c7163ada5776da (diff) |
Merge "Implement runtime switch to select default renderer mode"
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 0c3bae6e0154..9aa0dea18b6a 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -62,6 +62,28 @@ namespace android { namespace uirenderer { namespace renderthread { +CanvasContext* CanvasContext::create(RenderThread& thread, + bool translucent, RenderNode* rootRenderNode, IContextFactory* contextFactory) { + + auto renderType = Properties::getRenderPipelineType(); + switch (renderType) { + case RenderPipelineType::OpenGL: + return new CanvasContext(thread, translucent, rootRenderNode, contextFactory); + case RenderPipelineType::SkiaGL: + //TODO: implement SKIA GL + LOG_ALWAYS_FATAL("skiaGL canvas type not implemented."); + break; + case RenderPipelineType::Vulkan: + //TODO: implement Vulkan + LOG_ALWAYS_FATAL("Vulkan canvas type not implemented."); + break; + default: + LOG_ALWAYS_FATAL("canvas context type %d not supported", (int32_t) renderType); + break; + } + return nullptr; +} + CanvasContext::CanvasContext(RenderThread& thread, bool translucent, RenderNode* rootRenderNode, IContextFactory* contextFactory) : mRenderThread(thread) @@ -832,6 +854,11 @@ int64_t CanvasContext::getFrameNumber() { return mFrameNumber; } +bool CanvasContext::isSkiaEnabled() { + auto renderType = Properties::getRenderPipelineType(); + return RenderPipelineType::SkiaGL == renderType || RenderPipelineType::Vulkan == renderType; +} + } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */ |