blob: a63085e02d5f8e7b16453b1933f7360367e3e404 [file] [log] [blame]
Mathias Agopian875d8e12013-06-07 15:35:48 -07001/*
2 * Copyright 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Peiyong Lincbc184f2018-08-22 13:24:10 -070017#include <renderengine/RenderEngine.h>
Fabien Sanglardc93afd52017-03-13 13:02:42 -070018
Peiyong Lin833074a2018-08-28 11:53:54 -070019#include <vector>
20
Peiyong Lincbc184f2018-08-22 13:24:10 -070021#include <log/log.h>
Lloyd Pique63f9dbf2018-06-21 13:13:07 -070022#include <private/gui/SyncFeatures.h>
Peiyong Lincbc184f2018-08-22 13:24:10 -070023#include <renderengine/Image.h>
24#include <renderengine/Mesh.h>
25#include <renderengine/Surface.h>
26#include <ui/Rect.h>
27#include <ui/Region.h>
Peiyong Lin833074a2018-08-28 11:53:54 -070028#include <utils/KeyedVector.h>
29#include "gl/GLES20RenderEngine.h"
30#include "gl/GLExtensions.h"
31#include "gl/ProgramCache.h"
Jorim Jaggi5b15ef62018-01-17 18:31:39 +010032
Peiyong Lin833074a2018-08-28 11:53:54 -070033using namespace android::renderengine::gl;
Jorim Jaggi5b15ef62018-01-17 18:31:39 +010034
Jiyong Park00b15b82017-08-10 20:30:56 +090035extern "C" EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name);
Jesse Hall19e87292013-12-23 21:02:15 -080036
Mathias Agopian875d8e12013-06-07 15:35:48 -070037namespace android {
Peiyong Lin833074a2018-08-28 11:53:54 -070038namespace renderengine {
Mathias Agopian875d8e12013-06-07 15:35:48 -070039
Peiyong Linf11f39b2018-09-05 14:37:41 -070040std::unique_ptr<impl::RenderEngine> RenderEngine::create(int hwcFormat, uint32_t featureFlags) {
41 return renderengine::gl::GLES20RenderEngine::create(hwcFormat, featureFlags);
42}
43
Lloyd Pique144e1162017-12-20 16:44:52 -080044RenderEngine::~RenderEngine() = default;
45
46namespace impl {
47
Chia-I Wu93e14df2018-06-04 10:10:17 -070048RenderEngine::RenderEngine(uint32_t featureFlags)
Peiyong Linf11f39b2018-09-05 14:37:41 -070049 : mFeatureFlags(featureFlags) {}
Mathias Agopian875d8e12013-06-07 15:35:48 -070050
Peiyong Linf11f39b2018-09-05 14:37:41 -070051RenderEngine::~RenderEngine() = default;
Jesse Hall05f8c702013-12-23 20:44:38 -080052
Lloyd Pique63f9dbf2018-06-21 13:13:07 -070053bool RenderEngine::useNativeFenceSync() const {
54 return SyncFeatures::getInstance().useNativeFenceSync();
55}
56
57bool RenderEngine::useWaitSync() const {
58 return SyncFeatures::getInstance().useWaitSync();
59}
60
Peiyong Lin833074a2018-08-28 11:53:54 -070061} // namespace impl
62} // namespace renderengine
63} // namespace android