1 #ifndef __egl_h_ 2 #define __egl_h_ 3 4 /* 5 ** License Applicability. Except to the extent portions of this file are 6 ** made subject to an alternative license as permitted in the SGI Free 7 ** Software License B, Version 1.0 (the "License"), the contents of this 8 ** file are subject only to the provisions of the License. You may not use 9 ** this file except in compliance with the License. You may obtain a copy 10 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 11 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: 12 ** 13 ** http://oss.sgi.com/projects/FreeB 14 ** 15 ** Note that, as provided in the License, the Software is distributed on an 16 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS 17 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND 18 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A 19 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. 20 ** 21 ** Original Code. The Original Code is: OpenGL Sample Implementation, 22 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, 23 ** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc. 24 ** Copyright in any portions created by third parties is as indicated 25 ** elsewhere herein. All Rights Reserved. 26 ** 27 ** Additional Notice Provisions: The application programming interfaces 28 ** established by SGI in conjunction with the Original Code are The 29 ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released 30 ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version 31 ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X 32 ** Window System(R) (Version 1.3), released October 19, 1998. This software 33 ** was created using the OpenGL(R) version 1.2.1 Sample Implementation 34 ** published by SGI, but has not been independently verified as being 35 ** compliant with the OpenGL(R) version 1.2.1 Specification. 36 */ 37 38 #include <GLES/gl.h> 39 #include <GLES/egltypes.h> 40 41 /* 42 ** egltypes.h is platform dependent. It defines: 43 ** 44 ** - EGL types and resources 45 ** - Native types 46 ** - EGL and native handle values 47 ** 48 ** EGL types and resources are to be typedef'ed with appropriate platform 49 ** dependent resource handle types. EGLint must be an integer of at least 50 ** 32-bit. 51 ** 52 ** NativeDisplayType, NativeWindowType and NativePixmapType are to be 53 ** replaced with corresponding types of the native window system in egl.h. 54 ** 55 ** EGL and native handle values must match their types. 56 ** 57 ** Example egltypes.h: 58 */ 59 60 #if 0 61 62 #include <sys/types.h> 63 #include <native_window_system.h> 64 65 /* 66 ** Types and resources 67 */ 68 typedef int EGLBoolean; 69 typedef int32_t EGLint; 70 typedef void *EGLDisplay; 71 typedef void *EGLConfig; 72 typedef void *EGLSurface; 73 typedef void *EGLContext; 74 75 /* 76 ** EGL and native handle values 77 */ 78 #define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0) 79 #define EGL_NO_CONTEXT ((EGLContext)0) 80 #define EGL_NO_DISPLAY ((EGLDisplay)0) 81 #define EGL_NO_SURFACE ((EGLSurface)0) 82 83 #endif 84 85 /* 86 ** Versioning and extensions 87 */ 88 #define EGL_VERSION_1_0 1 89 90 /* 91 ** Boolean 92 */ 93 #define EGL_FALSE 0 94 #define EGL_TRUE 1 95 96 /* 97 ** Errors 98 */ 99 #define EGL_SUCCESS 0x3000 100 #define EGL_NOT_INITIALIZED 0x3001 101 #define EGL_BAD_ACCESS 0x3002 102 #define EGL_BAD_ALLOC 0x3003 103 #define EGL_BAD_ATTRIBUTE 0x3004 104 #define EGL_BAD_CONFIG 0x3005 105 #define EGL_BAD_CONTEXT 0x3006 106 #define EGL_BAD_CURRENT_SURFACE 0x3007 107 #define EGL_BAD_DISPLAY 0x3008 108 #define EGL_BAD_MATCH 0x3009 109 #define EGL_BAD_NATIVE_PIXMAP 0x300A 110 #define EGL_BAD_NATIVE_WINDOW 0x300B 111 #define EGL_BAD_PARAMETER 0x300C 112 #define EGL_BAD_SURFACE 0x300D 113 /* 0x300E - 0x301F reserved for additional errors. */ 114 115 /* 116 ** Config attributes 117 */ 118 #define EGL_BUFFER_SIZE 0x3020 119 #define EGL_ALPHA_SIZE 0x3021 120 #define EGL_BLUE_SIZE 0x3022 121 #define EGL_GREEN_SIZE 0x3023 122 #define EGL_RED_SIZE 0x3024 123 #define EGL_DEPTH_SIZE 0x3025 124 #define EGL_STENCIL_SIZE 0x3026 125 #define EGL_CONFIG_CAVEAT 0x3027 126 #define EGL_CONFIG_ID 0x3028 127 #define EGL_LEVEL 0x3029 128 #define EGL_MAX_PBUFFER_HEIGHT 0x302A 129 #define EGL_MAX_PBUFFER_PIXELS 0x302B 130 #define EGL_MAX_PBUFFER_WIDTH 0x302C 131 #define EGL_NATIVE_RENDERABLE 0x302D 132 #define EGL_NATIVE_VISUAL_ID 0x302E 133 #define EGL_NATIVE_VISUAL_TYPE 0x302F 134 /*#define EGL_PRESERVED_RESOURCES 0x3030*/ 135 #define EGL_SAMPLES 0x3031 136 #define EGL_SAMPLE_BUFFERS 0x3032 137 #define EGL_SURFACE_TYPE 0x3033 138 #define EGL_TRANSPARENT_TYPE 0x3034 139 #define EGL_TRANSPARENT_BLUE_VALUE 0x3035 140 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036 141 #define EGL_TRANSPARENT_RED_VALUE 0x3037 142 143 /* 144 ** Config attribute and value 145 */ 146 #define EGL_NONE 0x3038 147 /* 0x3039 - 0x304F reserved for additional config attributes. */ 148 149 /* 150 ** Config values 151 */ 152 #define EGL_DONT_CARE ((EGLint) -1) 153 #define EGL_PBUFFER_BIT 0x01 154 #define EGL_PIXMAP_BIT 0x02 155 #define EGL_WINDOW_BIT 0x04 156 #define EGL_SLOW_CONFIG 0x3050 157 #define EGL_NON_CONFORMANT_CONFIG 0x3051 158 #define EGL_TRANSPARENT_RGB 0x3052 159 160 /* 161 ** String names 162 */ 163 #define EGL_VENDOR 0x3053 164 #define EGL_VERSION 0x3054 165 #define EGL_EXTENSIONS 0x3055 166 167 /* 168 ** Surface attributes 169 */ 170 #define EGL_HEIGHT 0x3056 171 #define EGL_WIDTH 0x3057 172 #define EGL_LARGEST_PBUFFER 0x3058 173 174 /* 175 ** Current surfaces 176 */ 177 #define EGL_DRAW 0x3059 178 #define EGL_READ 0x305A 179 180 /* 181 ** Engines 182 */ 183 #define EGL_CORE_NATIVE_ENGINE 0x305B 184 185 /* 0x305C-0x3FFFF reserved for future use */ 186 187 /* 188 ** Functions 189 */ 190 #ifdef __cplusplus 191 extern "C" { 192 #endif 193 194 GLAPI EGLint APIENTRY eglGetError (void); 195 196 GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display); 197 GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); 198 GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy); 199 GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name); 200 GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))(); 201 202 GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); 203 GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); 204 GLAPI EGLBoolean APIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); 205 206 GLAPI EGLSurface APIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list); 207 GLAPI EGLSurface APIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list); 208 GLAPI EGLSurface APIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); 209 GLAPI EGLBoolean APIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); 210 GLAPI EGLBoolean APIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); 211 212 GLAPI EGLContext APIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list); 213 GLAPI EGLBoolean APIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); 214 GLAPI EGLBoolean APIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); 215 GLAPI EGLContext APIENTRY eglGetCurrentContext (void); 216 GLAPI EGLSurface APIENTRY eglGetCurrentSurface (EGLint readdraw); 217 GLAPI EGLDisplay APIENTRY eglGetCurrentDisplay (void); 218 GLAPI EGLBoolean APIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); 219 220 GLAPI EGLBoolean APIENTRY eglWaitGL (void); 221 GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine); 222 GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw); 223 GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target); 224 225 #ifdef __cplusplus 226 } 227 #endif 228 229 #endif /* ___egl_h_ */ 230