1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 
5 #ifndef GLTYPES_H_
6 #define GLTYPES_H_
7 
8 #include <stddef.h>
9 #include <stdint.h>
10 
11 #ifndef GLAPIENTRY
12 #ifdef WIN32
13 #include <windef.h>
14 #define GLAPIENTRY APIENTRY
15 #define GLAPI
16 #else
17 #define GLAPIENTRY
18 #define GLAPI
19 #endif
20 #endif
21 
22 typedef uint8_t realGLboolean;
23 
24 #if !defined(__gltypes_h_) && !defined(__gl_h_)
25 #define __gltypes_h_
26 #define __gl_h_
27 
28 typedef uint32_t GLenum;
29 typedef uint32_t GLbitfield;
30 typedef uint32_t GLuint;
31 typedef int32_t GLint;
32 typedef int32_t GLsizei;
33 typedef int8_t GLbyte;
34 typedef int16_t GLshort;
35 typedef uint8_t GLubyte;
36 typedef uint16_t GLushort;
37 typedef float GLfloat;
38 typedef float GLclampf;
39 #ifndef GLdouble_defined
40 typedef double GLdouble;
41 #endif
42 typedef double GLclampd;
43 typedef void GLvoid;
44 
45 typedef char GLchar;
46 #ifndef __gl2_h_
47 #ifdef _WIN64
48 typedef signed long long int GLintptr;
49 typedef signed long long int GLsizeiptr;
50 #else
51 typedef signed long int GLintptr;
52 typedef signed long int GLsizeiptr;
53 #endif
54 #endif
55 
56 #endif /* #if !defined(__gltypes_h_) && !defined(__gl_h_) */
57 
58 #include <stdint.h>
59 
60 // ARB_sync
61 typedef struct __GLsync* GLsync;
62 typedef int64_t GLint64;
63 typedef uint64_t GLuint64;
64 
65 // OES_EGL_image (GLES)
66 typedef void* GLeglImage;
67 
68 // KHR_debug
69 typedef void(GLAPIENTRY* GLDEBUGPROC)(GLenum source, GLenum type, GLuint id,
70                                       GLenum severity, GLsizei length,
71                                       const GLchar* message,
72                                       const GLvoid* userParam);
73 
74 // EGL types
75 typedef void* EGLImage;
76 typedef int EGLint;
77 typedef unsigned int EGLBoolean;
78 typedef unsigned int EGLenum;
79 typedef intptr_t EGLAttrib;
80 typedef void* EGLConfig;
81 typedef void* EGLContext;
82 typedef void* EGLDisplay;
83 typedef void* EGLDeviceEXT;
84 typedef void* EGLSurface;
85 typedef void* EGLClientBuffer;
86 typedef void* EGLCastToRelevantPtr;
87 typedef void* EGLImage;
88 typedef void* EGLSync;
89 typedef void* EGLStreamKHR;
90 typedef uint64_t EGLTime;
91 
92 #define EGL_NO_CONTEXT ((EGLContext)0)
93 #define EGL_NO_DISPLAY ((EGLDisplay)0)
94 #define EGL_NO_SURFACE ((EGLSurface)0)
95 #define EGL_NO_CONFIG ((EGLConfig) nullptr)
96 #define EGL_NO_SYNC ((EGLSync)0)
97 #define EGL_NO_IMAGE ((EGLImage)0)
98 
99 #ifdef XP_WIN
100 #ifndef WIN32_LEAN_AND_MEAN
101 #define WIN32_LEAN_AND_MEAN 1
102 #endif
103 
104 #include <windef.h>
105 
106 typedef HDC EGLNativeDisplayType;
107 typedef HBITMAP EGLNativePixmapType;
108 typedef HWND EGLNativeWindowType;
109 #else
110 typedef void* EGLNativeDisplayType;
111 typedef void* EGLNativePixmapType;
112 typedef void* EGLNativeWindowType;
113 #endif
114 
115 #endif  // GLTYPES_H_
116