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