summaryrefslogtreecommitdiff
path: root/include/GLES/egltypes.h
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-05-07 08:47:55 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-05-07 08:47:55 -0600
commitdeceeca18d3a3f18caeac980ad63fafd8bad709c (patch)
tree07b4f6329fc3004ac6de8bc67a94bcc044db0b3d /include/GLES/egltypes.h
parent05370685fedab9608d6b5b5de7042dac4289e522 (diff)
mesa: update/add newer GL ES headers
Diffstat (limited to 'include/GLES/egltypes.h')
-rw-r--r--include/GLES/egltypes.h111
1 files changed, 83 insertions, 28 deletions
diff --git a/include/GLES/egltypes.h b/include/GLES/egltypes.h
index 65cba8d5793..ca1f5a9cb3e 100644
--- a/include/GLES/egltypes.h
+++ b/include/GLES/egltypes.h
@@ -1,45 +1,100 @@
+#ifndef __egl_types_h_
+#define __egl_types_h_
+
/*
-** egltypes.h for Mesa
+** egltypes.h is platform dependent. It defines:
+**
+** - EGL types and resources
+** - Native types
+** - EGL and native handle values
**
-** ONLY egl.h SHOULD INCLUDE THIS FILE!
+** EGL types and resources are to be typedef'ed with appropriate platform
+** dependent resource handle types. EGLint must be an integer of at least
+** 32-bit.
**
-** See comments about egltypes.h in the standard egl.h file.
+** NativeDisplayType, NativeWindowType and NativePixmapType are to be
+** replaced with corresponding types of the native window system in egl.h.
+**
+** EGL and native handle values must match their types.
*/
+#if (defined(WIN32) || defined(_WIN32_WCE))
-#include <sys/types.h>
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+#endif
+// Windows Header Files:
+#include <windows.h>
-/*
-** These opaque EGL types are implemented as unsigned 32-bit integers:
-*/
-typedef u_int32_t EGLDisplay;
-typedef u_int32_t EGLConfig;
-typedef u_int32_t EGLSurface;
-typedef u_int32_t EGLContext;
+typedef HDC NativeDisplayType;
+typedef HWND NativeWindowType;
+typedef HBITMAP NativePixmapType;
+
+#define EGL_DEFAULT_DISPLAY GetDC(0)
+
+#elif defined(__SYMBIAN32__)
-/* EGL_MESA_screen_surface */
-typedef u_int32_t EGLModeMESA;
-typedef u_int32_t EGLScreenMESA;
+#include <e32def.h>
+
+class RWindow;
+class CWindowGc;
+class CFbsBitmap;
+
+typedef CWindowGc * NativeDisplayType;
+typedef RWindow * NativeWindowType;
+typedef CFbsBitmap * NativePixmapType;
+
+#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0)
+
+#elif defined(__gnu_linux__)
+
+typedef void * NativeDisplayType;
+typedef void * NativeWindowType;
+typedef void * NativePixmapType;
+
+#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0)
+
+#else
+
+# error "Unsupported Operating System"
+
+#endif
+
+#ifdef __cplusplus
+
+namespace EGL {
+ class Context;
+ class Config;
+ class Surface;
+}
+
+typedef const EGL::Config * EGLConfig;
+typedef EGL::Surface * EGLSurface;
+typedef EGL::Context * EGLContext;
+
+#else
+
+typedef void * EGLConfig;
+typedef void * EGLSurface;
+typedef void * EGLContext;
+
+#endif
/*
-** Other basic EGL types:
+** Types and resources
*/
-typedef u_int8_t EGLBoolean;
-typedef int32_t EGLint;
-
-typedef void * NativeDisplayType;
-typedef int NativePixmapType;
-typedef int NativeWindowType;
+typedef int EGLBoolean;
+typedef int EGLint;
+typedef void * EGLDisplay;
/*
-** EGL and native handle null values:
+** EGL and native handle values
*/
-#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0)
-#define EGL_NO_CONTEXT ((EGLContext) 0)
-#define EGL_NO_DISPLAY ((EGLDisplay) 0)
-#define EGL_NO_SURFACE ((EGLSurface) 0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
-/* EGL_MESA_screen_surface */
-#define EGL_NO_MODE_MESA ((EGLModeMESA) 0)
+#endif //ndef __egl_types_h_