diff options
| author | 2021-11-16 18:34:11 +0000 | |
|---|---|---|
| committer | 2021-11-16 18:34:11 +0000 | |
| commit | 2ba8f3c173f19a217c8e6aae791ed7bcd522eea4 (patch) | |
| tree | 2888070baf3dac9bf6f8f7b5b6cc15d85b8ff442 | |
| parent | 8fc39174aa65ce8b8607bbfc80717151fa3744b5 (diff) | |
| parent | 04f0a431d2fda17ca2dc40119cd0f551c7d77e22 (diff) | |
Merge "Don't crash skiagl backend." am: 46acb2b07e am: 488f3d37bb am: 04f0a431d2
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1890999
Change-Id: I5b2fb8979c6a7dfd2c0b3f9e3f67ddbeecdf5a04
| -rw-r--r-- | libs/renderengine/RenderEngine.cpp | 36 | ||||
| -rw-r--r-- | libs/renderengine/include/renderengine/RenderEngine.h | 2 |
2 files changed, 11 insertions, 27 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp index 0c5a851c41..9e466b6c34 100644 --- a/libs/renderengine/RenderEngine.cpp +++ b/libs/renderengine/RenderEngine.cpp @@ -26,55 +26,39 @@ namespace android { namespace renderengine { -std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArgs& args) { - RenderEngineType renderEngineType = args.renderEngineType; - +std::unique_ptr<RenderEngine> RenderEngine::create(RenderEngineCreationArgs args) { // Keep the ability to override by PROPERTIES: char prop[PROPERTY_VALUE_MAX]; property_get(PROPERTY_DEBUG_RENDERENGINE_BACKEND, prop, ""); if (strcmp(prop, "gles") == 0) { - renderEngineType = RenderEngineType::GLES; + args.renderEngineType = RenderEngineType::GLES; } if (strcmp(prop, "threaded") == 0) { - renderEngineType = RenderEngineType::THREADED; + args.renderEngineType = RenderEngineType::THREADED; } if (strcmp(prop, "skiagl") == 0) { - renderEngineType = RenderEngineType::SKIA_GL; + args.renderEngineType = RenderEngineType::SKIA_GL; } if (strcmp(prop, "skiaglthreaded") == 0) { - renderEngineType = RenderEngineType::SKIA_GL_THREADED; + args.renderEngineType = RenderEngineType::SKIA_GL_THREADED; } - switch (renderEngineType) { + switch (args.renderEngineType) { case RenderEngineType::THREADED: ALOGD("Threaded RenderEngine with GLES Backend"); return renderengine::threaded::RenderEngineThreaded::create( [args]() { return android::renderengine::gl::GLESRenderEngine::create(args); }, - renderEngineType); + args.renderEngineType); case RenderEngineType::SKIA_GL: ALOGD("RenderEngine with SkiaGL Backend"); return renderengine::skia::SkiaGLRenderEngine::create(args); case RenderEngineType::SKIA_GL_THREADED: { - // These need to be recreated, since they are a constant reference, and we need to - // let SkiaRE know that it's running as threaded, and all GL operation will happen on - // the same thread. - RenderEngineCreationArgs skiaArgs = - RenderEngineCreationArgs::Builder() - .setPixelFormat(args.pixelFormat) - .setImageCacheSize(args.imageCacheSize) - .setUseColorManagerment(args.useColorManagement) - .setEnableProtectedContext(args.enableProtectedContext) - .setPrecacheToneMapperShaderOnly(args.precacheToneMapperShaderOnly) - .setSupportsBackgroundBlur(args.supportsBackgroundBlur) - .setContextPriority(args.contextPriority) - .setRenderEngineType(renderEngineType) - .build(); ALOGD("Threaded RenderEngine with SkiaGL Backend"); return renderengine::threaded::RenderEngineThreaded::create( - [skiaArgs]() { - return android::renderengine::skia::SkiaGLRenderEngine::create(skiaArgs); + [args]() { + return android::renderengine::skia::SkiaGLRenderEngine::create(args); }, - renderEngineType); + args.renderEngineType); } case RenderEngineType::GLES: default: diff --git a/libs/renderengine/include/renderengine/RenderEngine.h b/libs/renderengine/include/renderengine/RenderEngine.h index 967cf5deff..f555cdbc0d 100644 --- a/libs/renderengine/include/renderengine/RenderEngine.h +++ b/libs/renderengine/include/renderengine/RenderEngine.h @@ -98,7 +98,7 @@ public: SKIA_GL_THREADED = 4, }; - static std::unique_ptr<RenderEngine> create(const RenderEngineCreationArgs& args); + static std::unique_ptr<RenderEngine> create(RenderEngineCreationArgs args); virtual ~RenderEngine() = 0; |