diff options
Diffstat (limited to 'libs/renderengine/RenderEngine.cpp')
-rw-r--r-- | libs/renderengine/RenderEngine.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp index 0fdf093b2f..f0eb34be03 100644 --- a/libs/renderengine/RenderEngine.cpp +++ b/libs/renderengine/RenderEngine.cpp @@ -20,19 +20,33 @@ #include <log/log.h> #include <private/gui/SyncFeatures.h> #include "gl/GLESRenderEngine.h" +#include "threaded/RenderEngineThreaded.h" namespace android { namespace renderengine { std::unique_ptr<impl::RenderEngine> RenderEngine::create(const RenderEngineCreationArgs& args) { + RenderEngineType renderEngineType = args.renderEngineType; + + // Keep the ability to override by PROPERTIES: char prop[PROPERTY_VALUE_MAX]; - property_get(PROPERTY_DEBUG_RENDERENGINE_BACKEND, prop, "gles"); + property_get(PROPERTY_DEBUG_RENDERENGINE_BACKEND, prop, ""); if (strcmp(prop, "gles") == 0) { - ALOGD("RenderEngine GLES Backend"); - return renderengine::gl::GLESRenderEngine::create(args); + renderEngineType = RenderEngineType::GLES; + } + if (strcmp(prop, "threaded") == 0) { + renderEngineType = RenderEngineType::THREADED; + } + + switch (renderEngineType) { + case RenderEngineType::THREADED: + ALOGD("Threaded RenderEngine with GLES Backend"); + return renderengine::threaded::RenderEngineThreaded::create(args); + case RenderEngineType::GLES: + default: + ALOGD("RenderEngine with GLES Backend"); + return renderengine::gl::GLESRenderEngine::create(args); } - ALOGE("UNKNOWN BackendType: %s, create GLES RenderEngine.", prop); - return renderengine::gl::GLESRenderEngine::create(args); } RenderEngine::~RenderEngine() = default; |