#ifndef _EGLUUTIL_HPP #define _EGLUUTIL_HPP /*------------------------------------------------------------------------- * drawElements Quality Program Tester Core * ---------------------------------------- * * Copyright 2014 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. * *//*! * \file * \brief EGL utilities *//*--------------------------------------------------------------------*/ #include "tcuDefs.hpp" #include "egluDefs.hpp" #include "egluNativeWindow.hpp" #include "egluNativeDisplay.hpp" #include "eglwDefs.hpp" #include #include #include namespace tcu { class CommandLine; } namespace eglw { class Library; } namespace eglu { class NativePixmapFactory; class NativePixmap; class FilterList; typedef std::map AttribMap; std::vector attribMapToList(const AttribMap &map); Version getVersion(const eglw::Library &egl, eglw::EGLDisplay display); std::vector getClientExtensions(const eglw::Library &egl); std::vector getDisplayExtensions(const eglw::Library &egl, eglw::EGLDisplay display); bool hasExtension(const eglw::Library &egl, eglw::EGLDisplay display, const std::string &extName); std::vector getConfigs(const eglw::Library &egl, eglw::EGLDisplay display); std::vector chooseConfigs(const eglw::Library &egl, eglw::EGLDisplay display, const AttribMap &attribs); std::vector chooseConfigs(const eglw::Library &egl, eglw::EGLDisplay display, const FilterList &filters); std::vector chooseConfigs(const eglw::Library &egl, eglw::EGLDisplay display, const eglw::EGLint *attribs); eglw::EGLConfig chooseSingleConfig(const eglw::Library &egl, eglw::EGLDisplay display, const AttribMap &attribs); eglw::EGLConfig chooseSingleConfig(const eglw::Library &egl, eglw::EGLDisplay display, const eglw::EGLint *attribs); eglw::EGLConfig chooseSingleConfig(const eglw::Library &egl, eglw::EGLDisplay display, const FilterList &filters); eglw::EGLConfig chooseConfigByID(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLint id); eglw::EGLint getConfigAttribInt(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLConfig config, eglw::EGLint attrib); eglw::EGLint getConfigID(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLConfig config); eglw::EGLint querySurfaceInt(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLSurface surface, eglw::EGLint attrib); tcu::IVec2 getSurfaceSize(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLSurface surface); tcu::IVec2 getSurfaceResolution(const eglw::Library &egl, eglw::EGLDisplay display, eglw::EGLSurface surface); eglw::EGLDisplay getDisplay(NativeDisplay &nativeDisplay); eglw::EGLDisplay getAndInitDisplay(NativeDisplay &nativeDisplay, Version *version = DE_NULL); void terminateDisplay(const eglw::Library &egl, eglw::EGLDisplay display); eglw::EGLSurface createWindowSurface(NativeDisplay &nativeDisplay, NativeWindow &window, eglw::EGLDisplay display, eglw::EGLConfig config, const eglw::EGLAttrib *attribList); eglw::EGLSurface createPixmapSurface(NativeDisplay &nativeDisplay, NativePixmap &pixmap, eglw::EGLDisplay display, eglw::EGLConfig config, const eglw::EGLAttrib *attribList); const NativeDisplayFactory &selectNativeDisplayFactory(const NativeDisplayFactoryRegistry ®istry, const tcu::CommandLine &cmdLine); const NativeWindowFactory &selectNativeWindowFactory(const NativeDisplayFactory &factory, const tcu::CommandLine &cmdLine); const NativePixmapFactory &selectNativePixmapFactory(const NativeDisplayFactory &factory, const tcu::CommandLine &cmdLine); WindowParams::Visibility parseWindowVisibility(const tcu::CommandLine &commandLine); eglw::EGLenum parseClientAPI(const std::string &api); std::vector parseClientAPIs(const std::string &apiList); std::vector getClientAPIs(const eglw::Library &egl, eglw::EGLDisplay display); eglw::EGLint getRenderableAPIsMask(const eglw::Library &egl, eglw::EGLDisplay display); std::vector toLegacyAttribList(const eglw::EGLAttrib *attribs); } // namespace eglu #endif // _EGLUUTIL_HPP