1#ifndef __eglplatform_h_
2#define __eglplatform_h_
18#include <KHR/khrplatform.h>
31#define EGLAPI KHRONOS_APICALL
35#define EGLAPIENTRY KHRONOS_APIENTRY
37#define EGLAPIENTRYP EGLAPIENTRY*
51#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES)
53typedef void *EGLNativeDisplayType;
54typedef void *EGLNativePixmapType;
55typedef void *EGLNativeWindowType;
57#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
58#ifndef WIN32_LEAN_AND_MEAN
59#define WIN32_LEAN_AND_MEAN 1
63typedef HDC EGLNativeDisplayType;
64typedef HBITMAP EGLNativePixmapType;
65typedef HWND EGLNativeWindowType;
67#elif defined(__EMSCRIPTEN__)
69typedef int EGLNativeDisplayType;
70typedef int EGLNativePixmapType;
71typedef int EGLNativeWindowType;
73#elif defined(__WINSCW__) || defined(__SYMBIAN32__)
75typedef int EGLNativeDisplayType;
76typedef void *EGLNativePixmapType;
77typedef void *EGLNativeWindowType;
79#elif defined(WL_EGL_PLATFORM)
81typedef struct wl_display *EGLNativeDisplayType;
82typedef struct wl_egl_pixmap *EGLNativePixmapType;
83typedef struct wl_egl_window *EGLNativeWindowType;
87typedef struct gbm_device *EGLNativeDisplayType;
88typedef struct gbm_bo *EGLNativePixmapType;
89typedef void *EGLNativeWindowType;
91#elif defined(__ANDROID__) || defined(ANDROID)
94struct egl_native_pixmap_t;
96typedef void* EGLNativeDisplayType;
97typedef struct egl_native_pixmap_t* EGLNativePixmapType;
98typedef struct ANativeWindow* EGLNativeWindowType;
100#elif defined(USE_OZONE)
102typedef intptr_t EGLNativeDisplayType;
103typedef intptr_t EGLNativePixmapType;
104typedef intptr_t EGLNativeWindowType;
106#elif defined(USE_X11)
110#include <X11/Xutil.h>
112typedef Display *EGLNativeDisplayType;
113typedef Pixmap EGLNativePixmapType;
114typedef Window EGLNativeWindowType;
116#elif defined(__unix__)
118typedef void *EGLNativeDisplayType;
119typedef khronos_uintptr_t EGLNativePixmapType;
120typedef khronos_uintptr_t EGLNativeWindowType;
122#elif defined(__APPLE__)
124typedef int EGLNativeDisplayType;
125typedef void *EGLNativePixmapType;
126typedef void *EGLNativeWindowType;
128#elif defined(__HAIKU__)
130#include <kernel/image.h>
132typedef void *EGLNativeDisplayType;
133typedef khronos_uintptr_t EGLNativePixmapType;
134typedef khronos_uintptr_t EGLNativeWindowType;
136#elif defined(__Fuchsia__)
138typedef void *EGLNativeDisplayType;
139typedef khronos_uintptr_t EGLNativePixmapType;
140typedef khronos_uintptr_t EGLNativeWindowType;
143#error "Platform not recognized"
147typedef EGLNativeDisplayType NativeDisplayType;
148typedef EGLNativePixmapType NativePixmapType;
149typedef EGLNativeWindowType NativeWindowType;
159typedef khronos_int32_t EGLint;
163#if defined(__cplusplus)
164#define EGL_CAST(type, value) (static_cast<type>(value))
166#define EGL_CAST(type, value) ((type) (value))