diff options
| author | 2017-09-06 15:53:00 +0000 | |
|---|---|---|
| committer | 2017-09-06 15:53:00 +0000 | |
| commit | 943675342ea955ca11f3a0a3beaf09dd793cb1a8 (patch) | |
| tree | 61aba4edabe0d433ef47be0458b7b19ac3a99684 /libs | |
| parent | 0a18aafb3ce4648f354be78c2f03eacfc5f517ea (diff) | |
| parent | f79ba3c58e81975a6c58dfd6e9cdf02a007cebe1 (diff) | |
Merge changes from topic "libgraphicsenv"
* changes:
Mark libui as vendor_available
GraphicsEnv is separated from libui
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/graphicsenv/Android.bp | 28 | ||||
| -rw-r--r-- | libs/graphicsenv/GraphicsEnv.cpp (renamed from libs/ui/GraphicsEnv.cpp) | 2 | ||||
| -rw-r--r-- | libs/graphicsenv/include/graphicsenv/GraphicsEnv.h | 59 | ||||
| -rw-r--r-- | libs/ui/Android.bp | 2 |
4 files changed, 88 insertions, 3 deletions
diff --git a/libs/graphicsenv/Android.bp b/libs/graphicsenv/Android.bp new file mode 100644 index 0000000000..f2686d5748 --- /dev/null +++ b/libs/graphicsenv/Android.bp @@ -0,0 +1,28 @@ +// Copyright (C) 2017 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. + +cc_library_shared { + name: "libgraphicsenv", + + srcs: [ + "GraphicsEnv.cpp", + ], + + shared_libs: [ + "libnativeloader", + "liblog", + ], + + export_include_dirs: ["include"], +} diff --git a/libs/ui/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp index 8182c07001..39b5829faf 100644 --- a/libs/ui/GraphicsEnv.cpp +++ b/libs/graphicsenv/GraphicsEnv.cpp @@ -16,7 +16,7 @@ //#define LOG_NDEBUG 1 #define LOG_TAG "GraphicsEnv" -#include <ui/GraphicsEnv.h> +#include <graphicsenv/GraphicsEnv.h> #include <mutex> diff --git a/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h new file mode 100644 index 0000000000..781707694a --- /dev/null +++ b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h @@ -0,0 +1,59 @@ +/* + * Copyright 2017 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. + */ + +#ifndef ANDROID_UI_GRAPHICS_ENV_H +#define ANDROID_UI_GRAPHICS_ENV_H 1 + +#include <string> + +struct android_namespace_t; + +namespace android { + +class GraphicsEnv { +public: + static GraphicsEnv& getInstance(); + + // Set a search path for loading graphics drivers. The path is a list of + // directories separated by ':'. A directory can be contained in a zip file + // (drivers must be stored uncompressed and page aligned); such elements + // in the search path must have a '!' after the zip filename, e.g. + // /data/app/com.example.driver/base.apk!/lib/arm64-v8a + void setDriverPath(const std::string path); + android_namespace_t* getDriverNamespace(); + +private: + GraphicsEnv() = default; + std::string mDriverPath; + android_namespace_t* mDriverNamespace = nullptr; +}; + +} // namespace android + +/* FIXME + * Export an un-mangled function that just does + * return android::GraphicsEnv::getInstance().getDriverNamespace(); + * This allows libEGL to get the function pointer via dlsym, since it can't + * directly link against libgui. In a future release, we'll fix this so that + * libgui does not depend on graphics API libraries, and libEGL can link + * against it. The current dependencies from libgui -> libEGL are: + * - the GLConsumer class, which should be moved to its own library + * - the EGLsyncKHR synchronization in BufferQueue, which is deprecated and + * will be removed soon. + */ +extern "C" android_namespace_t* android_getDriverNamespace(); + +#endif // ANDROID_UI_GRAPHICS_ENV_H diff --git a/libs/ui/Android.bp b/libs/ui/Android.bp index 5edd664345..395a98c004 100644 --- a/libs/ui/Android.bp +++ b/libs/ui/Android.bp @@ -54,7 +54,6 @@ cc_library_shared { "GraphicBuffer.cpp", "GraphicBufferAllocator.cpp", "GraphicBufferMapper.cpp", - "GraphicsEnv.cpp", "HdrCapabilities.cpp", "PixelFormat.cpp", "Rect.cpp", @@ -72,7 +71,6 @@ cc_library_shared { "android.hardware.configstore@1.0", "android.hardware.configstore-utils", "libbase", - "libnativeloader", "libcutils", "libhardware", "libhidlbase", |