| // |
| // Copyright 2014 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| |
| #ifndef ANGLE_TEST_CONFIGS_H_ |
| #define ANGLE_TEST_CONFIGS_H_ |
| |
| // On Linux EGL/egl.h includes X.h which does defines for some very common |
| // names that are used by gtest (like None and Bool) and causes a lot of |
| // compilation errors. To work around this, even if this file doesn't use it, |
| // we include gtest before EGL so that it compiles fine in other files that |
| // want to use gtest. |
| #include <gtest/gtest.h> |
| |
| #include <EGL/egl.h> |
| #include <EGL/eglext.h> |
| |
| #include "angle_test_instantiate.h" |
| #include "util/EGLPlatformParameters.h" |
| |
| namespace angle |
| { |
| |
| // The GLES driver type determines what shared object we use to load the GLES entry points. |
| // AngleEGL loads from ANGLE's version of libEGL, libGLESv2, and libGLESv1_CM. |
| // SystemEGL uses the system copies of libEGL, libGLESv2, and libGLESv1_CM. |
| // SystemWGL loads Windows GL with the GLES compatiblity extensions. See util/WGLWindow.h. |
| enum class GLESDriverType |
| { |
| AngleEGL, |
| SystemEGL, |
| SystemWGL, |
| }; |
| |
| struct PlatformParameters |
| { |
| PlatformParameters(); |
| PlatformParameters(EGLint majorVersion, |
| EGLint minorVersion, |
| const EGLPlatformParameters &eglPlatformParameters); |
| PlatformParameters(EGLint majorVersion, EGLint minorVersion, GLESDriverType driver); |
| |
| EGLint getRenderer() const; |
| EGLint getDeviceType() const; |
| |
| void initDefaultParameters(); |
| |
| auto tie() const |
| { |
| return std::tie(driver, noFixture, eglParameters, majorVersion, minorVersion); |
| } |
| |
| GLESDriverType driver; |
| bool noFixture; |
| EGLPlatformParameters eglParameters; |
| EGLint majorVersion; |
| EGLint minorVersion; |
| }; |
| |
| bool operator<(const PlatformParameters &a, const PlatformParameters &b); |
| bool operator==(const PlatformParameters &a, const PlatformParameters &b); |
| std::ostream &operator<<(std::ostream &stream, const PlatformParameters &pp); |
| |
| // EGL platforms |
| namespace egl_platform |
| { |
| |
| EGLPlatformParameters DEFAULT(); |
| EGLPlatformParameters DEFAULT_NULL(); |
| |
| EGLPlatformParameters D3D9(); |
| EGLPlatformParameters D3D9_NULL(); |
| EGLPlatformParameters D3D9_REFERENCE(); |
| |
| EGLPlatformParameters D3D11(); |
| EGLPlatformParameters D3D11_PRESENT_PATH_FAST(); |
| EGLPlatformParameters D3D11_FL11_1(); |
| EGLPlatformParameters D3D11_FL11_0(); |
| EGLPlatformParameters D3D11_FL10_1(); |
| EGLPlatformParameters D3D11_FL10_0(); |
| EGLPlatformParameters D3D11_FL9_3(); |
| |
| EGLPlatformParameters D3D11_NULL(); |
| |
| EGLPlatformParameters D3D11_WARP(); |
| EGLPlatformParameters D3D11_FL11_1_WARP(); |
| EGLPlatformParameters D3D11_FL11_0_WARP(); |
| EGLPlatformParameters D3D11_FL10_1_WARP(); |
| EGLPlatformParameters D3D11_FL10_0_WARP(); |
| EGLPlatformParameters D3D11_FL9_3_WARP(); |
| |
| EGLPlatformParameters D3D11_REFERENCE(); |
| EGLPlatformParameters D3D11_FL11_1_REFERENCE(); |
| EGLPlatformParameters D3D11_FL11_0_REFERENCE(); |
| EGLPlatformParameters D3D11_FL10_1_REFERENCE(); |
| EGLPlatformParameters D3D11_FL10_0_REFERENCE(); |
| EGLPlatformParameters D3D11_FL9_3_REFERENCE(); |
| |
| EGLPlatformParameters OPENGL(); |
| EGLPlatformParameters OPENGL(EGLint major, EGLint minor); |
| EGLPlatformParameters OPENGL_NULL(); |
| |
| EGLPlatformParameters OPENGLES(); |
| EGLPlatformParameters OPENGLES(EGLint major, EGLint minor); |
| EGLPlatformParameters OPENGLES_NULL(); |
| |
| EGLPlatformParameters OPENGL_OR_GLES(); |
| EGLPlatformParameters OPENGL_OR_GLES_NULL(); |
| |
| EGLPlatformParameters VULKAN(); |
| EGLPlatformParameters VULKAN_NULL(); |
| EGLPlatformParameters VULKAN_SWIFTSHADER(); |
| |
| } // namespace egl_platform |
| |
| // ANGLE tests platforms |
| PlatformParameters ES1_D3D9(); |
| PlatformParameters ES2_D3D9(); |
| |
| PlatformParameters ES1_D3D11(); |
| PlatformParameters ES2_D3D11(); |
| PlatformParameters ES2_D3D11_PRESENT_PATH_FAST(); |
| PlatformParameters ES2_D3D11_FL11_0(); |
| PlatformParameters ES2_D3D11_FL10_1(); |
| PlatformParameters ES2_D3D11_FL10_0(); |
| PlatformParameters ES2_D3D11_FL9_3(); |
| |
| PlatformParameters ES2_D3D11_WARP(); |
| PlatformParameters ES2_D3D11_FL11_0_WARP(); |
| PlatformParameters ES2_D3D11_FL10_1_WARP(); |
| PlatformParameters ES2_D3D11_FL10_0_WARP(); |
| PlatformParameters ES2_D3D11_FL9_3_WARP(); |
| |
| PlatformParameters ES2_D3D11_REFERENCE(); |
| PlatformParameters ES2_D3D11_FL11_0_REFERENCE(); |
| PlatformParameters ES2_D3D11_FL10_1_REFERENCE(); |
| PlatformParameters ES2_D3D11_FL10_0_REFERENCE(); |
| PlatformParameters ES2_D3D11_FL9_3_REFERENCE(); |
| |
| PlatformParameters ES3_D3D11(); |
| PlatformParameters ES3_D3D11_FL11_1(); |
| PlatformParameters ES3_D3D11_FL11_0(); |
| PlatformParameters ES3_D3D11_FL10_1(); |
| PlatformParameters ES31_D3D11(); |
| PlatformParameters ES31_D3D11_FL11_1(); |
| PlatformParameters ES31_D3D11_FL11_0(); |
| |
| PlatformParameters ES3_D3D11_WARP(); |
| PlatformParameters ES3_D3D11_FL11_1_WARP(); |
| PlatformParameters ES3_D3D11_FL11_0_WARP(); |
| PlatformParameters ES3_D3D11_FL10_1_WARP(); |
| |
| PlatformParameters ES1_OPENGL(); |
| PlatformParameters ES2_OPENGL(); |
| PlatformParameters ES2_OPENGL(EGLint major, EGLint minor); |
| PlatformParameters ES3_OPENGL(); |
| PlatformParameters ES3_OPENGL(EGLint major, EGLint minor); |
| PlatformParameters ES31_OPENGL(); |
| PlatformParameters ES31_OPENGL(EGLint major, EGLint minor); |
| |
| PlatformParameters ES1_OPENGLES(); |
| PlatformParameters ES2_OPENGLES(); |
| PlatformParameters ES2_OPENGLES(EGLint major, EGLint minor); |
| PlatformParameters ES3_OPENGLES(); |
| PlatformParameters ES3_OPENGLES(EGLint major, EGLint minor); |
| PlatformParameters ES31_OPENGLES(); |
| PlatformParameters ES31_OPENGLES(EGLint major, EGLint minor); |
| |
| PlatformParameters ES1_NULL(); |
| PlatformParameters ES2_NULL(); |
| PlatformParameters ES3_NULL(); |
| PlatformParameters ES31_NULL(); |
| |
| PlatformParameters ES1_VULKAN(); |
| PlatformParameters ES1_VULKAN_NULL(); |
| PlatformParameters ES1_VULKAN_SWIFTSHADER(); |
| PlatformParameters ES2_VULKAN(); |
| PlatformParameters ES2_VULKAN_NULL(); |
| PlatformParameters ES2_VULKAN_SWIFTSHADER(); |
| PlatformParameters ES3_VULKAN(); |
| PlatformParameters ES3_VULKAN_NULL(); |
| PlatformParameters ES3_VULKAN_SWIFTSHADER(); |
| PlatformParameters ES31_VULKAN(); |
| PlatformParameters ES31_VULKAN_NULL(); |
| PlatformParameters ES31_VULKAN_SWIFTSHADER(); |
| |
| PlatformParameters ES1_METAL(); |
| PlatformParameters ES2_METAL(); |
| PlatformParameters ES3_METAL(); |
| |
| PlatformParameters ES2_WGL(); |
| PlatformParameters ES3_WGL(); |
| |
| inline PlatformParameters WithNoVirtualContexts(const PlatformParameters ¶ms) |
| { |
| PlatformParameters withNoVirtualContexts = params; |
| withNoVirtualContexts.eglParameters.contextVirtualization = EGL_FALSE; |
| return withNoVirtualContexts; |
| } |
| |
| inline PlatformParameters WithNoFixture(const PlatformParameters ¶ms) |
| { |
| PlatformParameters withNoFixture = params; |
| withNoFixture.noFixture = true; |
| return withNoFixture; |
| } |
| } // namespace angle |
| |
| #endif // ANGLE_TEST_CONFIGS_H_ |