OpenGL ES SDK for Android ARM Developer Center
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EGLRuntime.h
Go to the documentation of this file.
1 /* Copyright (c) 2012-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #ifndef EGLRUNTIME_H
22 #define EGLRUNTIME_H
23 
24 #include <EGL/egl.h>
25 #include <EGL/eglext.h>
26 #define EGL_CHECK(x) \
27  x; \
28  { \
29  EGLint eglError = eglGetError(); \
30  if(eglError != EGL_SUCCESS) { \
31  LOGE("eglGetError() = %i (0x%.8x) at %s:%i\n", (signed int)eglError, (unsigned int)eglError, __FILE__, __LINE__); \
32  exit(1); \
33  } \
34  }
35 
36 namespace MaliSDK
37 {
43  class EGLRuntime
44  {
45  private:
53  static EGLConfig findConfig(bool strictMatch);
54 
60  static EGLint configAttributes [];
61 
67  static EGLint contextAttributes [];
68 
74  static EGLint windowAttributes [];
75 
76 
77  public:
88  static void setEGLSamples(EGLint requiredEGLSamples);
89 
94 
100  static EGLDisplay display;
101 
108  static EGLContext context;
109 
113  static EGLConfig config;
114 
121  static EGLSurface surface;
122 
130  static void initializeEGL(OpenGLESVersion requestedAPIVersion);
131 
135  static void terminateEGL(void);
136  };
137 }
138 
139 #endif /* EGLRUNTIME_H */
static EGLint contextAttributes[]
Used to specify the EGL attributes we require from a context.
Definition: EGLRuntime.h:67
static EGLSurface surface
The EGL surface in use.
Definition: EGLRuntime.h:121
static EGLint configAttributes[]
Used to specify the EGL attributes we require from a configuration.
Definition: EGLRuntime.h:60
static void setEGLSamples(EGLint requiredEGLSamples)
Set the value of EGL_SAMPLES (AntiAliasing level) to be requested.
Definition: EGLRuntime.cpp:319
Functions for managing EGL.
Definition: EGLRuntime.h:43
static EGLConfig findConfig(bool strictMatch)
Search for an EGL config with the attributes set in configAttributes.
Definition: EGLRuntime.cpp:85
static EGLDisplay display
The EGL display in use (a platform native window handle).
Definition: EGLRuntime.h:100
static EGLContext context
The EGL context in use.
Definition: EGLRuntime.h:108
static void terminateEGL(void)
Shuts down EGL.
Definition: EGLRuntime.cpp:324
static void initializeEGL(OpenGLESVersion requestedAPIVersion)
Setup EGL environment.
Definition: EGLRuntime.cpp:223
static EGLint windowAttributes[]
Used to specify the EGL attributes we require from a window surface.
Definition: EGLRuntime.h:74
static EGLConfig config
The selected EGL config which matches the required attributes.
Definition: EGLRuntime.h:113
OpenGLESVersion
An enum to define OpenGL ES versions.
Definition: EGLRuntime.h:93