summaryrefslogtreecommitdiff
path: root/libs/renderengine/RenderEngine.cpp
diff options
context:
space:
mode:
author Peiyong Lin <lpy@google.com> 2018-10-26 18:43:14 -0700
committer Peiyong Lin <lpy@google.com> 2018-10-26 18:52:06 -0700
commit46080ef7141f53ca6bb24f4edaf0b674069c5bd4 (patch)
tree2ec7a2a1f95bf2032750fb0b440d73660eea8d11 /libs/renderengine/RenderEngine.cpp
parenta09cecee03227a600521f72cb4628a9f51f47bc8 (diff)
[RenderEngine] Move RenderEngine to libs/renderengine
To do side-by-side comparison between readback buffer from hardware composer and client target of RenderEngine, we need RenderEngine to be accessible in VTS, which means RenderEngine should be part of VNDK. This patch moves RenderEngine out of SurfaceFlinger to libs/renderengine. BUG: 112585051 Test: build, flash, boot and do some display validation Change-Id: Ib6b302eaad04c7cc6c5bae39b1d25b38be188d01
Diffstat (limited to 'libs/renderengine/RenderEngine.cpp')
-rw-r--r--libs/renderengine/RenderEngine.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/libs/renderengine/RenderEngine.cpp b/libs/renderengine/RenderEngine.cpp
new file mode 100644
index 0000000000..8be1c3c85b
--- /dev/null
+++ b/libs/renderengine/RenderEngine.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <renderengine/RenderEngine.h>
+
+#include <cutils/properties.h>
+#include <log/log.h>
+#include <private/gui/SyncFeatures.h>
+#include "gl/GLES20RenderEngine.h"
+
+namespace android {
+namespace renderengine {
+
+std::unique_ptr<impl::RenderEngine> RenderEngine::create(int hwcFormat, uint32_t featureFlags) {
+ char prop[PROPERTY_VALUE_MAX];
+ property_get(PROPERTY_DEBUG_RENDERENGINE_BACKEND, prop, "gles");
+ if (strcmp(prop, "gles") == 0) {
+ ALOGD("RenderEngine GLES Backend");
+ return renderengine::gl::GLES20RenderEngine::create(hwcFormat, featureFlags);
+ }
+ ALOGE("UNKNOWN BackendType: %s, create GLES RenderEngine.", prop);
+ return renderengine::gl::GLES20RenderEngine::create(hwcFormat, featureFlags);
+}
+
+RenderEngine::~RenderEngine() = default;
+
+namespace impl {
+
+RenderEngine::RenderEngine(uint32_t featureFlags) : mFeatureFlags(featureFlags) {}
+
+RenderEngine::~RenderEngine() = default;
+
+bool RenderEngine::useNativeFenceSync() const {
+ return SyncFeatures::getInstance().useNativeFenceSync();
+}
+
+bool RenderEngine::useWaitSync() const {
+ return SyncFeatures::getInstance().useWaitSync();
+}
+
+} // namespace impl
+} // namespace renderengine
+} // namespace android