Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | added glshim (OpenGL 1.1 for 3dcanvas, not yet ready) |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
980482b54b65f6d89de1f2b2ccfadbb6 |
User & Date: | chw 2014-11-29 12:05:49.232 |
Context
2014-12-01
| ||
10:04 | updated Android support library check-in: 66e228dee0 user: chw tags: trunk | |
2014-11-29
| ||
12:05 | added glshim (OpenGL 1.1 for 3dcanvas, not yet ready) check-in: 980482b54b user: chw tags: trunk | |
2014-11-25
| ||
07:40 | fixed missing Tcl/Tk 8.6.3 pieces check-in: 2935a7632d user: chw tags: trunk | |
Changes
Changes to jni/3dcanvas/Android.mk-notyet.
︙ | ︙ | |||
88 89 90 91 92 93 94 | -DCAN3D_SDL=1 \ -O2 LOCAL_STATIC_LIBRARIES := GL_static LOCAL_SHARED_LIBRARIES := libtcl libtk | | | 88 89 90 91 92 93 94 95 96 97 | -DCAN3D_SDL=1 \ -O2 LOCAL_STATIC_LIBRARIES := GL_static LOCAL_SHARED_LIBRARIES := libtcl libtk LOCAL_LDLIBS := -ldl -llog include $(BUILD_SHARED_LIBRARY) |
Added jni/glshim/Android.mk-notyet.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | LOCAL_PATH := $(call my-dir) ########################### # # GL static library # ########################### include $(CLEAR_VARS) LOCAL_MODULE := GL_static LOCAL_MODULE_FILENAME := libGL LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \ $(LOCAL_PATH)/src/util \ $(LOCAL_PATH)/src/util/vectorial LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) LOCAL_SRC_FILES := \ src/gl/array.c \ src/gl/blend.c \ src/gl/block.c \ src/gl/clear.c \ src/gl/depth.c \ src/gl/eval.c \ src/gl/get.c \ src/gl/gl.c \ src/gl/light.c \ src/gl/line.c \ src/gl/list.c \ src/gl/loader.c \ src/gl/matrix.c \ src/gl/pixel.c \ src/gl/raster.c \ src/gl/render.c \ src/gl/stack.c \ src/gl/texgen.c \ src/gl/text.c \ src/gl/texture.c \ src/gl/wrap/gl.c \ src/gl/wrap/gles.c \ src/gl/wrap/gles2.c \ src/gl/wrap/glstub.c \ src/util/gl_str.c \ src/util/tack.c \ src/util/math/eval.c LOCAL_CFLAGS += -O2 -std=c99 -DGL_EXPORTS -D_THREAD_SAFE=1 LOCAL_LDLIBS := -ldl -llog include $(BUILD_STATIC_LIBRARY) |
Added jni/glshim/CMakeLists.txt.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | cmake_minimum_required(VERSION 2.6) project(glshim) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) # Raspberry PI if(BCMHOST) include_directories(/opt/vc/include /opt/vc/include/interface/vcos/pthreads /opt/vc/include/interface/vmcs_host/linux) link_directories(/opt/vc/lib) add_definitions(-DBCMHOST -D_GNU_SOURCE) endif() link_directories(${CMAKE_BINARY_DIR}/lib) add_definitions(-O2) include(flags.cmake) include_directories(include) add_subdirectory(src) |
Added jni/glshim/LICENSE.
> > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Copyright (c) 2013 Ryan Hileman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Added jni/glshim/README.md.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | glshim ==== This is a shim providing OpenGL 1.x functionality to OpenGL ES accelerated cards. ---- Compiling ---- cmake .; make GL *or for the Raspberry Pi* cmake . -DBCMHOST=1; make GL ---- GLU ---- You probably want the glu branch from https://github.com/lunixbochs/glues git clone git@github.com:lunixbochs/glues.git; git checkout glu; cmake .; make ---- Installation ---- Put lib/libGL.so.1 in your `LD_LIBRARY_PATH`. If you need GLU, build libGLU.so.1 from the glues repo and do likewise. |
Added jni/glshim/flags.cmake.
> > > > > > | 1 2 3 4 5 6 | add_definitions(-g -funwind-tables -ffast-math) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") add_definitions(-fsingle-precision-constant -mfpu=neon -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8) endif() |
Added jni/glshim/include/EGL/egl.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 | /* -*- mode: c; tab-width: 8; -*- */ /* vi: set sw=4 ts=8: */ /* Reference version of egl.h for EGL 1.4. * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ */ /* ** Copyright (c) 2007-2009 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ #ifndef __egl_h_ #define __egl_h_ /* All platform-dependent types and macro boilerplate (such as EGLAPI * and EGLAPIENTRY) should go in eglplatform.h. */ #include <EGL/eglplatform.h> #ifdef __cplusplus extern "C" { #endif /* EGL Types */ /* EGLint is defined in eglplatform.h */ typedef unsigned int EGLBoolean; typedef unsigned int EGLenum; typedef void *EGLConfig; typedef void *EGLContext; typedef void *EGLDisplay; typedef void *EGLSurface; typedef void *EGLClientBuffer; /* EGL Versioning */ #define EGL_VERSION_1_0 1 #define EGL_VERSION_1_1 1 #define EGL_VERSION_1_2 1 #define EGL_VERSION_1_3 1 #define EGL_VERSION_1_4 1 /* EGL Enumerants. Bitmasks and other exceptional cases aside, most * enums are assigned unique values starting at 0x3000. */ /* EGL aliases */ #define EGL_FALSE 0 #define EGL_TRUE 1 /* Out-of-band handle values */ #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) #define EGL_NO_CONTEXT ((EGLContext)0) #define EGL_NO_DISPLAY ((EGLDisplay)0) #define EGL_NO_SURFACE ((EGLSurface)0) /* Out-of-band attribute value */ #define EGL_DONT_CARE ((EGLint)-1) /* Errors / GetError return values */ #define EGL_SUCCESS 0x3000 #define EGL_NOT_INITIALIZED 0x3001 #define EGL_BAD_ACCESS 0x3002 #define EGL_BAD_ALLOC 0x3003 #define EGL_BAD_ATTRIBUTE 0x3004 #define EGL_BAD_CONFIG 0x3005 #define EGL_BAD_CONTEXT 0x3006 #define EGL_BAD_CURRENT_SURFACE 0x3007 #define EGL_BAD_DISPLAY 0x3008 #define EGL_BAD_MATCH 0x3009 #define EGL_BAD_NATIVE_PIXMAP 0x300A #define EGL_BAD_NATIVE_WINDOW 0x300B #define EGL_BAD_PARAMETER 0x300C #define EGL_BAD_SURFACE 0x300D #define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ /* Reserved 0x300F-0x301F for additional errors */ /* Config attributes */ #define EGL_BUFFER_SIZE 0x3020 #define EGL_ALPHA_SIZE 0x3021 #define EGL_BLUE_SIZE 0x3022 #define EGL_GREEN_SIZE 0x3023 #define EGL_RED_SIZE 0x3024 #define EGL_DEPTH_SIZE 0x3025 #define EGL_STENCIL_SIZE 0x3026 #define EGL_CONFIG_CAVEAT 0x3027 #define EGL_CONFIG_ID 0x3028 #define EGL_LEVEL 0x3029 #define EGL_MAX_PBUFFER_HEIGHT 0x302A #define EGL_MAX_PBUFFER_PIXELS 0x302B #define EGL_MAX_PBUFFER_WIDTH 0x302C #define EGL_NATIVE_RENDERABLE 0x302D #define EGL_NATIVE_VISUAL_ID 0x302E #define EGL_NATIVE_VISUAL_TYPE 0x302F #define EGL_SAMPLES 0x3031 #define EGL_SAMPLE_BUFFERS 0x3032 #define EGL_SURFACE_TYPE 0x3033 #define EGL_TRANSPARENT_TYPE 0x3034 #define EGL_TRANSPARENT_BLUE_VALUE 0x3035 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036 #define EGL_TRANSPARENT_RED_VALUE 0x3037 #define EGL_NONE 0x3038 /* Attrib list terminator */ #define EGL_BIND_TO_TEXTURE_RGB 0x3039 #define EGL_BIND_TO_TEXTURE_RGBA 0x303A #define EGL_MIN_SWAP_INTERVAL 0x303B #define EGL_MAX_SWAP_INTERVAL 0x303C #define EGL_LUMINANCE_SIZE 0x303D #define EGL_ALPHA_MASK_SIZE 0x303E #define EGL_COLOR_BUFFER_TYPE 0x303F #define EGL_RENDERABLE_TYPE 0x3040 #define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ #define EGL_CONFORMANT 0x3042 /* Reserved 0x3041-0x304F for additional config attributes */ /* Config attribute values */ #define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ #define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ #define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ #define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ #define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ /* More config attribute values, for EGL_TEXTURE_FORMAT */ #define EGL_NO_TEXTURE 0x305C #define EGL_TEXTURE_RGB 0x305D #define EGL_TEXTURE_RGBA 0x305E #define EGL_TEXTURE_2D 0x305F /* Config attribute mask bits */ #define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ #define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ #define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ #define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ /* QueryString targets */ #define EGL_VENDOR 0x3053 #define EGL_VERSION 0x3054 #define EGL_EXTENSIONS 0x3055 #define EGL_CLIENT_APIS 0x308D /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ #define EGL_HEIGHT 0x3056 #define EGL_WIDTH 0x3057 #define EGL_LARGEST_PBUFFER 0x3058 #define EGL_TEXTURE_FORMAT 0x3080 #define EGL_TEXTURE_TARGET 0x3081 #define EGL_MIPMAP_TEXTURE 0x3082 #define EGL_MIPMAP_LEVEL 0x3083 #define EGL_RENDER_BUFFER 0x3086 #define EGL_VG_COLORSPACE 0x3087 #define EGL_VG_ALPHA_FORMAT 0x3088 #define EGL_HORIZONTAL_RESOLUTION 0x3090 #define EGL_VERTICAL_RESOLUTION 0x3091 #define EGL_PIXEL_ASPECT_RATIO 0x3092 #define EGL_SWAP_BEHAVIOR 0x3093 #define EGL_MULTISAMPLE_RESOLVE 0x3099 /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ #define EGL_BACK_BUFFER 0x3084 #define EGL_SINGLE_BUFFER 0x3085 /* OpenVG color spaces */ #define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ #define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ /* OpenVG alpha formats */ #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ #define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ /* Constant scale factor by which fractional display resolutions & * aspect ratio are scaled when queried as integer values. */ #define EGL_DISPLAY_SCALING 10000 /* Unknown display resolution/aspect ratio */ #define EGL_UNKNOWN ((EGLint)-1) /* Back buffer swap behaviors */ #define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ #define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ /* CreatePbufferFromClientBuffer buffer types */ #define EGL_OPENVG_IMAGE 0x3096 /* QueryContext targets */ #define EGL_CONTEXT_CLIENT_TYPE 0x3097 /* CreateContext attributes */ #define EGL_CONTEXT_CLIENT_VERSION 0x3098 /* Multisample resolution behaviors */ #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ /* BindAPI/QueryAPI targets */ #define EGL_OPENGL_ES_API 0x30A0 #define EGL_OPENVG_API 0x30A1 #define EGL_OPENGL_API 0x30A2 /* GetCurrentSurface targets */ #define EGL_DRAW 0x3059 #define EGL_READ 0x305A /* WaitNative engines */ #define EGL_CORE_NATIVE_ENGINE 0x305B /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ #define EGL_COLORSPACE EGL_VG_COLORSPACE #define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT #define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB #define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR #define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE #define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE /* EGL extensions must request enum blocks from the Khronos * API Registrar, who maintains the enumerant registry. Submit * a bug in Khronos Bugzilla against task "Registry". */ /* EGL Functions */ EGLAPI EGLint EGLAPIENTRY eglGetError(void); EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); /* This is a generic function pointer type, whose name indicates it must * be cast to the proper type *and calling convention* before use. */ typedef void (*__eglMustCastToProperFunctionPointerType)(void); /* Now, define eglGetProcAddress using the generic function ptr. type */ EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname); #ifdef __cplusplus } #endif #endif /* __egl_h_ */ |
Added jni/glshim/include/EGL/eglext.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 | #ifndef __eglext_h_ #define __eglext_h_ #ifdef __cplusplus extern "C" { #endif /* ** Copyright (c) 2007-2012 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ #include <EGL/eglplatform.h> /*************************************************************/ /* Header file version number */ /* Current version at http://www.khronos.org/registry/egl/ */ /* $Revision: 19571 $ on $Date: 2012-10-31 10:10:33 -0700 (Wed, 31 Oct 2012) $ */ #define EGL_EGLEXT_VERSION 14 #ifndef EGL_KHR_config_attribs #define EGL_KHR_config_attribs 1 #define EGL_CONFORMANT_KHR 0x3042 /* EGLConfig attribute */ #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 /* EGL_SURFACE_TYPE bitfield */ #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 /* EGL_SURFACE_TYPE bitfield */ #endif #ifndef EGL_KHR_lock_surface #define EGL_KHR_lock_surface 1 #define EGL_READ_SURFACE_BIT_KHR 0x0001 /* EGL_LOCK_USAGE_HINT_KHR bitfield */ #define EGL_WRITE_SURFACE_BIT_KHR 0x0002 /* EGL_LOCK_USAGE_HINT_KHR bitfield */ #define EGL_LOCK_SURFACE_BIT_KHR 0x0080 /* EGL_SURFACE_TYPE bitfield */ #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 /* EGL_SURFACE_TYPE bitfield */ #define EGL_MATCH_FORMAT_KHR 0x3043 /* EGLConfig attribute */ #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 /* EGL_MATCH_FORMAT_KHR value */ #define EGL_FORMAT_RGB_565_KHR 0x30C1 /* EGL_MATCH_FORMAT_KHR value */ #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 /* EGL_MATCH_FORMAT_KHR value */ #define EGL_FORMAT_RGBA_8888_KHR 0x30C3 /* EGL_MATCH_FORMAT_KHR value */ #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 /* eglLockSurfaceKHR attribute */ #define EGL_LOCK_USAGE_HINT_KHR 0x30C5 /* eglLockSurfaceKHR attribute */ #define EGL_BITMAP_POINTER_KHR 0x30C6 /* eglQuerySurface attribute */ #define EGL_BITMAP_PITCH_KHR 0x30C7 /* eglQuerySurface attribute */ #define EGL_BITMAP_ORIGIN_KHR 0x30C8 /* eglQuerySurface attribute */ #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 /* eglQuerySurface attribute */ #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA /* eglQuerySurface attribute */ #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB /* eglQuerySurface attribute */ #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC /* eglQuerySurface attribute */ #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD /* eglQuerySurface attribute */ #define EGL_LOWER_LEFT_KHR 0x30CE /* EGL_BITMAP_ORIGIN_KHR value */ #define EGL_UPPER_LEFT_KHR 0x30CF /* EGL_BITMAP_ORIGIN_KHR value */ #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface); #endif #ifndef EGL_KHR_image #define EGL_KHR_image 1 #define EGL_NATIVE_PIXMAP_KHR 0x30B0 /* eglCreateImageKHR target */ typedef void *EGLImageKHR; #define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); #endif #ifndef EGL_KHR_vg_parent_image #define EGL_KHR_vg_parent_image 1 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ #endif #ifndef EGL_KHR_gl_texture_2D_image #define EGL_KHR_gl_texture_2D_image 1 #define EGL_GL_TEXTURE_2D_KHR 0x30B1 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC /* eglCreateImageKHR attribute */ #endif #ifndef EGL_KHR_gl_texture_cubemap_image #define EGL_KHR_gl_texture_cubemap_image 1 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 /* eglCreateImageKHR target */ #endif #ifndef EGL_KHR_gl_texture_3D_image #define EGL_KHR_gl_texture_3D_image 1 #define EGL_GL_TEXTURE_3D_KHR 0x30B2 /* eglCreateImageKHR target */ #define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD /* eglCreateImageKHR attribute */ #endif #ifndef EGL_KHR_gl_renderbuffer_image #define EGL_KHR_gl_renderbuffer_image 1 #define EGL_GL_RENDERBUFFER_KHR 0x30B9 /* eglCreateImageKHR target */ #endif #if KHRONOS_SUPPORT_INT64 /* EGLTimeKHR requires 64-bit uint support */ #ifndef EGL_KHR_reusable_sync #define EGL_KHR_reusable_sync 1 typedef void* EGLSyncKHR; typedef khronos_utime_nanoseconds_t EGLTimeKHR; #define EGL_SYNC_STATUS_KHR 0x30F1 #define EGL_SIGNALED_KHR 0x30F2 #define EGL_UNSIGNALED_KHR 0x30F3 #define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 #define EGL_CONDITION_SATISFIED_KHR 0x30F6 #define EGL_SYNC_TYPE_KHR 0x30F7 #define EGL_SYNC_REUSABLE_KHR 0x30FA #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 /* eglClientWaitSyncKHR <flags> bitfield */ #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull #define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync); EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); #endif #endif #ifndef EGL_KHR_image_base #define EGL_KHR_image_base 1 /* Most interfaces defined by EGL_KHR_image_pixmap above */ #define EGL_IMAGE_PRESERVED_KHR 0x30D2 /* eglCreateImageKHR attribute */ #endif #ifndef EGL_KHR_image_pixmap #define EGL_KHR_image_pixmap 1 /* Interfaces defined by EGL_KHR_image above */ #endif #ifndef EGL_IMG_context_priority #define EGL_IMG_context_priority 1 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 #define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 #define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 #endif #ifndef EGL_KHR_lock_surface2 #define EGL_KHR_lock_surface2 1 #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 #endif #ifndef EGL_NV_coverage_sample #define EGL_NV_coverage_sample 1 #define EGL_COVERAGE_BUFFERS_NV 0x30E0 #define EGL_COVERAGE_SAMPLES_NV 0x30E1 #endif #ifndef EGL_NV_depth_nonlinear #define EGL_NV_depth_nonlinear 1 #define EGL_DEPTH_ENCODING_NV 0x30E2 #define EGL_DEPTH_ENCODING_NONE_NV 0 #define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 #endif #if KHRONOS_SUPPORT_INT64 /* EGLTimeNV requires 64-bit uint support */ #ifndef EGL_NV_sync #define EGL_NV_sync 1 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 #define EGL_SYNC_STATUS_NV 0x30E7 #define EGL_SIGNALED_NV 0x30E8 #define EGL_UNSIGNALED_NV 0x30E9 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 #define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull #define EGL_ALREADY_SIGNALED_NV 0x30EA #define EGL_TIMEOUT_EXPIRED_NV 0x30EB #define EGL_CONDITION_SATISFIED_NV 0x30EC #define EGL_SYNC_TYPE_NV 0x30ED #define EGL_SYNC_CONDITION_NV 0x30EE #define EGL_SYNC_FENCE_NV 0x30EF #define EGL_NO_SYNC_NV ((EGLSyncNV)0) typedef void* EGLSyncNV; typedef khronos_utime_nanoseconds_t EGLTimeNV; #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); #endif #endif #if KHRONOS_SUPPORT_INT64 /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */ #ifndef EGL_KHR_fence_sync #define EGL_KHR_fence_sync 1 /* Reuses most tokens and entry points from EGL_KHR_reusable_sync */ #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 #define EGL_SYNC_CONDITION_KHR 0x30F8 #define EGL_SYNC_FENCE_KHR 0x30F9 #endif #endif #ifndef EGL_HI_clientpixmap #define EGL_HI_clientpixmap 1 /* Surface Attribute */ #define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 /* * Structure representing a client pixmap * (pixmap's data is in client-space memory). */ struct EGLClientPixmapHI { void* pData; EGLint iWidth; EGLint iHeight; EGLint iStride; }; #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap); #endif /* EGL_HI_clientpixmap */ #ifndef EGL_HI_colorformats #define EGL_HI_colorformats 1 /* Config Attribute */ #define EGL_COLOR_FORMAT_HI 0x8F70 /* Color Formats */ #define EGL_COLOR_RGB_HI 0x8F71 #define EGL_COLOR_RGBA_HI 0x8F72 #define EGL_COLOR_ARGB_HI 0x8F73 #endif /* EGL_HI_colorformats */ #ifndef EGL_MESA_drm_image #define EGL_MESA_drm_image 1 #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 /* CreateDRMImageMESA attribute */ #define EGL_DRM_BUFFER_USE_MESA 0x31D1 /* CreateDRMImageMESA attribute */ #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 /* EGL_IMAGE_FORMAT_MESA attribute value */ #define EGL_DRM_BUFFER_MESA 0x31D3 /* eglCreateImageKHR target */ #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 /* EGL_DRM_BUFFER_USE_MESA bits */ #define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 /* EGL_DRM_BUFFER_USE_MESA bits */ #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); #endif #ifndef EGL_NV_post_sub_buffer #define EGL_NV_post_sub_buffer 1 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); #endif #ifndef EGL_ANGLE_query_surface_pointer #define EGL_ANGLE_query_surface_pointer 1 #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); #endif typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); #endif #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 #endif #ifndef EGL_NV_coverage_sample_resolve #define EGL_NV_coverage_sample_resolve 1 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 #endif #if KHRONOS_SUPPORT_INT64 /* EGLuint64NV requires 64-bit uint support */ #ifndef EGL_NV_system_time #define EGL_NV_system_time 1 typedef khronos_utime_nanoseconds_t EGLuint64NV; #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void); EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); #endif #endif #if KHRONOS_SUPPORT_INT64 /* EGLuint64KHR requires 64-bit uint support */ #ifndef EGL_KHR_stream #define EGL_KHR_stream 1 typedef void* EGLStreamKHR; typedef khronos_uint64_t EGLuint64KHR; #define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 #define EGL_PRODUCER_FRAME_KHR 0x3212 #define EGL_CONSUMER_FRAME_KHR 0x3213 #define EGL_STREAM_STATE_KHR 0x3214 #define EGL_STREAM_STATE_CREATED_KHR 0x3215 #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 #define EGL_STREAM_STATE_EMPTY_KHR 0x3217 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A #define EGL_BAD_STREAM_KHR 0x321B #define EGL_BAD_STATE_KHR 0x321C #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list); EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream); EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint *attrib_list); typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); #endif #endif #ifdef EGL_KHR_stream /* Requires KHR_stream extension */ #ifndef EGL_KHR_stream_consumer_gltexture #define EGL_KHR_stream_consumer_gltexture 1 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream); EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream); EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); #endif #endif #ifdef EGL_KHR_stream /* Requires KHR_stream extension */ #ifndef EGL_KHR_stream_producer_eglsurface #define EGL_KHR_stream_producer_eglsurface 1 #define EGL_STREAM_BIT_KHR 0x0800 #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); #endif #endif #ifdef EGL_KHR_stream /* Requires KHR_stream extension */ #ifndef EGL_KHR_stream_producer_aldatalocator #define EGL_KHR_stream_producer_aldatalocator 1 #endif #endif #ifdef EGL_KHR_stream /* Requires KHR_stream extension */ #ifndef EGL_KHR_stream_fifo #define EGL_KHR_stream_fifo 1 /* reuse EGLTimeKHR */ #define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC #define EGL_STREAM_TIME_NOW_KHR 0x31FD #define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE #define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); #endif #endif #ifndef EGL_EXT_create_context_robustness #define EGL_EXT_create_context_robustness 1 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 #define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE #define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF #endif #ifndef EGL_ANGLE_d3d_share_handle_client_buffer #define EGL_ANGLE_d3d_share_handle_client_buffer 1 /* reuse EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE */ #endif #ifndef EGL_KHR_create_context #define EGL_KHR_create_context 1 #define EGL_CONTEXT_MAJOR_VERSION_KHR EGL_CONTEXT_CLIENT_VERSION #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB #define EGL_CONTEXT_FLAGS_KHR 0x30FC #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 #define EGL_OPENGL_ES3_BIT_KHR 0x00000040 #endif #ifndef EGL_KHR_surfaceless_context #define EGL_KHR_surfaceless_context 1 /* No tokens/entry points, just relaxes an error condition */ #endif #ifdef EGL_KHR_stream /* Requires KHR_stream extension */ #ifndef EGL_KHR_stream_cross_process_fd #define EGL_KHR_stream_cross_process_fd 1 typedef int EGLNativeFileDescriptorKHR; #define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream); EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream); typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); #endif #endif #ifndef EGL_EXT_multiview_window #define EGL_EXT_multiview_window 1 #define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 #endif #ifndef EGL_KHR_wait_sync #define EGL_KHR_wait_sync 1 #ifdef EGL_EGLEXT_PROTOTYPES EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); #endif /* EGL_EGLEXT_PROTOTYPES */ typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); #endif #ifdef __cplusplus } #endif #endif |
Added jni/glshim/include/EGL/eglplatform.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | #ifndef __eglplatform_h_ #define __eglplatform_h_ /* ** Copyright (c) 2007-2009 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ /* Platform-specific types and definitions for egl.h * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ * * Adopters may modify khrplatform.h and this file to suit their platform. * You are encouraged to submit all modifications to the Khronos group so that * they can be included in future versions of this file. Please submit changes * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) * by filing a bug against product "EGL" component "Registry". */ #include <KHR/khrplatform.h> /* Macros used in EGL function prototype declarations. * * EGL functions should be prototyped as: * * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); * * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h */ #ifndef EGLAPI #define EGLAPI KHRONOS_APICALL #endif #ifndef EGLAPIENTRY #define EGLAPIENTRY KHRONOS_APIENTRY #endif #define EGLAPIENTRYP EGLAPIENTRY* /* The types NativeDisplayType, NativeWindowType, and NativePixmapType * are aliases of window-system-dependent types, such as X Display * or * Windows Device Context. They must be defined in platform-specific * code below. The EGL-prefixed versions of Native*Type are the same * types, renamed in EGL 1.3 so all types in the API start with "EGL". * * Khronos STRONGLY RECOMMENDS that you use the default definitions * provided below, since these changes affect both binary and source * portability of applications using EGL running on different EGL * implementations. */ #if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 #endif #include <windows.h> typedef HDC EGLNativeDisplayType; typedef HBITMAP EGLNativePixmapType; typedef HWND EGLNativeWindowType; #elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ typedef int EGLNativeDisplayType; typedef void *EGLNativeWindowType; typedef void *EGLNativePixmapType; #elif defined(__unix__) && !defined(ANDROID) /* X11 (tentative) */ #include <X11/Xlib.h> #include <X11/Xutil.h> typedef Display *EGLNativeDisplayType; typedef Pixmap EGLNativePixmapType; typedef Window EGLNativeWindowType; #elif defined(ANDROID) typedef int EGLNativeDisplayType; typedef void *EGLNativeWindowType; typedef void *EGLNativePixmapType; #else #error "Platform not recognized" #endif /* EGL 1.2 types, renamed for consistency in EGL 1.3 */ typedef EGLNativeDisplayType NativeDisplayType; typedef EGLNativePixmapType NativePixmapType; typedef EGLNativeWindowType NativeWindowType; /* Define EGLint. This must be a signed integral type large enough to contain * all legal attribute names and values passed into and out of EGL, whether * their type is boolean, bitmask, enumerant (symbolic constant), integer, * handle, or other. While in general a 32-bit integer will suffice, if * handles are 64 bit types, then EGLint should be defined as a signed 64-bit * integer type. */ typedef khronos_int32_t EGLint; #endif /* __eglplatform_h */ |
Added jni/glshim/include/GL/gl.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 | /* * Mesa 3-D graphics library * Version: 7.6 * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __gl_h_ #define __gl_h_ #if defined(USE_MGL_NAMESPACE) #include "gl_mangle.h" #endif /********************************************************************** * Begin system-specific stuff. Do not do any of this when building * for SciTech SNAP, as this is all done before this header file is * included. */ #if !defined(__SCITECH_SNAP__) #if defined(__BEOS__) #include <stdlib.h> /* to get some BeOS-isms */ #endif #if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) #define OPENSTEP #endif #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) #define __WIN32__ #endif #if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) # if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) # elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ # define GLAPI __declspec(dllimport) # else /* for use with static link lib build of Win32 edition only */ # define GLAPI extern # endif /* _STATIC_MESA support */ # if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ # define GLAPIENTRY # else # define GLAPIENTRY __stdcall # endif #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ # define GLAPI extern # define GLAPIENTRY __stdcall #elif defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) # define GLAPI __attribute__((visibility("default"))) # define GLAPIENTRY #endif /* WIN32 && !CYGWIN */ #if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) # define PRAGMA_EXPORT_SUPPORTED 1 #endif /* * WINDOWS: Include windows.h here to define APIENTRY. * It is also useful when applications include this file by * including only glut.h, since glut.h depends on windows.h. * Applications needing to include windows.h with parms other * than "WIN32_LEAN_AND_MEAN" may include windows.h before * glut.h or gl.h. */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 #endif #include <windows.h> #endif #if defined(_WIN32) && !defined(_WINGDI_) && !defined(_WIN32_WCE) \ && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) \ && !defined(__CYGWIN__) || defined(__MINGW32__) #include <GL/mesa_wgl.h> #endif #if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED #pragma import on #endif #ifndef GLAPI #define GLAPI extern #endif #ifndef GLAPIENTRY #define GLAPIENTRY #endif #ifndef APIENTRY #define APIENTRY GLAPIENTRY #endif /* "P" suffix to be used for a pointer to a function */ #ifndef APIENTRYP #define APIENTRYP APIENTRY * #endif #ifndef GLAPIENTRYP #define GLAPIENTRYP GLAPIENTRY * #endif #ifdef CENTERLINE_CLPP #define signed #endif #if defined(PRAGMA_EXPORT_SUPPORTED) #pragma export on #endif #endif /* !__SCITECH_SNAP__ */ /* * End system-specific stuff. **********************************************************************/ #ifdef __cplusplus extern "C" { #endif #define GL_VERSION_1_1 1 #define GL_VERSION_1_2 1 #define GL_VERSION_1_3 1 #define GL_ARB_imaging 1 /* * Datatypes */ typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef void GLvoid; typedef signed char GLbyte; /* 1-byte signed */ typedef short GLshort; /* 2-byte signed */ typedef int GLint; /* 4-byte signed */ typedef unsigned char GLubyte; /* 1-byte unsigned */ typedef unsigned short GLushort; /* 2-byte unsigned */ typedef unsigned int GLuint; /* 4-byte unsigned */ typedef int GLsizei; /* 4-byte signed */ typedef float GLfloat; /* single precision float */ typedef float GLclampf; /* single precision float in [0,1] */ typedef double GLdouble; /* double precision float */ typedef double GLclampd; /* double precision float in [0,1] */ /* * Constants */ /* Boolean values */ #define GL_FALSE 0x0 #define GL_TRUE 0x1 /* Data types */ #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_2_BYTES 0x1407 #define GL_3_BYTES 0x1408 #define GL_4_BYTES 0x1409 #define GL_DOUBLE 0x140A /* Primitives */ #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_QUADS 0x0007 #define GL_QUAD_STRIP 0x0008 #define GL_POLYGON 0x0009 /* Vertex Arrays */ #define GL_VERTEX_ARRAY 0x8074 #define GL_NORMAL_ARRAY 0x8075 #define GL_COLOR_ARRAY 0x8076 #define GL_INDEX_ARRAY 0x8077 #define GL_TEXTURE_COORD_ARRAY 0x8078 #define GL_EDGE_FLAG_ARRAY 0x8079 #define GL_VERTEX_ARRAY_SIZE 0x807A #define GL_VERTEX_ARRAY_TYPE 0x807B #define GL_VERTEX_ARRAY_STRIDE 0x807C #define GL_NORMAL_ARRAY_TYPE 0x807E #define GL_NORMAL_ARRAY_STRIDE 0x807F #define GL_COLOR_ARRAY_SIZE 0x8081 #define GL_COLOR_ARRAY_TYPE 0x8082 #define GL_COLOR_ARRAY_STRIDE 0x8083 #define GL_INDEX_ARRAY_TYPE 0x8085 #define GL_INDEX_ARRAY_STRIDE 0x8086 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C #define GL_VERTEX_ARRAY_POINTER 0x808E #define GL_NORMAL_ARRAY_POINTER 0x808F #define GL_COLOR_ARRAY_POINTER 0x8090 #define GL_INDEX_ARRAY_POINTER 0x8091 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 #define GL_V2F 0x2A20 #define GL_V3F 0x2A21 #define GL_C4UB_V2F 0x2A22 #define GL_C4UB_V3F 0x2A23 #define GL_C3F_V3F 0x2A24 #define GL_N3F_V3F 0x2A25 #define GL_C4F_N3F_V3F 0x2A26 #define GL_T2F_V3F 0x2A27 #define GL_T4F_V4F 0x2A28 #define GL_T2F_C4UB_V3F 0x2A29 #define GL_T2F_C3F_V3F 0x2A2A #define GL_T2F_N3F_V3F 0x2A2B #define GL_T2F_C4F_N3F_V3F 0x2A2C #define GL_T4F_C4F_N3F_V4F 0x2A2D /* Matrix Mode */ #define GL_MATRIX_MODE 0x0BA0 #define GL_MODELVIEW 0x1700 #define GL_PROJECTION 0x1701 #define GL_TEXTURE 0x1702 /* Points */ #define GL_POINT_SMOOTH 0x0B10 #define GL_POINT_SIZE 0x0B11 #define GL_POINT_SIZE_GRANULARITY 0x0B13 #define GL_POINT_SIZE_RANGE 0x0B12 /* Lines */ #define GL_LINE_SMOOTH 0x0B20 #define GL_LINE_STIPPLE 0x0B24 #define GL_LINE_STIPPLE_PATTERN 0x0B25 #define GL_LINE_STIPPLE_REPEAT 0x0B26 #define GL_LINE_WIDTH 0x0B21 #define GL_LINE_WIDTH_GRANULARITY 0x0B23 #define GL_LINE_WIDTH_RANGE 0x0B22 /* Polygons */ #define GL_POINT 0x1B00 #define GL_LINE 0x1B01 #define GL_FILL 0x1B02 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_POLYGON_MODE 0x0B40 #define GL_POLYGON_SMOOTH 0x0B41 #define GL_POLYGON_STIPPLE 0x0B42 #define GL_EDGE_FLAG 0x0B43 #define GL_CULL_FACE 0x0B44 #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_POINT 0x2A01 #define GL_POLYGON_OFFSET_LINE 0x2A02 #define GL_POLYGON_OFFSET_FILL 0x8037 /* Display Lists */ #define GL_COMPILE 0x1300 #define GL_COMPILE_AND_EXECUTE 0x1301 #define GL_LIST_BASE 0x0B32 #define GL_LIST_INDEX 0x0B33 #define GL_LIST_MODE 0x0B30 /* Depth buffer */ #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_DEPTH_TEST 0x0B71 #define GL_DEPTH_BITS 0x0D56 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_COMPONENT 0x1902 /* Lighting */ #define GL_LIGHTING 0x0B50 #define GL_LIGHT0 0x4000 #define GL_LIGHT1 0x4001 #define GL_LIGHT2 0x4002 #define GL_LIGHT3 0x4003 #define GL_LIGHT4 0x4004 #define GL_LIGHT5 0x4005 #define GL_LIGHT6 0x4006 #define GL_LIGHT7 0x4007 #define GL_SPOT_EXPONENT 0x1205 #define GL_SPOT_CUTOFF 0x1206 #define GL_CONSTANT_ATTENUATION 0x1207 #define GL_LINEAR_ATTENUATION 0x1208 #define GL_QUADRATIC_ATTENUATION 0x1209 #define GL_AMBIENT 0x1200 #define GL_DIFFUSE 0x1201 #define GL_SPECULAR 0x1202 #define GL_SHININESS 0x1601 #define GL_EMISSION 0x1600 #define GL_POSITION 0x1203 #define GL_SPOT_DIRECTION 0x1204 #define GL_AMBIENT_AND_DIFFUSE 0x1602 #define GL_COLOR_INDEXES 0x1603 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 #define GL_LIGHT_MODEL_AMBIENT 0x0B53 #define GL_FRONT_AND_BACK 0x0408 #define GL_SHADE_MODEL 0x0B54 #define GL_FLAT 0x1D00 #define GL_SMOOTH 0x1D01 #define GL_COLOR_MATERIAL 0x0B57 #define GL_COLOR_MATERIAL_FACE 0x0B55 #define GL_COLOR_MATERIAL_PARAMETER 0x0B56 #define GL_NORMALIZE 0x0BA1 /* User clipping planes */ #define GL_CLIP_PLANE0 0x3000 #define GL_CLIP_PLANE1 0x3001 #define GL_CLIP_PLANE2 0x3002 #define GL_CLIP_PLANE3 0x3003 #define GL_CLIP_PLANE4 0x3004 #define GL_CLIP_PLANE5 0x3005 /* Accumulation buffer */ #define GL_ACCUM_RED_BITS 0x0D58 #define GL_ACCUM_GREEN_BITS 0x0D59 #define GL_ACCUM_BLUE_BITS 0x0D5A #define GL_ACCUM_ALPHA_BITS 0x0D5B #define GL_ACCUM_CLEAR_VALUE 0x0B80 #define GL_ACCUM 0x0100 #define GL_ADD 0x0104 #define GL_LOAD 0x0101 #define GL_MULT 0x0103 #define GL_RETURN 0x0102 /* Alpha testing */ #define GL_ALPHA_TEST 0x0BC0 #define GL_ALPHA_TEST_REF 0x0BC2 #define GL_ALPHA_TEST_FUNC 0x0BC1 /* Blending */ #define GL_BLEND 0x0BE2 #define GL_BLEND_SRC 0x0BE1 #define GL_BLEND_DST 0x0BE0 #define GL_ZERO 0x0 #define GL_ONE 0x1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 /* Render Mode */ #define GL_FEEDBACK 0x1C01 #define GL_RENDER 0x1C00 #define GL_SELECT 0x1C02 /* Feedback */ #define GL_2D 0x0600 #define GL_3D 0x0601 #define GL_3D_COLOR 0x0602 #define GL_3D_COLOR_TEXTURE 0x0603 #define GL_4D_COLOR_TEXTURE 0x0604 #define GL_POINT_TOKEN 0x0701 #define GL_LINE_TOKEN 0x0702 #define GL_LINE_RESET_TOKEN 0x0707 #define GL_POLYGON_TOKEN 0x0703 #define GL_BITMAP_TOKEN 0x0704 #define GL_DRAW_PIXEL_TOKEN 0x0705 #define GL_COPY_PIXEL_TOKEN 0x0706 #define GL_PASS_THROUGH_TOKEN 0x0700 #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 /* Selection */ #define GL_SELECTION_BUFFER_POINTER 0x0DF3 #define GL_SELECTION_BUFFER_SIZE 0x0DF4 /* Fog */ #define GL_FOG 0x0B60 #define GL_FOG_MODE 0x0B65 #define GL_FOG_DENSITY 0x0B62 #define GL_FOG_COLOR 0x0B66 #define GL_FOG_INDEX 0x0B61 #define GL_FOG_START 0x0B63 #define GL_FOG_END 0x0B64 #define GL_LINEAR 0x2601 #define GL_EXP 0x0800 #define GL_EXP2 0x0801 /* Logic Ops */ #define GL_LOGIC_OP 0x0BF1 #define GL_INDEX_LOGIC_OP 0x0BF1 #define GL_COLOR_LOGIC_OP 0x0BF2 #define GL_LOGIC_OP_MODE 0x0BF0 #define GL_CLEAR 0x1500 #define GL_SET 0x150F #define GL_COPY 0x1503 #define GL_COPY_INVERTED 0x150C #define GL_NOOP 0x1505 #define GL_INVERT 0x150A #define GL_AND 0x1501 #define GL_NAND 0x150E #define GL_OR 0x1507 #define GL_NOR 0x1508 #define GL_XOR 0x1506 #define GL_EQUIV 0x1509 #define GL_AND_REVERSE 0x1502 #define GL_AND_INVERTED 0x1504 #define GL_OR_REVERSE 0x150B #define GL_OR_INVERTED 0x150D /* Stencil */ #define GL_STENCIL_BITS 0x0D57 #define GL_STENCIL_TEST 0x0B90 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_INDEX 0x1901 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 /* Buffers, Pixel Drawing/Reading */ #define GL_NONE 0x0 #define GL_LEFT 0x0406 #define GL_RIGHT 0x0407 /*GL_FRONT 0x0404 */ /*GL_BACK 0x0405 */ /*GL_FRONT_AND_BACK 0x0408 */ #define GL_FRONT_LEFT 0x0400 #define GL_FRONT_RIGHT 0x0401 #define GL_BACK_LEFT 0x0402 #define GL_BACK_RIGHT 0x0403 #define GL_AUX0 0x0409 #define GL_AUX1 0x040A #define GL_AUX2 0x040B #define GL_AUX3 0x040C #define GL_COLOR_INDEX 0x1900 #define GL_RED 0x1903 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_ALPHA 0x1906 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_ALPHA_BITS 0x0D55 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_INDEX_BITS 0x0D51 #define GL_SUBPIXEL_BITS 0x0D50 #define GL_AUX_BUFFERS 0x0C00 #define GL_READ_BUFFER 0x0C02 #define GL_DRAW_BUFFER 0x0C01 #define GL_DOUBLEBUFFER 0x0C32 #define GL_STEREO 0x0C33 #define GL_BITMAP 0x1A00 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_DITHER 0x0BD0 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 /* Implementation limits */ #define GL_MAX_LIST_NESTING 0x0B31 #define GL_MAX_EVAL_ORDER 0x0D30 #define GL_MAX_LIGHTS 0x0D31 #define GL_MAX_CLIP_PLANES 0x0D32 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_PIXEL_MAP_TABLE 0x0D34 #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 #define GL_MAX_NAME_STACK_DEPTH 0x0D37 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B /* Gets */ #define GL_ATTRIB_STACK_DEPTH 0x0BB0 #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_CURRENT_INDEX 0x0B01 #define GL_CURRENT_COLOR 0x0B00 #define GL_CURRENT_NORMAL 0x0B02 #define GL_CURRENT_RASTER_COLOR 0x0B04 #define GL_CURRENT_RASTER_DISTANCE 0x0B09 #define GL_CURRENT_RASTER_INDEX 0x0B05 #define GL_CURRENT_RASTER_POSITION 0x0B07 #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 #define GL_CURRENT_TEXTURE_COORDS 0x0B03 #define GL_INDEX_CLEAR_VALUE 0x0C20 #define GL_INDEX_MODE 0x0C30 #define GL_INDEX_WRITEMASK 0x0C21 #define GL_MODELVIEW_MATRIX 0x0BA6 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3 #define GL_NAME_STACK_DEPTH 0x0D70 #define GL_PROJECTION_MATRIX 0x0BA7 #define GL_PROJECTION_STACK_DEPTH 0x0BA4 #define GL_RENDER_MODE 0x0C40 #define GL_RGBA_MODE 0x0C31 #define GL_TEXTURE_MATRIX 0x0BA8 #define GL_TEXTURE_STACK_DEPTH 0x0BA5 #define GL_VIEWPORT 0x0BA2 /* Evaluators */ #define GL_AUTO_NORMAL 0x0D80 #define GL_MAP1_COLOR_4 0x0D90 #define GL_MAP1_INDEX 0x0D91 #define GL_MAP1_NORMAL 0x0D92 #define GL_MAP1_TEXTURE_COORD_1 0x0D93 #define GL_MAP1_TEXTURE_COORD_2 0x0D94 #define GL_MAP1_TEXTURE_COORD_3 0x0D95 #define GL_MAP1_TEXTURE_COORD_4 0x0D96 #define GL_MAP1_VERTEX_3 0x0D97 #define GL_MAP1_VERTEX_4 0x0D98 #define GL_MAP2_COLOR_4 0x0DB0 #define GL_MAP2_INDEX 0x0DB1 #define GL_MAP2_NORMAL 0x0DB2 #define GL_MAP2_TEXTURE_COORD_1 0x0DB3 #define GL_MAP2_TEXTURE_COORD_2 0x0DB4 #define GL_MAP2_TEXTURE_COORD_3 0x0DB5 #define GL_MAP2_TEXTURE_COORD_4 0x0DB6 #define GL_MAP2_VERTEX_3 0x0DB7 #define GL_MAP2_VERTEX_4 0x0DB8 #define GL_MAP1_GRID_DOMAIN 0x0DD0 #define GL_MAP1_GRID_SEGMENTS 0x0DD1 #define GL_MAP2_GRID_DOMAIN 0x0DD2 #define GL_MAP2_GRID_SEGMENTS 0x0DD3 #define GL_COEFF 0x0A00 #define GL_ORDER 0x0A01 #define GL_DOMAIN 0x0A02 /* Hints */ #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 #define GL_POINT_SMOOTH_HINT 0x0C51 #define GL_LINE_SMOOTH_HINT 0x0C52 #define GL_POLYGON_SMOOTH_HINT 0x0C53 #define GL_FOG_HINT 0x0C54 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 /* Scissor box */ #define GL_SCISSOR_BOX 0x0C10 #define GL_SCISSOR_TEST 0x0C11 /* Pixel Mode / Transfer */ #define GL_MAP_COLOR 0x0D10 #define GL_MAP_STENCIL 0x0D11 #define GL_INDEX_SHIFT 0x0D12 #define GL_INDEX_OFFSET 0x0D13 #define GL_RED_SCALE 0x0D14 #define GL_RED_BIAS 0x0D15 #define GL_GREEN_SCALE 0x0D18 #define GL_GREEN_BIAS 0x0D19 #define GL_BLUE_SCALE 0x0D1A #define GL_BLUE_BIAS 0x0D1B #define GL_ALPHA_SCALE 0x0D1C #define GL_ALPHA_BIAS 0x0D1D #define GL_DEPTH_SCALE 0x0D1E #define GL_DEPTH_BIAS 0x0D1F #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 #define GL_PIXEL_MAP_S_TO_S 0x0C71 #define GL_PIXEL_MAP_I_TO_I 0x0C70 #define GL_PIXEL_MAP_I_TO_R 0x0C72 #define GL_PIXEL_MAP_I_TO_G 0x0C73 #define GL_PIXEL_MAP_I_TO_B 0x0C74 #define GL_PIXEL_MAP_I_TO_A 0x0C75 #define GL_PIXEL_MAP_R_TO_R 0x0C76 #define GL_PIXEL_MAP_G_TO_G 0x0C77 #define GL_PIXEL_MAP_B_TO_B 0x0C78 #define GL_PIXEL_MAP_A_TO_A 0x0C79 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_PACK_LSB_FIRST 0x0D01 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SWAP_BYTES 0x0D00 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_UNPACK_LSB_FIRST 0x0CF1 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SWAP_BYTES 0x0CF0 #define GL_ZOOM_X 0x0D16 #define GL_ZOOM_Y 0x0D17 /* Texture mapping */ #define GL_TEXTURE_ENV 0x2300 #define GL_TEXTURE_ENV_MODE 0x2200 #define GL_TEXTURE_1D 0x0DE0 #define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_ENV_COLOR 0x2201 #define GL_TEXTURE_GEN_S 0x0C60 #define GL_TEXTURE_GEN_T 0x0C61 #define GL_TEXTURE_GEN_MODE 0x2500 #define GL_TEXTURE_BORDER_COLOR 0x1004 #define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_BORDER 0x1005 #define GL_TEXTURE_COMPONENTS 0x1003 #define GL_TEXTURE_RED_SIZE 0x805C #define GL_TEXTURE_GREEN_SIZE 0x805D #define GL_TEXTURE_BLUE_SIZE 0x805E #define GL_TEXTURE_ALPHA_SIZE 0x805F #define GL_TEXTURE_LUMINANCE_SIZE 0x8060 #define GL_TEXTURE_INTENSITY_SIZE 0x8061 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_OBJECT_LINEAR 0x2401 #define GL_OBJECT_PLANE 0x2501 #define GL_EYE_LINEAR 0x2400 #define GL_EYE_PLANE 0x2502 #define GL_SPHERE_MAP 0x2402 #define GL_DECAL 0x2101 #define GL_MODULATE 0x2100 #define GL_NEAREST 0x2600 #define GL_REPEAT 0x2901 #define GL_CLAMP 0x2900 #define GL_S 0x2000 #define GL_T 0x2001 #define GL_R 0x2002 #define GL_Q 0x2003 #define GL_TEXTURE_GEN_R 0x0C62 #define GL_TEXTURE_GEN_Q 0x0C63 /* Utility */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 /* Errors */ #define GL_NO_ERROR 0x0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #define GL_OUT_OF_MEMORY 0x0505 /* glPush/PopAttrib bits */ #define GL_CURRENT_BIT 0x00000001 #define GL_POINT_BIT 0x00000002 #define GL_LINE_BIT 0x00000004 #define GL_POLYGON_BIT 0x00000008 #define GL_POLYGON_STIPPLE_BIT 0x00000010 #define GL_PIXEL_MODE_BIT 0x00000020 #define GL_LIGHTING_BIT 0x00000040 #define GL_FOG_BIT 0x00000080 #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_ACCUM_BUFFER_BIT 0x00000200 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_VIEWPORT_BIT 0x00000800 #define GL_TRANSFORM_BIT 0x00001000 #define GL_ENABLE_BIT 0x00002000 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_HINT_BIT 0x00008000 #define GL_EVAL_BIT 0x00010000 #define GL_LIST_BIT 0x00020000 #define GL_TEXTURE_BIT 0x00040000 #define GL_SCISSOR_BIT 0x00080000 #define GL_ALL_ATTRIB_BITS 0x000FFFFF /* OpenGL 1.1 */ #define GL_PROXY_TEXTURE_1D 0x8063 #define GL_PROXY_TEXTURE_2D 0x8064 #define GL_TEXTURE_PRIORITY 0x8066 #define GL_TEXTURE_RESIDENT 0x8067 #define GL_TEXTURE_BINDING_1D 0x8068 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_ALPHA4 0x803B #define GL_ALPHA8 0x803C #define GL_ALPHA12 0x803D #define GL_ALPHA16 0x803E #define GL_LUMINANCE4 0x803F #define GL_LUMINANCE8 0x8040 #define GL_LUMINANCE12 0x8041 #define GL_LUMINANCE16 0x8042 #define GL_LUMINANCE4_ALPHA4 0x8043 #define GL_LUMINANCE6_ALPHA2 0x8044 #define GL_LUMINANCE8_ALPHA8 0x8045 #define GL_LUMINANCE12_ALPHA4 0x8046 #define GL_LUMINANCE12_ALPHA12 0x8047 #define GL_LUMINANCE16_ALPHA16 0x8048 #define GL_INTENSITY 0x8049 #define GL_INTENSITY4 0x804A #define GL_INTENSITY8 0x804B #define GL_INTENSITY12 0x804C #define GL_INTENSITY16 0x804D #define GL_R3_G3_B2 0x2A10 #define GL_RGB4 0x804F #define GL_RGB5 0x8050 #define GL_RGB8 0x8051 #define GL_RGB10 0x8052 #define GL_RGB12 0x8053 #define GL_RGB16 0x8054 #define GL_RGBA2 0x8055 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_RGBA12 0x805A #define GL_RGBA16 0x805B #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 #define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF #define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF /* * Miscellaneous */ GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); GLAPI void GLAPIENTRY glClear( GLbitfield mask ); GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); GLAPI void GLAPIENTRY glCullFace( GLenum mode ); GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); GLAPI void GLAPIENTRY glPointSize( GLfloat size ); GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); GLAPI void GLAPIENTRY glEnable( GLenum cap ); GLAPI void GLAPIENTRY glDisable( GLenum cap ); GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); GLAPI void GLAPIENTRY glPopAttrib( void ); GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); GLAPI GLenum GLAPIENTRY glGetError( void ); GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); GLAPI void GLAPIENTRY glFinish( void ); GLAPI void GLAPIENTRY glFlush( void ); GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); /* * Depth Buffer */ GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); /* * Accumulation Buffer */ GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); /* * Transformation */ GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, GLsizei width, GLsizei height ); GLAPI void GLAPIENTRY glPushMatrix( void ); GLAPI void GLAPIENTRY glPopMatrix( void ); GLAPI void GLAPIENTRY glLoadIdentity( void ); GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); GLAPI void GLAPIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); /* * Display Lists */ GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); GLAPI void GLAPIENTRY glEndList( void ); GLAPI void GLAPIENTRY glCallList( GLuint list ); GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, const GLvoid *lists ); GLAPI void GLAPIENTRY glListBase( GLuint base ); /* * Drawing Functions */ GLAPI void GLAPIENTRY glBegin( GLenum mode ); GLAPI void GLAPIENTRY glEnd( void ); GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); GLAPI void GLAPIENTRY glIndexd( GLdouble c ); GLAPI void GLAPIENTRY glIndexf( GLfloat c ); GLAPI void GLAPIENTRY glIndexi( GLint c ); GLAPI void GLAPIENTRY glIndexs( GLshort c ); GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ); GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ); GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, GLint blue, GLint alpha ); GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, GLshort blue, GLshort alpha ); GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ); GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, GLushort blue, GLushort alpha ); GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); /* * Vertex Arrays (1.1) */ GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); GLAPI void GLAPIENTRY glArrayElement( GLint i ); GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, const GLvoid *pointer ); /* * Lighting */ GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); /* * Raster functions */ GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values ); GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, const GLuint *values ); GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, const GLushort *values ); GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap ); GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ); GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type ); /* * Stenciling */ GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); GLAPI void GLAPIENTRY glClearStencil( GLint s ); /* * Texture mapping */ GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params); GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels ); /* 1.1 functions */ GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ); GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, const GLuint *textures, GLboolean *residences ); GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border ); GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); /* * Evaluators */ GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points ); GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points ); GLAPI void GLAPIENTRY glMap2d( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points ); GLAPI void GLAPIENTRY glMap2f( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points ); GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ); GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 ); GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); /* * Fog */ GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); /* * Selection and Feedback */ GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); GLAPI void GLAPIENTRY glInitNames( void ); GLAPI void GLAPIENTRY glLoadName( GLuint name ); GLAPI void GLAPIENTRY glPushName( GLuint name ); GLAPI void GLAPIENTRY glPopName( void ); /* * OpenGL 1.2 */ #define GL_RESCALE_NORMAL 0x803A #define GL_CLAMP_TO_EDGE 0x812F #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_BGR 0x80E0 #define GL_BGRA 0x80E1 #define GL_UNSIGNED_BYTE_3_3_2 0x8032 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 #define GL_UNSIGNED_INT_10_10_10_2 0x8036 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 #define GL_SINGLE_COLOR 0x81F9 #define GL_SEPARATE_SPECULAR_COLOR 0x81FA #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_PACK_SKIP_IMAGES 0x806B #define GL_PACK_IMAGE_HEIGHT 0x806C #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_PROXY_TEXTURE_3D 0x8070 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_TEXTURE_BINDING_3D 0x806A GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* * GL_ARB_imaging */ #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_COLOR_TABLE 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 #define GL_PROXY_COLOR_TABLE 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 #define GL_COLOR_TABLE_SCALE 0x80D6 #define GL_COLOR_TABLE_BIAS 0x80D7 #define GL_COLOR_TABLE_FORMAT 0x80D8 #define GL_COLOR_TABLE_WIDTH 0x80D9 #define GL_COLOR_TABLE_RED_SIZE 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF #define GL_CONVOLUTION_1D 0x8010 #define GL_CONVOLUTION_2D 0x8011 #define GL_SEPARABLE_2D 0x8012 #define GL_CONVOLUTION_BORDER_MODE 0x8013 #define GL_CONVOLUTION_FILTER_SCALE 0x8014 #define GL_CONVOLUTION_FILTER_BIAS 0x8015 #define GL_REDUCE 0x8016 #define GL_CONVOLUTION_FORMAT 0x8017 #define GL_CONVOLUTION_WIDTH 0x8018 #define GL_CONVOLUTION_HEIGHT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH 0x801A #define GL_MAX_CONVOLUTION_HEIGHT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F #define GL_POST_CONVOLUTION_RED_BIAS 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 #define GL_CONSTANT_BORDER 0x8151 #define GL_REPLICATE_BORDER 0x8153 #define GL_CONVOLUTION_BORDER_COLOR 0x8154 #define GL_COLOR_MATRIX 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA #define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB #define GL_HISTOGRAM 0x8024 #define GL_PROXY_HISTOGRAM 0x8025 #define GL_HISTOGRAM_WIDTH 0x8026 #define GL_HISTOGRAM_FORMAT 0x8027 #define GL_HISTOGRAM_RED_SIZE 0x8028 #define GL_HISTOGRAM_GREEN_SIZE 0x8029 #define GL_HISTOGRAM_BLUE_SIZE 0x802A #define GL_HISTOGRAM_ALPHA_SIZE 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C #define GL_HISTOGRAM_SINK 0x802D #define GL_MINMAX 0x802E #define GL_MINMAX_FORMAT 0x802F #define GL_MINMAX_SINK 0x8030 #define GL_TABLE_TOO_LARGE 0x8031 #define GL_BLEND_EQUATION 0x8009 #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_FUNC_ADD 0x8006 #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_COLOR 0x8005 GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table ); GLAPI void GLAPIENTRY glColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data ); GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params); GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, GLenum type, GLvoid *table ); GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink ); GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values ); GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, GLboolean sink ); GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values ); GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image ); GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image ); GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, GLfloat params ); GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, GLint params ); GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, GLenum type, GLvoid *image ); GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column ); GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); /* * OpenGL 1.3 */ /* multitexture */ #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 #define GL_MAX_TEXTURE_UNITS 0x84E2 /* texture_cube_map */ #define GL_NORMAL_MAP 0x8511 #define GL_REFLECTION_MAP 0x8512 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C /* texture_compression */ #define GL_COMPRESSED_ALPHA 0x84E9 #define GL_COMPRESSED_LUMINANCE 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB #define GL_COMPRESSED_INTENSITY 0x84EC #define GL_COMPRESSED_RGB 0x84ED #define GL_COMPRESSED_RGBA 0x84EE #define GL_TEXTURE_COMPRESSION_HINT 0x84EF #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 #define GL_TEXTURE_COMPRESSED 0x86A1 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 /* multisample */ #define GL_MULTISAMPLE 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_ONE 0x809F #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_MULTISAMPLE_BIT 0x20000000 /* transpose_matrix */ #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 /* texture_env_combine */ #define GL_COMBINE 0x8570 #define GL_COMBINE_RGB 0x8571 #define GL_COMBINE_ALPHA 0x8572 #define GL_SOURCE0_RGB 0x8580 #define GL_SOURCE1_RGB 0x8581 #define GL_SOURCE2_RGB 0x8582 #define GL_SOURCE0_ALPHA 0x8588 #define GL_SOURCE1_ALPHA 0x8589 #define GL_SOURCE2_ALPHA 0x858A #define GL_OPERAND0_RGB 0x8590 #define GL_OPERAND1_RGB 0x8591 #define GL_OPERAND2_RGB 0x8592 #define GL_OPERAND0_ALPHA 0x8598 #define GL_OPERAND1_ALPHA 0x8599 #define GL_OPERAND2_ALPHA 0x859A #define GL_RGB_SCALE 0x8573 #define GL_ADD_SIGNED 0x8574 #define GL_INTERPOLATE 0x8575 #define GL_SUBTRACT 0x84E7 #define GL_CONSTANT 0x8576 #define GL_PRIMARY_COLOR 0x8577 #define GL_PREVIOUS 0x8578 /* texture_env_dot3 */ #define GL_DOT3_RGB 0x86AE #define GL_DOT3_RGBA 0x86AF /* texture_border_clamp */ #define GL_CLAMP_TO_BORDER 0x812D GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); /* * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) */ #ifndef GL_ARB_multitexture #define GL_ARB_multitexture 1 #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 #define GL_TEXTURE2_ARB 0x84C2 #define GL_TEXTURE3_ARB 0x84C3 #define GL_TEXTURE4_ARB 0x84C4 #define GL_TEXTURE5_ARB 0x84C5 #define GL_TEXTURE6_ARB 0x84C6 #define GL_TEXTURE7_ARB 0x84C7 #define GL_TEXTURE8_ARB 0x84C8 #define GL_TEXTURE9_ARB 0x84C9 #define GL_TEXTURE10_ARB 0x84CA #define GL_TEXTURE11_ARB 0x84CB #define GL_TEXTURE12_ARB 0x84CC #define GL_TEXTURE13_ARB 0x84CD #define GL_TEXTURE14_ARB 0x84CE #define GL_TEXTURE15_ARB 0x84CF #define GL_TEXTURE16_ARB 0x84D0 #define GL_TEXTURE17_ARB 0x84D1 #define GL_TEXTURE18_ARB 0x84D2 #define GL_TEXTURE19_ARB 0x84D3 #define GL_TEXTURE20_ARB 0x84D4 #define GL_TEXTURE21_ARB 0x84D5 #define GL_TEXTURE22_ARB 0x84D6 #define GL_TEXTURE23_ARB 0x84D7 #define GL_TEXTURE24_ARB 0x84D8 #define GL_TEXTURE25_ARB 0x84D9 #define GL_TEXTURE26_ARB 0x84DA #define GL_TEXTURE27_ARB 0x84DB #define GL_TEXTURE28_ARB 0x84DC #define GL_TEXTURE29_ARB 0x84DD #define GL_TEXTURE30_ARB 0x84DE #define GL_TEXTURE31_ARB 0x84DF #define GL_ACTIVE_TEXTURE_ARB 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); #endif /* GL_ARB_multitexture */ /* * Define this token if you want "old-style" header file behaviour (extensions * defined in gl.h). Otherwise, extensions will be included from glext.h. */ #if defined(GL_GLEXT_LEGACY) /* All extensions that used to be here are now found in glext.h */ #else /* GL_GLEXT_LEGACY */ #include <GL/glext.h> #endif /* GL_GLEXT_LEGACY */ #if GL_ARB_shader_objects #ifndef GL_MESA_shader_debug #define GL_MESA_shader_debug 1 #define GL_DEBUG_OBJECT_MESA 0x8759 #define GL_DEBUG_PRINT_MESA 0x875A #define GL_DEBUG_ASSERT_MESA 0x875B GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, GLsizei *length, GLcharARB *debugLog); GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); #endif /* GL_MESA_shader_debug */ #endif /* GL_ARB_shader_objects */ /* * ???. GL_MESA_packed_depth_stencil * XXX obsolete */ #ifndef GL_MESA_packed_depth_stencil #define GL_MESA_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_MESA 0x8750 #define GL_UNSIGNED_INT_24_8_MESA 0x8751 #define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 #define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 #define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 #endif /* GL_MESA_packed_depth_stencil */ #ifndef GL_MESA_program_debug #define GL_MESA_program_debug 1 #define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 #define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 #define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 #define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 #define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 #define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 #define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 #define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); #endif /* GL_MESA_program_debug */ #ifndef GL_MESA_texture_array #define GL_MESA_texture_array 1 /* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. */ #ifndef GL_EXT_texture_array #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); #endif /* GL_GLEXT_PROTOTYPES */ #if 0 /* (temporarily) disabled because of collision with typedef in glext.h * that happens if apps include both gl.h and glext.h */ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); #endif #define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 #define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 #define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A #define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D #define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 #endif #endif #ifndef GL_ATI_blend_equation_separate #define GL_ATI_blend_equation_separate 1 #define GL_ALPHA_BLEND_EQUATION_ATI 0x883D GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); #endif /* GL_ATI_blend_equation_separate */ /* GL_OES_EGL_image */ #ifndef GL_OES_EGL_image typedef void* GLeglImageOES; #endif #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #endif /** ** NOTE!!!!! If you add new functions to this file, or update ** glext.h be sure to regenerate the gl_mangle.h file. See comments ** in that file for details. **/ /********************************************************************** * Begin system-specific stuff */ #if defined(PRAGMA_EXPORT_SUPPORTED) #pragma export off #endif #if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED #pragma import off #endif /* * End system-specific stuff **********************************************************************/ #ifdef __cplusplus } #endif #endif /* __gl_h_ */ |
Added jni/glshim/include/GL/gl_mangle.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 | #if 0 #define GL_MANGLE_C1 "DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE THIS FILE IN SHELL (/bin/sh) and save the output" #define GL_MANGLE_C2 "This file is used to create GL function protypes and aliases for the function names" files="gl.h glext.h" #define GL_MANGLE_C3 "get regeneration header - copy everything in this file above the 'REGENERATE_TO_END' line" awk '!done; /^\/\*REGENERATE_TO_END/ {done=1}' $0 echo "" #define GL_MANGLE_C4 get aliases grep '^GLAPI' $files | sed -e 's/.*ENTRY gl\([^( ]*\).*$/#define gl\1 MANGLE(\1)/' | sort | uniq echo "" echo "#endif /* GL_MANGLE_H */" exit #endif /* REGENERATION */ /* * If you compile Mesa with USE_MGL_NAMESPACE defined then you can link * your application both with OpenGL and Mesa. The Mesa functions will * be redefined so they are prefixed with "mgl" instead of "gl". * Mgl contributed by Randy Frank (rfrank@rsinc.com) * Regneration code contributed by Ray Tice (rayt@ma.ultra.net) */ #ifndef GL_MANGLE_H #define GL_MANGLE_H #ifndef MANGLE #define MANGLE(x) mgl##x #endif /*MANGLE*/ /*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */ #define glAccum MANGLE(Accum) #define glActiveProgramEXT MANGLE(ActiveProgramEXT) #define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT) #define glActiveTextureARB MANGLE(ActiveTextureARB) #define glActiveTexture MANGLE(ActiveTexture) #define glActiveVaryingNV MANGLE(ActiveVaryingNV) #define glAlphaFragmentOp1ATI MANGLE(AlphaFragmentOp1ATI) #define glAlphaFragmentOp2ATI MANGLE(AlphaFragmentOp2ATI) #define glAlphaFragmentOp3ATI MANGLE(AlphaFragmentOp3ATI) #define glAlphaFunc MANGLE(AlphaFunc) #define glApplyTextureEXT MANGLE(ApplyTextureEXT) #define glAreProgramsResidentNV MANGLE(AreProgramsResidentNV) #define glAreTexturesResidentEXT MANGLE(AreTexturesResidentEXT) #define glAreTexturesResident MANGLE(AreTexturesResident) #define glArrayElementEXT MANGLE(ArrayElementEXT) #define glArrayElement MANGLE(ArrayElement) #define glArrayObjectATI MANGLE(ArrayObjectATI) #define glAsyncMarkerSGIX MANGLE(AsyncMarkerSGIX) #define glAttachObjectARB MANGLE(AttachObjectARB) #define glAttachShader MANGLE(AttachShader) #define glBeginConditionalRender MANGLE(BeginConditionalRender) #define glBeginConditionalRenderNV MANGLE(BeginConditionalRenderNV) #define glBeginFragmentShaderATI MANGLE(BeginFragmentShaderATI) #define glBegin MANGLE(Begin) #define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV) #define glBeginPerfMonitorAMD MANGLE(BeginPerfMonitorAMD) #define glBeginQueryARB MANGLE(BeginQueryARB) #define glBeginQuery MANGLE(BeginQuery) #define glBeginTransformFeedbackEXT MANGLE(BeginTransformFeedbackEXT) #define glBeginTransformFeedback MANGLE(BeginTransformFeedback) #define glBeginTransformFeedbackNV MANGLE(BeginTransformFeedbackNV) #define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT) #define glBeginVideoCaptureNV MANGLE(BeginVideoCaptureNV) #define glBindAttribLocationARB MANGLE(BindAttribLocationARB) #define glBindAttribLocation MANGLE(BindAttribLocation) #define glBindBufferARB MANGLE(BindBufferARB) #define glBindBufferBaseEXT MANGLE(BindBufferBaseEXT) #define glBindBufferBase MANGLE(BindBufferBase) #define glBindBufferBaseNV MANGLE(BindBufferBaseNV) #define glBindBuffer MANGLE(BindBuffer) #define glBindBufferOffsetEXT MANGLE(BindBufferOffsetEXT) #define glBindBufferOffsetNV MANGLE(BindBufferOffsetNV) #define glBindBufferRangeEXT MANGLE(BindBufferRangeEXT) #define glBindBufferRange MANGLE(BindBufferRange) #define glBindBufferRangeNV MANGLE(BindBufferRangeNV) #define glBindFragDataLocationEXT MANGLE(BindFragDataLocationEXT) #define glBindFragDataLocation MANGLE(BindFragDataLocation) #define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI) #define glBindFramebufferEXT MANGLE(BindFramebufferEXT) #define glBindFramebuffer MANGLE(BindFramebuffer) #define glBindLightParameterEXT MANGLE(BindLightParameterEXT) #define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT) #define glBindMultiTextureEXT MANGLE(BindMultiTextureEXT) #define glBindParameterEXT MANGLE(BindParameterEXT) #define glBindProgramARB MANGLE(BindProgramARB) #define glBindProgramNV MANGLE(BindProgramNV) #define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT) #define glBindRenderbuffer MANGLE(BindRenderbuffer) #define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT) #define glBindTextureEXT MANGLE(BindTextureEXT) #define glBindTexture MANGLE(BindTexture) #define glBindTextureUnitParameterEXT MANGLE(BindTextureUnitParameterEXT) #define glBindTransformFeedbackNV MANGLE(BindTransformFeedbackNV) #define glBindVertexArrayAPPLE MANGLE(BindVertexArrayAPPLE) #define glBindVertexArray MANGLE(BindVertexArray) #define glBindVertexShaderEXT MANGLE(BindVertexShaderEXT) #define glBindVideoCaptureStreamBufferNV MANGLE(BindVideoCaptureStreamBufferNV) #define glBindVideoCaptureStreamTextureNV MANGLE(BindVideoCaptureStreamTextureNV) #define glBinormal3bEXT MANGLE(Binormal3bEXT) #define glBinormal3bvEXT MANGLE(Binormal3bvEXT) #define glBinormal3dEXT MANGLE(Binormal3dEXT) #define glBinormal3dvEXT MANGLE(Binormal3dvEXT) #define glBinormal3fEXT MANGLE(Binormal3fEXT) #define glBinormal3fvEXT MANGLE(Binormal3fvEXT) #define glBinormal3iEXT MANGLE(Binormal3iEXT) #define glBinormal3ivEXT MANGLE(Binormal3ivEXT) #define glBinormal3sEXT MANGLE(Binormal3sEXT) #define glBinormal3svEXT MANGLE(Binormal3svEXT) #define glBinormalPointerEXT MANGLE(BinormalPointerEXT) #define glBitmap MANGLE(Bitmap) #define glBlendColorEXT MANGLE(BlendColorEXT) #define glBlendColor MANGLE(BlendColor) #define glBlendEquationEXT MANGLE(BlendEquationEXT) #define glBlendEquationi MANGLE(BlendEquationi) #define glBlendEquationIndexedAMD MANGLE(BlendEquationIndexedAMD) #define glBlendEquation MANGLE(BlendEquation) #define glBlendEquationSeparateATI MANGLE(BlendEquationSeparateATI) #define glBlendEquationSeparateEXT MANGLE(BlendEquationSeparateEXT) #define glBlendEquationSeparatei MANGLE(BlendEquationSeparatei) #define glBlendEquationSeparateIndexedAMD MANGLE(BlendEquationSeparateIndexedAMD) #define glBlendEquationSeparate MANGLE(BlendEquationSeparate) #define glBlendFunci MANGLE(BlendFunci) #define glBlendFuncIndexedAMD MANGLE(BlendFuncIndexedAMD) #define glBlendFunc MANGLE(BlendFunc) #define glBlendFuncSeparateEXT MANGLE(BlendFuncSeparateEXT) #define glBlendFuncSeparatei MANGLE(BlendFuncSeparatei) #define glBlendFuncSeparateIndexedAMD MANGLE(BlendFuncSeparateIndexedAMD) #define glBlendFuncSeparateINGR MANGLE(BlendFuncSeparateINGR) #define glBlendFuncSeparate MANGLE(BlendFuncSeparate) #define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT) #define glBlitFramebuffer MANGLE(BlitFramebuffer) #define glBufferAddressRangeNV MANGLE(BufferAddressRangeNV) #define glBufferDataARB MANGLE(BufferDataARB) #define glBufferData MANGLE(BufferData) #define glBufferParameteriAPPLE MANGLE(BufferParameteriAPPLE) #define glBufferSubDataARB MANGLE(BufferSubDataARB) #define glBufferSubData MANGLE(BufferSubData) #define glCallList MANGLE(CallList) #define glCallLists MANGLE(CallLists) #define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT) #define glCheckFramebufferStatus MANGLE(CheckFramebufferStatus) #define glCheckNamedFramebufferStatusEXT MANGLE(CheckNamedFramebufferStatusEXT) #define glClampColorARB MANGLE(ClampColorARB) #define glClampColor MANGLE(ClampColor) #define glClearAccum MANGLE(ClearAccum) #define glClearBufferfi MANGLE(ClearBufferfi) #define glClearBufferfv MANGLE(ClearBufferfv) #define glClearBufferiv MANGLE(ClearBufferiv) #define glClearBufferuiv MANGLE(ClearBufferuiv) #define glClearColorIiEXT MANGLE(ClearColorIiEXT) #define glClearColorIuiEXT MANGLE(ClearColorIuiEXT) #define glClearColor MANGLE(ClearColor) #define glClearDebugLogMESA MANGLE(ClearDebugLogMESA) #define glClearDepthdNV MANGLE(ClearDepthdNV) #define glClearDepth MANGLE(ClearDepth) #define glClearIndex MANGLE(ClearIndex) #define glClear MANGLE(Clear) #define glClearStencil MANGLE(ClearStencil) #define glClientActiveTextureARB MANGLE(ClientActiveTextureARB) #define glClientActiveTexture MANGLE(ClientActiveTexture) #define glClientActiveVertexStreamATI MANGLE(ClientActiveVertexStreamATI) #define glClientAttribDefaultEXT MANGLE(ClientAttribDefaultEXT) #define glClientWaitSync MANGLE(ClientWaitSync) #define glClipPlane MANGLE(ClipPlane) #define glColor3b MANGLE(Color3b) #define glColor3bv MANGLE(Color3bv) #define glColor3d MANGLE(Color3d) #define glColor3dv MANGLE(Color3dv) #define glColor3f MANGLE(Color3f) #define glColor3fVertex3fSUN MANGLE(Color3fVertex3fSUN) #define glColor3fVertex3fvSUN MANGLE(Color3fVertex3fvSUN) #define glColor3fv MANGLE(Color3fv) #define glColor3hNV MANGLE(Color3hNV) #define glColor3hvNV MANGLE(Color3hvNV) #define glColor3i MANGLE(Color3i) #define glColor3iv MANGLE(Color3iv) #define glColor3s MANGLE(Color3s) #define glColor3sv MANGLE(Color3sv) #define glColor3ub MANGLE(Color3ub) #define glColor3ubv MANGLE(Color3ubv) #define glColor3ui MANGLE(Color3ui) #define glColor3uiv MANGLE(Color3uiv) #define glColor3us MANGLE(Color3us) #define glColor3usv MANGLE(Color3usv) #define glColor4b MANGLE(Color4b) #define glColor4bv MANGLE(Color4bv) #define glColor4d MANGLE(Color4d) #define glColor4dv MANGLE(Color4dv) #define glColor4f MANGLE(Color4f) #define glColor4fNormal3fVertex3fSUN MANGLE(Color4fNormal3fVertex3fSUN) #define glColor4fNormal3fVertex3fvSUN MANGLE(Color4fNormal3fVertex3fvSUN) #define glColor4fv MANGLE(Color4fv) #define glColor4hNV MANGLE(Color4hNV) #define glColor4hvNV MANGLE(Color4hvNV) #define glColor4i MANGLE(Color4i) #define glColor4iv MANGLE(Color4iv) #define glColor4s MANGLE(Color4s) #define glColor4sv MANGLE(Color4sv) #define glColor4ub MANGLE(Color4ub) #define glColor4ubVertex2fSUN MANGLE(Color4ubVertex2fSUN) #define glColor4ubVertex2fvSUN MANGLE(Color4ubVertex2fvSUN) #define glColor4ubVertex3fSUN MANGLE(Color4ubVertex3fSUN) #define glColor4ubVertex3fvSUN MANGLE(Color4ubVertex3fvSUN) #define glColor4ubv MANGLE(Color4ubv) #define glColor4ui MANGLE(Color4ui) #define glColor4uiv MANGLE(Color4uiv) #define glColor4us MANGLE(Color4us) #define glColor4usv MANGLE(Color4usv) #define glColorFormatNV MANGLE(ColorFormatNV) #define glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI) #define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI) #define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI) #define glColorMaski MANGLE(ColorMaski) #define glColorMaskIndexedEXT MANGLE(ColorMaskIndexedEXT) #define glColorMask MANGLE(ColorMask) #define glColorMaterial MANGLE(ColorMaterial) #define glColorPointerEXT MANGLE(ColorPointerEXT) #define glColorPointerListIBM MANGLE(ColorPointerListIBM) #define glColorPointer MANGLE(ColorPointer) #define glColorPointervINTEL MANGLE(ColorPointervINTEL) #define glColorSubTableEXT MANGLE(ColorSubTableEXT) #define glColorSubTable MANGLE(ColorSubTable) #define glColorTableEXT MANGLE(ColorTableEXT) #define glColorTable MANGLE(ColorTable) #define glColorTableParameterfv MANGLE(ColorTableParameterfv) #define glColorTableParameterfvSGI MANGLE(ColorTableParameterfvSGI) #define glColorTableParameteriv MANGLE(ColorTableParameteriv) #define glColorTableParameterivSGI MANGLE(ColorTableParameterivSGI) #define glColorTableSGI MANGLE(ColorTableSGI) #define glCombinerInputNV MANGLE(CombinerInputNV) #define glCombinerOutputNV MANGLE(CombinerOutputNV) #define glCombinerParameterfNV MANGLE(CombinerParameterfNV) #define glCombinerParameterfvNV MANGLE(CombinerParameterfvNV) #define glCombinerParameteriNV MANGLE(CombinerParameteriNV) #define glCombinerParameterivNV MANGLE(CombinerParameterivNV) #define glCombinerStageParameterfvNV MANGLE(CombinerStageParameterfvNV) #define glCompileShaderARB MANGLE(CompileShaderARB) #define glCompileShader MANGLE(CompileShader) #define glCompressedMultiTexImage1DEXT MANGLE(CompressedMultiTexImage1DEXT) #define glCompressedMultiTexImage2DEXT MANGLE(CompressedMultiTexImage2DEXT) #define glCompressedMultiTexImage3DEXT MANGLE(CompressedMultiTexImage3DEXT) #define glCompressedMultiTexSubImage1DEXT MANGLE(CompressedMultiTexSubImage1DEXT) #define glCompressedMultiTexSubImage2DEXT MANGLE(CompressedMultiTexSubImage2DEXT) #define glCompressedMultiTexSubImage3DEXT MANGLE(CompressedMultiTexSubImage3DEXT) #define glCompressedTexImage1DARB MANGLE(CompressedTexImage1DARB) #define glCompressedTexImage1D MANGLE(CompressedTexImage1D) #define glCompressedTexImage2DARB MANGLE(CompressedTexImage2DARB) #define glCompressedTexImage2D MANGLE(CompressedTexImage2D) #define glCompressedTexImage3DARB MANGLE(CompressedTexImage3DARB) #define glCompressedTexImage3D MANGLE(CompressedTexImage3D) #define glCompressedTexSubImage1DARB MANGLE(CompressedTexSubImage1DARB) #define glCompressedTexSubImage1D MANGLE(CompressedTexSubImage1D) #define glCompressedTexSubImage2DARB MANGLE(CompressedTexSubImage2DARB) #define glCompressedTexSubImage2D MANGLE(CompressedTexSubImage2D) #define glCompressedTexSubImage3DARB MANGLE(CompressedTexSubImage3DARB) #define glCompressedTexSubImage3D MANGLE(CompressedTexSubImage3D) #define glCompressedTextureImage1DEXT MANGLE(CompressedTextureImage1DEXT) #define glCompressedTextureImage2DEXT MANGLE(CompressedTextureImage2DEXT) #define glCompressedTextureImage3DEXT MANGLE(CompressedTextureImage3DEXT) #define glCompressedTextureSubImage1DEXT MANGLE(CompressedTextureSubImage1DEXT) #define glCompressedTextureSubImage2DEXT MANGLE(CompressedTextureSubImage2DEXT) #define glCompressedTextureSubImage3DEXT MANGLE(CompressedTextureSubImage3DEXT) #define glConvolutionFilter1DEXT MANGLE(ConvolutionFilter1DEXT) #define glConvolutionFilter1D MANGLE(ConvolutionFilter1D) #define glConvolutionFilter2DEXT MANGLE(ConvolutionFilter2DEXT) #define glConvolutionFilter2D MANGLE(ConvolutionFilter2D) #define glConvolutionParameterfEXT MANGLE(ConvolutionParameterfEXT) #define glConvolutionParameterf MANGLE(ConvolutionParameterf) #define glConvolutionParameterfvEXT MANGLE(ConvolutionParameterfvEXT) #define glConvolutionParameterfv MANGLE(ConvolutionParameterfv) #define glConvolutionParameteriEXT MANGLE(ConvolutionParameteriEXT) #define glConvolutionParameteri MANGLE(ConvolutionParameteri) #define glConvolutionParameterivEXT MANGLE(ConvolutionParameterivEXT) #define glConvolutionParameteriv MANGLE(ConvolutionParameteriv) #define glCopyBufferSubData MANGLE(CopyBufferSubData) #define glCopyColorSubTableEXT MANGLE(CopyColorSubTableEXT) #define glCopyColorSubTable MANGLE(CopyColorSubTable) #define glCopyColorTable MANGLE(CopyColorTable) #define glCopyColorTableSGI MANGLE(CopyColorTableSGI) #define glCopyConvolutionFilter1DEXT MANGLE(CopyConvolutionFilter1DEXT) #define glCopyConvolutionFilter1D MANGLE(CopyConvolutionFilter1D) #define glCopyConvolutionFilter2DEXT MANGLE(CopyConvolutionFilter2DEXT) #define glCopyConvolutionFilter2D MANGLE(CopyConvolutionFilter2D) #define glCopyImageSubDataNV MANGLE(CopyImageSubDataNV) #define glCopyMultiTexImage1DEXT MANGLE(CopyMultiTexImage1DEXT) #define glCopyMultiTexImage2DEXT MANGLE(CopyMultiTexImage2DEXT) #define glCopyMultiTexSubImage1DEXT MANGLE(CopyMultiTexSubImage1DEXT) #define glCopyMultiTexSubImage2DEXT MANGLE(CopyMultiTexSubImage2DEXT) #define glCopyMultiTexSubImage3DEXT MANGLE(CopyMultiTexSubImage3DEXT) #define glCopyPixels MANGLE(CopyPixels) #define glCopyTexImage1DEXT MANGLE(CopyTexImage1DEXT) #define glCopyTexImage1D MANGLE(CopyTexImage1D) #define glCopyTexImage2DEXT MANGLE(CopyTexImage2DEXT) #define glCopyTexImage2D MANGLE(CopyTexImage2D) #define glCopyTexSubImage1DEXT MANGLE(CopyTexSubImage1DEXT) #define glCopyTexSubImage1D MANGLE(CopyTexSubImage1D) #define glCopyTexSubImage2DEXT MANGLE(CopyTexSubImage2DEXT) #define glCopyTexSubImage2D MANGLE(CopyTexSubImage2D) #define glCopyTexSubImage3DEXT MANGLE(CopyTexSubImage3DEXT) #define glCopyTexSubImage3D MANGLE(CopyTexSubImage3D) #define glCopyTextureImage1DEXT MANGLE(CopyTextureImage1DEXT) #define glCopyTextureImage2DEXT MANGLE(CopyTextureImage2DEXT) #define glCopyTextureSubImage1DEXT MANGLE(CopyTextureSubImage1DEXT) #define glCopyTextureSubImage2DEXT MANGLE(CopyTextureSubImage2DEXT) #define glCopyTextureSubImage3DEXT MANGLE(CopyTextureSubImage3DEXT) #define glCreateDebugObjectMESA MANGLE(CreateDebugObjectMESA) #define glCreateProgram MANGLE(CreateProgram) #define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB) #define glCreateShader MANGLE(CreateShader) #define glCreateShaderObjectARB MANGLE(CreateShaderObjectARB) #define glCreateShaderProgramEXT MANGLE(CreateShaderProgramEXT) #define glCullFace MANGLE(CullFace) #define glCullParameterdvEXT MANGLE(CullParameterdvEXT) #define glCullParameterfvEXT MANGLE(CullParameterfvEXT) #define glCurrentPaletteMatrixARB MANGLE(CurrentPaletteMatrixARB) #define glDeformationMap3dSGIX MANGLE(DeformationMap3dSGIX) #define glDeformationMap3fSGIX MANGLE(DeformationMap3fSGIX) #define glDeformSGIX MANGLE(DeformSGIX) #define glDeleteAsyncMarkersSGIX MANGLE(DeleteAsyncMarkersSGIX) #define glDeleteBuffersARB MANGLE(DeleteBuffersARB) #define glDeleteBuffers MANGLE(DeleteBuffers) #define glDeleteFencesAPPLE MANGLE(DeleteFencesAPPLE) #define glDeleteFencesNV MANGLE(DeleteFencesNV) #define glDeleteFragmentShaderATI MANGLE(DeleteFragmentShaderATI) #define glDeleteFramebuffersEXT MANGLE(DeleteFramebuffersEXT) #define glDeleteFramebuffers MANGLE(DeleteFramebuffers) #define glDeleteLists MANGLE(DeleteLists) #define glDeleteObjectARB MANGLE(DeleteObjectARB) #define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV) #define glDeletePerfMonitorsAMD MANGLE(DeletePerfMonitorsAMD) #define glDeleteProgram MANGLE(DeleteProgram) #define glDeleteProgramsARB MANGLE(DeleteProgramsARB) #define glDeleteProgramsNV MANGLE(DeleteProgramsNV) #define glDeleteQueriesARB MANGLE(DeleteQueriesARB) #define glDeleteQueries MANGLE(DeleteQueries) #define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT) #define glDeleteRenderbuffers MANGLE(DeleteRenderbuffers) #define glDeleteShader MANGLE(DeleteShader) #define glDeleteSync MANGLE(DeleteSync) #define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT) #define glDeleteTextures MANGLE(DeleteTextures) #define glDeleteTransformFeedbacksNV MANGLE(DeleteTransformFeedbacksNV) #define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE) #define glDeleteVertexArrays MANGLE(DeleteVertexArrays) #define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT) #define glDepthBoundsdNV MANGLE(DepthBoundsdNV) #define glDepthBoundsEXT MANGLE(DepthBoundsEXT) #define glDepthFunc MANGLE(DepthFunc) #define glDepthMask MANGLE(DepthMask) #define glDepthRangedNV MANGLE(DepthRangedNV) #define glDepthRange MANGLE(DepthRange) #define glDetachObjectARB MANGLE(DetachObjectARB) #define glDetachShader MANGLE(DetachShader) #define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS) #define glDisableClientStateIndexedEXT MANGLE(DisableClientStateIndexedEXT) #define glDisableClientState MANGLE(DisableClientState) #define glDisablei MANGLE(Disablei) #define glDisableIndexedEXT MANGLE(DisableIndexedEXT) #define glDisable MANGLE(Disable) #define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT) #define glDisableVertexAttribAPPLE MANGLE(DisableVertexAttribAPPLE) #define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB) #define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray) #define glDrawArraysEXT MANGLE(DrawArraysEXT) #define glDrawArraysInstancedARB MANGLE(DrawArraysInstancedARB) #define glDrawArraysInstancedEXT MANGLE(DrawArraysInstancedEXT) #define glDrawArraysInstanced MANGLE(DrawArraysInstanced) #define glDrawArrays MANGLE(DrawArrays) #define glDrawBuffer MANGLE(DrawBuffer) #define glDrawBuffersARB MANGLE(DrawBuffersARB) #define glDrawBuffersATI MANGLE(DrawBuffersATI) #define glDrawBuffers MANGLE(DrawBuffers) #define glDrawElementArrayAPPLE MANGLE(DrawElementArrayAPPLE) #define glDrawElementArrayATI MANGLE(DrawElementArrayATI) #define glDrawElementsBaseVertex MANGLE(DrawElementsBaseVertex) #define glDrawElementsInstancedARB MANGLE(DrawElementsInstancedARB) #define glDrawElementsInstancedBaseVertex MANGLE(DrawElementsInstancedBaseVertex) #define glDrawElementsInstancedEXT MANGLE(DrawElementsInstancedEXT) #define glDrawElementsInstanced MANGLE(DrawElementsInstanced) #define glDrawElements MANGLE(DrawElements) #define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN) #define glDrawPixels MANGLE(DrawPixels) #define glDrawRangeElementArrayAPPLE MANGLE(DrawRangeElementArrayAPPLE) #define glDrawRangeElementArrayATI MANGLE(DrawRangeElementArrayATI) #define glDrawRangeElementsBaseVertex MANGLE(DrawRangeElementsBaseVertex) #define glDrawRangeElementsEXT MANGLE(DrawRangeElementsEXT) #define glDrawRangeElements MANGLE(DrawRangeElements) #define glDrawTransformFeedbackNV MANGLE(DrawTransformFeedbackNV) #define glEdgeFlagFormatNV MANGLE(EdgeFlagFormatNV) #define glEdgeFlag MANGLE(EdgeFlag) #define glEdgeFlagPointerEXT MANGLE(EdgeFlagPointerEXT) #define glEdgeFlagPointerListIBM MANGLE(EdgeFlagPointerListIBM) #define glEdgeFlagPointer MANGLE(EdgeFlagPointer) #define glEdgeFlagv MANGLE(EdgeFlagv) #define glEGLImageTargetRenderbufferStorageOES MANGLE(EGLImageTargetRenderbufferStorageOES) #define glEGLImageTargetTexture2DOES MANGLE(EGLImageTargetTexture2DOES) #define glElementPointerAPPLE MANGLE(ElementPointerAPPLE) #define glElementPointerATI MANGLE(ElementPointerATI) #define glEnableClientStateIndexedEXT MANGLE(EnableClientStateIndexedEXT) #define glEnableClientState MANGLE(EnableClientState) #define glEnablei MANGLE(Enablei) #define glEnableIndexedEXT MANGLE(EnableIndexedEXT) #define glEnable MANGLE(Enable) #define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT) #define glEnableVertexAttribAPPLE MANGLE(EnableVertexAttribAPPLE) #define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB) #define glEnableVertexAttribArray MANGLE(EnableVertexAttribArray) #define glEndConditionalRender MANGLE(EndConditionalRender) #define glEndConditionalRenderNV MANGLE(EndConditionalRenderNV) #define glEndFragmentShaderATI MANGLE(EndFragmentShaderATI) #define glEndList MANGLE(EndList) #define glEnd MANGLE(End) #define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV) #define glEndPerfMonitorAMD MANGLE(EndPerfMonitorAMD) #define glEndQueryARB MANGLE(EndQueryARB) #define glEndQuery MANGLE(EndQuery) #define glEndTransformFeedbackEXT MANGLE(EndTransformFeedbackEXT) #define glEndTransformFeedback MANGLE(EndTransformFeedback) #define glEndTransformFeedbackNV MANGLE(EndTransformFeedbackNV) #define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT) #define glEndVideoCaptureNV MANGLE(EndVideoCaptureNV) #define glEvalCoord1d MANGLE(EvalCoord1d) #define glEvalCoord1dv MANGLE(EvalCoord1dv) #define glEvalCoord1f MANGLE(EvalCoord1f) #define glEvalCoord1fv MANGLE(EvalCoord1fv) #define glEvalCoord2d MANGLE(EvalCoord2d) #define glEvalCoord2dv MANGLE(EvalCoord2dv) #define glEvalCoord2f MANGLE(EvalCoord2f) #define glEvalCoord2fv MANGLE(EvalCoord2fv) #define glEvalMapsNV MANGLE(EvalMapsNV) #define glEvalMesh1 MANGLE(EvalMesh1) #define glEvalMesh2 MANGLE(EvalMesh2) #define glEvalPoint1 MANGLE(EvalPoint1) #define glEvalPoint2 MANGLE(EvalPoint2) #define glExecuteProgramNV MANGLE(ExecuteProgramNV) #define glExtractComponentEXT MANGLE(ExtractComponentEXT) #define glFeedbackBuffer MANGLE(FeedbackBuffer) #define glFenceSync MANGLE(FenceSync) #define glFinalCombinerInputNV MANGLE(FinalCombinerInputNV) #define glFinishAsyncSGIX MANGLE(FinishAsyncSGIX) #define glFinishFenceAPPLE MANGLE(FinishFenceAPPLE) #define glFinishFenceNV MANGLE(FinishFenceNV) #define glFinish MANGLE(Finish) #define glFinishObjectAPPLE MANGLE(FinishObjectAPPLE) #define glFinishTextureSUNX MANGLE(FinishTextureSUNX) #define glFlush MANGLE(Flush) #define glFlushMappedBufferRangeAPPLE MANGLE(FlushMappedBufferRangeAPPLE) #define glFlushMappedBufferRange MANGLE(FlushMappedBufferRange) #define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV) #define glFlushRasterSGIX MANGLE(FlushRasterSGIX) #define glFlushVertexArrayRangeAPPLE MANGLE(FlushVertexArrayRangeAPPLE) #define glFlushVertexArrayRangeNV MANGLE(FlushVertexArrayRangeNV) #define glFogCoorddEXT MANGLE(FogCoorddEXT) #define glFogCoordd MANGLE(FogCoordd) #define glFogCoorddvEXT MANGLE(FogCoorddvEXT) #define glFogCoorddv MANGLE(FogCoorddv) #define glFogCoordfEXT MANGLE(FogCoordfEXT) #define glFogCoordf MANGLE(FogCoordf) #define glFogCoordFormatNV MANGLE(FogCoordFormatNV) #define glFogCoordfvEXT MANGLE(FogCoordfvEXT) #define glFogCoordfv MANGLE(FogCoordfv) #define glFogCoordhNV MANGLE(FogCoordhNV) #define glFogCoordhvNV MANGLE(FogCoordhvNV) #define glFogCoordPointerEXT MANGLE(FogCoordPointerEXT) #define glFogCoordPointerListIBM MANGLE(FogCoordPointerListIBM) #define glFogCoordPointer MANGLE(FogCoordPointer) #define glFogf MANGLE(Fogf) #define glFogFuncSGIS MANGLE(FogFuncSGIS) #define glFogfv MANGLE(Fogfv) #define glFogi MANGLE(Fogi) #define glFogiv MANGLE(Fogiv) #define glFragmentColorMaterialSGIX MANGLE(FragmentColorMaterialSGIX) #define glFragmentLightfSGIX MANGLE(FragmentLightfSGIX) #define glFragmentLightfvSGIX MANGLE(FragmentLightfvSGIX) #define glFragmentLightiSGIX MANGLE(FragmentLightiSGIX) #define glFragmentLightivSGIX MANGLE(FragmentLightivSGIX) #define glFragmentLightModelfSGIX MANGLE(FragmentLightModelfSGIX) #define glFragmentLightModelfvSGIX MANGLE(FragmentLightModelfvSGIX) #define glFragmentLightModeliSGIX MANGLE(FragmentLightModeliSGIX) #define glFragmentLightModelivSGIX MANGLE(FragmentLightModelivSGIX) #define glFragmentMaterialfSGIX MANGLE(FragmentMaterialfSGIX) #define glFragmentMaterialfvSGIX MANGLE(FragmentMaterialfvSGIX) #define glFragmentMaterialiSGIX MANGLE(FragmentMaterialiSGIX) #define glFragmentMaterialivSGIX MANGLE(FragmentMaterialivSGIX) #define glFramebufferDrawBufferEXT MANGLE(FramebufferDrawBufferEXT) #define glFramebufferDrawBuffersEXT MANGLE(FramebufferDrawBuffersEXT) #define glFramebufferReadBufferEXT MANGLE(FramebufferReadBufferEXT) #define glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT) #define glFramebufferRenderbuffer MANGLE(FramebufferRenderbuffer) #define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT) #define glFramebufferTexture1D MANGLE(FramebufferTexture1D) #define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT) #define glFramebufferTexture2D MANGLE(FramebufferTexture2D) #define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT) #define glFramebufferTexture3D MANGLE(FramebufferTexture3D) #define glFramebufferTextureARB MANGLE(FramebufferTextureARB) #define glFramebufferTextureEXT MANGLE(FramebufferTextureEXT) #define glFramebufferTextureFaceARB MANGLE(FramebufferTextureFaceARB) #define glFramebufferTextureFaceEXT MANGLE(FramebufferTextureFaceEXT) #define glFramebufferTextureFace MANGLE(FramebufferTextureFace) #define glFramebufferTextureLayerARB MANGLE(FramebufferTextureLayerARB) #define glFramebufferTextureLayerEXT MANGLE(FramebufferTextureLayerEXT) #define glFramebufferTextureLayer MANGLE(FramebufferTextureLayer) #define glFramebufferTexture MANGLE(FramebufferTexture) #define glFrameTerminatorGREMEDY MANGLE(FrameTerminatorGREMEDY) #define glFrameZoomSGIX MANGLE(FrameZoomSGIX) #define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI) #define glFrontFace MANGLE(FrontFace) #define glFrustum MANGLE(Frustum) #define glGenAsyncMarkersSGIX MANGLE(GenAsyncMarkersSGIX) #define glGenBuffersARB MANGLE(GenBuffersARB) #define glGenBuffers MANGLE(GenBuffers) #define glGenerateMipmapEXT MANGLE(GenerateMipmapEXT) #define glGenerateMipmap MANGLE(GenerateMipmap) #define glGenerateMultiTexMipmapEXT MANGLE(GenerateMultiTexMipmapEXT) #define glGenerateTextureMipmapEXT MANGLE(GenerateTextureMipmapEXT) #define glGenFencesAPPLE MANGLE(GenFencesAPPLE) #define glGenFencesNV MANGLE(GenFencesNV) #define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI) #define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT) #define glGenFramebuffers MANGLE(GenFramebuffers) #define glGenLists MANGLE(GenLists) #define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV) #define glGenPerfMonitorsAMD MANGLE(GenPerfMonitorsAMD) #define glGenProgramsARB MANGLE(GenProgramsARB) #define glGenProgramsNV MANGLE(GenProgramsNV) #define glGenQueriesARB MANGLE(GenQueriesARB) #define glGenQueries MANGLE(GenQueries) #define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT) #define glGenRenderbuffers MANGLE(GenRenderbuffers) #define glGenSymbolsEXT MANGLE(GenSymbolsEXT) #define glGenTexturesEXT MANGLE(GenTexturesEXT) #define glGenTextures MANGLE(GenTextures) #define glGenTransformFeedbacksNV MANGLE(GenTransformFeedbacksNV) #define glGenVertexArraysAPPLE MANGLE(GenVertexArraysAPPLE) #define glGenVertexArrays MANGLE(GenVertexArrays) #define glGenVertexShadersEXT MANGLE(GenVertexShadersEXT) #define glGetActiveAttribARB MANGLE(GetActiveAttribARB) #define glGetActiveAttrib MANGLE(GetActiveAttrib) #define glGetActiveUniformARB MANGLE(GetActiveUniformARB) #define glGetActiveUniformBlockiv MANGLE(GetActiveUniformBlockiv) #define glGetActiveUniformBlockName MANGLE(GetActiveUniformBlockName) #define glGetActiveUniform MANGLE(GetActiveUniform) #define glGetActiveUniformName MANGLE(GetActiveUniformName) #define glGetActiveUniformsiv MANGLE(GetActiveUniformsiv) #define glGetActiveVaryingNV MANGLE(GetActiveVaryingNV) #define glGetArrayObjectfvATI MANGLE(GetArrayObjectfvATI) #define glGetArrayObjectivATI MANGLE(GetArrayObjectivATI) #define glGetAttachedObjectsARB MANGLE(GetAttachedObjectsARB) #define glGetAttachedShaders MANGLE(GetAttachedShaders) #define glGetAttribLocationARB MANGLE(GetAttribLocationARB) #define glGetAttribLocation MANGLE(GetAttribLocation) #define glGetBooleanIndexedvEXT MANGLE(GetBooleanIndexedvEXT) #define glGetBooleani_v MANGLE(GetBooleani_v) #define glGetBooleanv MANGLE(GetBooleanv) #define glGetBufferParameteri64v MANGLE(GetBufferParameteri64v) #define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB) #define glGetBufferParameteriv MANGLE(GetBufferParameteriv) #define glGetBufferParameterui64vNV MANGLE(GetBufferParameterui64vNV) #define glGetBufferPointervARB MANGLE(GetBufferPointervARB) #define glGetBufferPointerv MANGLE(GetBufferPointerv) #define glGetBufferSubDataARB MANGLE(GetBufferSubDataARB) #define glGetBufferSubData MANGLE(GetBufferSubData) #define glGetClipPlane MANGLE(GetClipPlane) #define glGetColorTableEXT MANGLE(GetColorTableEXT) #define glGetColorTable MANGLE(GetColorTable) #define glGetColorTableParameterfvEXT MANGLE(GetColorTableParameterfvEXT) #define glGetColorTableParameterfv MANGLE(GetColorTableParameterfv) #define glGetColorTableParameterfvSGI MANGLE(GetColorTableParameterfvSGI) #define glGetColorTableParameterivEXT MANGLE(GetColorTableParameterivEXT) #define glGetColorTableParameteriv MANGLE(GetColorTableParameteriv) #define glGetColorTableParameterivSGI MANGLE(GetColorTableParameterivSGI) #define glGetColorTableSGI MANGLE(GetColorTableSGI) #define glGetCombinerInputParameterfvNV MANGLE(GetCombinerInputParameterfvNV) #define glGetCombinerInputParameterivNV MANGLE(GetCombinerInputParameterivNV) #define glGetCombinerOutputParameterfvNV MANGLE(GetCombinerOutputParameterfvNV) #define glGetCombinerOutputParameterivNV MANGLE(GetCombinerOutputParameterivNV) #define glGetCombinerStageParameterfvNV MANGLE(GetCombinerStageParameterfvNV) #define glGetCompressedMultiTexImageEXT MANGLE(GetCompressedMultiTexImageEXT) #define glGetCompressedTexImageARB MANGLE(GetCompressedTexImageARB) #define glGetCompressedTexImage MANGLE(GetCompressedTexImage) #define glGetCompressedTextureImageEXT MANGLE(GetCompressedTextureImageEXT) #define glGetConvolutionFilterEXT MANGLE(GetConvolutionFilterEXT) #define glGetConvolutionFilter MANGLE(GetConvolutionFilter) #define glGetConvolutionParameterfvEXT MANGLE(GetConvolutionParameterfvEXT) #define glGetConvolutionParameterfv MANGLE(GetConvolutionParameterfv) #define glGetConvolutionParameterivEXT MANGLE(GetConvolutionParameterivEXT) #define glGetConvolutionParameteriv MANGLE(GetConvolutionParameteriv) #define glGetDebugLogLengthMESA MANGLE(GetDebugLogLengthMESA) #define glGetDebugLogMESA MANGLE(GetDebugLogMESA) #define glGetDetailTexFuncSGIS MANGLE(GetDetailTexFuncSGIS) #define glGetDoubleIndexedvEXT MANGLE(GetDoubleIndexedvEXT) #define glGetDoublev MANGLE(GetDoublev) #define glGetError MANGLE(GetError) #define glGetFenceivNV MANGLE(GetFenceivNV) #define glGetFinalCombinerInputParameterfvNV MANGLE(GetFinalCombinerInputParameterfvNV) #define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV) #define glGetFloatIndexedvEXT MANGLE(GetFloatIndexedvEXT) #define glGetFloatv MANGLE(GetFloatv) #define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS) #define glGetFragDataLocationEXT MANGLE(GetFragDataLocationEXT) #define glGetFragDataLocation MANGLE(GetFragDataLocation) #define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX) #define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX) #define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX) #define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX) #define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT) #define glGetFramebufferAttachmentParameteriv MANGLE(GetFramebufferAttachmentParameteriv) #define glGetFramebufferParameterivEXT MANGLE(GetFramebufferParameterivEXT) #define glGetHandleARB MANGLE(GetHandleARB) #define glGetHistogramEXT MANGLE(GetHistogramEXT) #define glGetHistogram MANGLE(GetHistogram) #define glGetHistogramParameterfvEXT MANGLE(GetHistogramParameterfvEXT) #define glGetHistogramParameterfv MANGLE(GetHistogramParameterfv) #define glGetHistogramParameterivEXT MANGLE(GetHistogramParameterivEXT) #define glGetHistogramParameteriv MANGLE(GetHistogramParameteriv) #define glGetImageTransformParameterfvHP MANGLE(GetImageTransformParameterfvHP) #define glGetImageTransformParameterivHP MANGLE(GetImageTransformParameterivHP) #define glGetInfoLogARB MANGLE(GetInfoLogARB) #define glGetInstrumentsSGIX MANGLE(GetInstrumentsSGIX) #define glGetInteger64i_v MANGLE(GetInteger64i_v) #define glGetInteger64v MANGLE(GetInteger64v) #define glGetIntegerIndexedvEXT MANGLE(GetIntegerIndexedvEXT) #define glGetIntegeri_v MANGLE(GetIntegeri_v) #define glGetIntegerui64i_vNV MANGLE(GetIntegerui64i_vNV) #define glGetIntegerui64vNV MANGLE(GetIntegerui64vNV) #define glGetIntegerv MANGLE(GetIntegerv) #define glGetInvariantBooleanvEXT MANGLE(GetInvariantBooleanvEXT) #define glGetInvariantFloatvEXT MANGLE(GetInvariantFloatvEXT) #define glGetInvariantIntegervEXT MANGLE(GetInvariantIntegervEXT) #define glGetLightfv MANGLE(GetLightfv) #define glGetLightiv MANGLE(GetLightiv) #define glGetListParameterfvSGIX MANGLE(GetListParameterfvSGIX) #define glGetListParameterivSGIX MANGLE(GetListParameterivSGIX) #define glGetLocalConstantBooleanvEXT MANGLE(GetLocalConstantBooleanvEXT) #define glGetLocalConstantFloatvEXT MANGLE(GetLocalConstantFloatvEXT) #define glGetLocalConstantIntegervEXT MANGLE(GetLocalConstantIntegervEXT) #define glGetMapAttribParameterfvNV MANGLE(GetMapAttribParameterfvNV) #define glGetMapAttribParameterivNV MANGLE(GetMapAttribParameterivNV) #define glGetMapControlPointsNV MANGLE(GetMapControlPointsNV) #define glGetMapdv MANGLE(GetMapdv) #define glGetMapfv MANGLE(GetMapfv) #define glGetMapiv MANGLE(GetMapiv) #define glGetMapParameterfvNV MANGLE(GetMapParameterfvNV) #define glGetMapParameterivNV MANGLE(GetMapParameterivNV) #define glGetMaterialfv MANGLE(GetMaterialfv) #define glGetMaterialiv MANGLE(GetMaterialiv) #define glGetMinmaxEXT MANGLE(GetMinmaxEXT) #define glGetMinmax MANGLE(GetMinmax) #define glGetMinmaxParameterfvEXT MANGLE(GetMinmaxParameterfvEXT) #define glGetMinmaxParameterfv MANGLE(GetMinmaxParameterfv) #define glGetMinmaxParameterivEXT MANGLE(GetMinmaxParameterivEXT) #define glGetMinmaxParameteriv MANGLE(GetMinmaxParameteriv) #define glGetMultisamplefv MANGLE(GetMultisamplefv) #define glGetMultisamplefvNV MANGLE(GetMultisamplefvNV) #define glGetMultiTexEnvfvEXT MANGLE(GetMultiTexEnvfvEXT) #define glGetMultiTexEnvivEXT MANGLE(GetMultiTexEnvivEXT) #define glGetMultiTexGendvEXT MANGLE(GetMultiTexGendvEXT) #define glGetMultiTexGenfvEXT MANGLE(GetMultiTexGenfvEXT) #define glGetMultiTexGenivEXT MANGLE(GetMultiTexGenivEXT) #define glGetMultiTexImageEXT MANGLE(GetMultiTexImageEXT) #define glGetMultiTexLevelParameterfvEXT MANGLE(GetMultiTexLevelParameterfvEXT) #define glGetMultiTexLevelParameterivEXT MANGLE(GetMultiTexLevelParameterivEXT) #define glGetMultiTexParameterfvEXT MANGLE(GetMultiTexParameterfvEXT) #define glGetMultiTexParameterIivEXT MANGLE(GetMultiTexParameterIivEXT) #define glGetMultiTexParameterIuivEXT MANGLE(GetMultiTexParameterIuivEXT) #define glGetMultiTexParameterivEXT MANGLE(GetMultiTexParameterivEXT) #define glGetNamedBufferParameterivEXT MANGLE(GetNamedBufferParameterivEXT) #define glGetNamedBufferParameterui64vNV MANGLE(GetNamedBufferParameterui64vNV) #define glGetNamedBufferPointervEXT MANGLE(GetNamedBufferPointervEXT) #define glGetNamedBufferSubDataEXT MANGLE(GetNamedBufferSubDataEXT) #define glGetNamedFramebufferAttachmentParameterivEXT MANGLE(GetNamedFramebufferAttachmentParameterivEXT) #define glGetNamedProgramivEXT MANGLE(GetNamedProgramivEXT) #define glGetNamedProgramLocalParameterdvEXT MANGLE(GetNamedProgramLocalParameterdvEXT) #define glGetNamedProgramLocalParameterfvEXT MANGLE(GetNamedProgramLocalParameterfvEXT) #define glGetNamedProgramLocalParameterIivEXT MANGLE(GetNamedProgramLocalParameterIivEXT) #define glGetNamedProgramLocalParameterIuivEXT MANGLE(GetNamedProgramLocalParameterIuivEXT) #define glGetNamedProgramStringEXT MANGLE(GetNamedProgramStringEXT) #define glGetNamedRenderbufferParameterivEXT MANGLE(GetNamedRenderbufferParameterivEXT) #define glGetObjectBufferfvATI MANGLE(GetObjectBufferfvATI) #define glGetObjectBufferivATI MANGLE(GetObjectBufferivATI) #define glGetObjectParameterfvARB MANGLE(GetObjectParameterfvARB) #define glGetObjectParameterivAPPLE MANGLE(GetObjectParameterivAPPLE) #define glGetObjectParameterivARB MANGLE(GetObjectParameterivARB) #define glGetOcclusionQueryivNV MANGLE(GetOcclusionQueryivNV) #define glGetOcclusionQueryuivNV MANGLE(GetOcclusionQueryuivNV) #define glGetPerfMonitorCounterDataAMD MANGLE(GetPerfMonitorCounterDataAMD) #define glGetPerfMonitorCounterInfoAMD MANGLE(GetPerfMonitorCounterInfoAMD) #define glGetPerfMonitorCountersAMD MANGLE(GetPerfMonitorCountersAMD) #define glGetPerfMonitorCounterStringAMD MANGLE(GetPerfMonitorCounterStringAMD) #define glGetPerfMonitorGroupsAMD MANGLE(GetPerfMonitorGroupsAMD) #define glGetPerfMonitorGroupStringAMD MANGLE(GetPerfMonitorGroupStringAMD) #define glGetPixelMapfv MANGLE(GetPixelMapfv) #define glGetPixelMapuiv MANGLE(GetPixelMapuiv) #define glGetPixelMapusv MANGLE(GetPixelMapusv) #define glGetPixelTexGenParameterfvSGIS MANGLE(GetPixelTexGenParameterfvSGIS) #define glGetPixelTexGenParameterivSGIS MANGLE(GetPixelTexGenParameterivSGIS) #define glGetPointerIndexedvEXT MANGLE(GetPointerIndexedvEXT) #define glGetPointervEXT MANGLE(GetPointervEXT) #define glGetPointerv MANGLE(GetPointerv) #define glGetPolygonStipple MANGLE(GetPolygonStipple) #define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB) #define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB) #define glGetProgramEnvParameterIivNV MANGLE(GetProgramEnvParameterIivNV) #define glGetProgramEnvParameterIuivNV MANGLE(GetProgramEnvParameterIuivNV) #define glGetProgramInfoLog MANGLE(GetProgramInfoLog) #define glGetProgramivARB MANGLE(GetProgramivARB) #define glGetProgramiv MANGLE(GetProgramiv) #define glGetProgramivNV MANGLE(GetProgramivNV) #define glGetProgramLocalParameterdvARB MANGLE(GetProgramLocalParameterdvARB) #define glGetProgramLocalParameterfvARB MANGLE(GetProgramLocalParameterfvARB) #define glGetProgramLocalParameterIivNV MANGLE(GetProgramLocalParameterIivNV) #define glGetProgramLocalParameterIuivNV MANGLE(GetProgramLocalParameterIuivNV) #define glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV) #define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV) #define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV) #define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV) #define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA) #define glGetProgramStringARB MANGLE(GetProgramStringARB) #define glGetProgramStringNV MANGLE(GetProgramStringNV) #define glGetQueryivARB MANGLE(GetQueryivARB) #define glGetQueryiv MANGLE(GetQueryiv) #define glGetQueryObjecti64vEXT MANGLE(GetQueryObjecti64vEXT) #define glGetQueryObjectivARB MANGLE(GetQueryObjectivARB) #define glGetQueryObjectiv MANGLE(GetQueryObjectiv) #define glGetQueryObjectui64vEXT MANGLE(GetQueryObjectui64vEXT) #define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB) #define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv) #define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT) #define glGetRenderbufferParameteriv MANGLE(GetRenderbufferParameteriv) #define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT) #define glGetSeparableFilter MANGLE(GetSeparableFilter) #define glGetShaderInfoLog MANGLE(GetShaderInfoLog) #define glGetShaderiv MANGLE(GetShaderiv) #define glGetShaderSourceARB MANGLE(GetShaderSourceARB) #define glGetShaderSource MANGLE(GetShaderSource) #define glGetSharpenTexFuncSGIS MANGLE(GetSharpenTexFuncSGIS) #define glGetStringi MANGLE(GetStringi) #define glGetString MANGLE(GetString) #define glGetSynciv MANGLE(GetSynciv) #define glGetTexBumpParameterfvATI MANGLE(GetTexBumpParameterfvATI) #define glGetTexBumpParameterivATI MANGLE(GetTexBumpParameterivATI) #define glGetTexEnvfv MANGLE(GetTexEnvfv) #define glGetTexEnviv MANGLE(GetTexEnviv) #define glGetTexFilterFuncSGIS MANGLE(GetTexFilterFuncSGIS) #define glGetTexGendv MANGLE(GetTexGendv) #define glGetTexGenfv MANGLE(GetTexGenfv) #define glGetTexGeniv MANGLE(GetTexGeniv) #define glGetTexImage MANGLE(GetTexImage) #define glGetTexLevelParameterfv MANGLE(GetTexLevelParameterfv) #define glGetTexLevelParameteriv MANGLE(GetTexLevelParameteriv) #define glGetTexParameterfv MANGLE(GetTexParameterfv) #define glGetTexParameterIivEXT MANGLE(GetTexParameterIivEXT) #define glGetTexParameterIiv MANGLE(GetTexParameterIiv) #define glGetTexParameterIuivEXT MANGLE(GetTexParameterIuivEXT) #define glGetTexParameterIuiv MANGLE(GetTexParameterIuiv) #define glGetTexParameteriv MANGLE(GetTexParameteriv) #define glGetTexParameterPointervAPPLE MANGLE(GetTexParameterPointervAPPLE) #define glGetTextureImageEXT MANGLE(GetTextureImageEXT) #define glGetTextureLevelParameterfvEXT MANGLE(GetTextureLevelParameterfvEXT) #define glGetTextureLevelParameterivEXT MANGLE(GetTextureLevelParameterivEXT) #define glGetTextureParameterfvEXT MANGLE(GetTextureParameterfvEXT) #define glGetTextureParameterIivEXT MANGLE(GetTextureParameterIivEXT) #define glGetTextureParameterIuivEXT MANGLE(GetTextureParameterIuivEXT) #define glGetTextureParameterivEXT MANGLE(GetTextureParameterivEXT) #define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV) #define glGetTransformFeedbackVaryingEXT MANGLE(GetTransformFeedbackVaryingEXT) #define glGetTransformFeedbackVarying MANGLE(GetTransformFeedbackVarying) #define glGetTransformFeedbackVaryingNV MANGLE(GetTransformFeedbackVaryingNV) #define glGetUniformBlockIndex MANGLE(GetUniformBlockIndex) #define glGetUniformBufferSizeEXT MANGLE(GetUniformBufferSizeEXT) #define glGetUniformfvARB MANGLE(GetUniformfvARB) #define glGetUniformfv MANGLE(GetUniformfv) #define glGetUniformIndices MANGLE(GetUniformIndices) #define glGetUniformivARB MANGLE(GetUniformivARB) #define glGetUniformiv MANGLE(GetUniformiv) #define glGetUniformLocationARB MANGLE(GetUniformLocationARB) #define glGetUniformLocation MANGLE(GetUniformLocation) #define glGetUniformOffsetEXT MANGLE(GetUniformOffsetEXT) #define glGetUniformui64vNV MANGLE(GetUniformui64vNV) #define glGetUniformuivEXT MANGLE(GetUniformuivEXT) #define glGetUniformuiv MANGLE(GetUniformuiv) #define glGetVariantArrayObjectfvATI MANGLE(GetVariantArrayObjectfvATI) #define glGetVariantArrayObjectivATI MANGLE(GetVariantArrayObjectivATI) #define glGetVariantBooleanvEXT MANGLE(GetVariantBooleanvEXT) #define glGetVariantFloatvEXT MANGLE(GetVariantFloatvEXT) #define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT) #define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT) #define glGetVaryingLocationNV MANGLE(GetVaryingLocationNV) #define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI) #define glGetVertexAttribArrayObjectivATI MANGLE(GetVertexAttribArrayObjectivATI) #define glGetVertexAttribdvARB MANGLE(GetVertexAttribdvARB) #define glGetVertexAttribdv MANGLE(GetVertexAttribdv) #define glGetVertexAttribdvNV MANGLE(GetVertexAttribdvNV) #define glGetVertexAttribfvARB MANGLE(GetVertexAttribfvARB) #define glGetVertexAttribfv MANGLE(GetVertexAttribfv) #define glGetVertexAttribfvNV MANGLE(GetVertexAttribfvNV) #define glGetVertexAttribIivEXT MANGLE(GetVertexAttribIivEXT) #define glGetVertexAttribIiv MANGLE(GetVertexAttribIiv) #define glGetVertexAttribIuivEXT MANGLE(GetVertexAttribIuivEXT) #define glGetVertexAttribIuiv MANGLE(GetVertexAttribIuiv) #define glGetVertexAttribivARB MANGLE(GetVertexAttribivARB) #define glGetVertexAttribiv MANGLE(GetVertexAttribiv) #define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV) #define glGetVertexAttribPointervARB MANGLE(GetVertexAttribPointervARB) #define glGetVertexAttribPointerv MANGLE(GetVertexAttribPointerv) #define glGetVertexAttribPointervNV MANGLE(GetVertexAttribPointervNV) #define glGetVideoCaptureivNV MANGLE(GetVideoCaptureivNV) #define glGetVideoCaptureStreamdvNV MANGLE(GetVideoCaptureStreamdvNV) #define glGetVideoCaptureStreamfvNV MANGLE(GetVideoCaptureStreamfvNV) #define glGetVideoCaptureStreamivNV MANGLE(GetVideoCaptureStreamivNV) #define glGetVideoi64vNV MANGLE(GetVideoi64vNV) #define glGetVideoivNV MANGLE(GetVideoivNV) #define glGetVideoui64vNV MANGLE(GetVideoui64vNV) #define glGetVideouivNV MANGLE(GetVideouivNV) #define glGlobalAlphaFactorbSUN MANGLE(GlobalAlphaFactorbSUN) #define glGlobalAlphaFactordSUN MANGLE(GlobalAlphaFactordSUN) #define glGlobalAlphaFactorfSUN MANGLE(GlobalAlphaFactorfSUN) #define glGlobalAlphaFactoriSUN MANGLE(GlobalAlphaFactoriSUN) #define glGlobalAlphaFactorsSUN MANGLE(GlobalAlphaFactorsSUN) #define glGlobalAlphaFactorubSUN MANGLE(GlobalAlphaFactorubSUN) #define glGlobalAlphaFactoruiSUN MANGLE(GlobalAlphaFactoruiSUN) #define glGlobalAlphaFactorusSUN MANGLE(GlobalAlphaFactorusSUN) #define glHint MANGLE(Hint) #define glHintPGI MANGLE(HintPGI) #define glHistogramEXT MANGLE(HistogramEXT) #define glHistogram MANGLE(Histogram) #define glIglooInterfaceSGIX MANGLE(IglooInterfaceSGIX) #define glImageTransformParameterfHP MANGLE(ImageTransformParameterfHP) #define glImageTransformParameterfvHP MANGLE(ImageTransformParameterfvHP) #define glImageTransformParameteriHP MANGLE(ImageTransformParameteriHP) #define glImageTransformParameterivHP MANGLE(ImageTransformParameterivHP) #define glIndexd MANGLE(Indexd) #define glIndexdv MANGLE(Indexdv) #define glIndexf MANGLE(Indexf) #define glIndexFormatNV MANGLE(IndexFormatNV) #define glIndexFuncEXT MANGLE(IndexFuncEXT) #define glIndexfv MANGLE(Indexfv) #define glIndexi MANGLE(Indexi) #define glIndexiv MANGLE(Indexiv) #define glIndexMask MANGLE(IndexMask) #define glIndexMaterialEXT MANGLE(IndexMaterialEXT) #define glIndexPointerEXT MANGLE(IndexPointerEXT) #define glIndexPointerListIBM MANGLE(IndexPointerListIBM) #define glIndexPointer MANGLE(IndexPointer) #define glIndexs MANGLE(Indexs) #define glIndexsv MANGLE(Indexsv) #define glIndexub MANGLE(Indexub) #define glIndexubv MANGLE(Indexubv) #define glInitNames MANGLE(InitNames) #define glInsertComponentEXT MANGLE(InsertComponentEXT) #define glInstrumentsBufferSGIX MANGLE(InstrumentsBufferSGIX) #define glInterleavedArrays MANGLE(InterleavedArrays) #define glIsAsyncMarkerSGIX MANGLE(IsAsyncMarkerSGIX) #define glIsBufferARB MANGLE(IsBufferARB) #define glIsBuffer MANGLE(IsBuffer) #define glIsBufferResidentNV MANGLE(IsBufferResidentNV) #define glIsEnabledi MANGLE(IsEnabledi) #define glIsEnabledIndexedEXT MANGLE(IsEnabledIndexedEXT) #define glIsEnabled MANGLE(IsEnabled) #define glIsFenceAPPLE MANGLE(IsFenceAPPLE) #define glIsFenceNV MANGLE(IsFenceNV) #define glIsFramebufferEXT MANGLE(IsFramebufferEXT) #define glIsFramebuffer MANGLE(IsFramebuffer) #define glIsList MANGLE(IsList) #define glIsNamedBufferResidentNV MANGLE(IsNamedBufferResidentNV) #define glIsObjectBufferATI MANGLE(IsObjectBufferATI) #define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV) #define glIsProgramARB MANGLE(IsProgramARB) #define glIsProgram MANGLE(IsProgram) #define glIsProgramNV MANGLE(IsProgramNV) #define glIsQueryARB MANGLE(IsQueryARB) #define glIsQuery MANGLE(IsQuery) #define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT) #define glIsRenderbuffer MANGLE(IsRenderbuffer) #define glIsShader MANGLE(IsShader) #define glIsSync MANGLE(IsSync) #define glIsTextureEXT MANGLE(IsTextureEXT) #define glIsTexture MANGLE(IsTexture) #define glIsTransformFeedbackNV MANGLE(IsTransformFeedbackNV) #define glIsVariantEnabledEXT MANGLE(IsVariantEnabledEXT) #define glIsVertexArrayAPPLE MANGLE(IsVertexArrayAPPLE) #define glIsVertexArray MANGLE(IsVertexArray) #define glIsVertexAttribEnabledAPPLE MANGLE(IsVertexAttribEnabledAPPLE) #define glLightEnviSGIX MANGLE(LightEnviSGIX) #define glLightf MANGLE(Lightf) #define glLightfv MANGLE(Lightfv) #define glLighti MANGLE(Lighti) #define glLightiv MANGLE(Lightiv) #define glLightModelf MANGLE(LightModelf) #define glLightModelfv MANGLE(LightModelfv) #define glLightModeli MANGLE(LightModeli) #define glLightModeliv MANGLE(LightModeliv) #define glLineStipple MANGLE(LineStipple) #define glLineWidth MANGLE(LineWidth) #define glLinkProgramARB MANGLE(LinkProgramARB) #define glLinkProgram MANGLE(LinkProgram) #define glListBase MANGLE(ListBase) #define glListParameterfSGIX MANGLE(ListParameterfSGIX) #define glListParameterfvSGIX MANGLE(ListParameterfvSGIX) #define glListParameteriSGIX MANGLE(ListParameteriSGIX) #define glListParameterivSGIX MANGLE(ListParameterivSGIX) #define glLoadIdentityDeformationMapSGIX MANGLE(LoadIdentityDeformationMapSGIX) #define glLoadIdentity MANGLE(LoadIdentity) #define glLoadMatrixd MANGLE(LoadMatrixd) #define glLoadMatrixf MANGLE(LoadMatrixf) #define glLoadName MANGLE(LoadName) #define glLoadProgramNV MANGLE(LoadProgramNV) #define glLoadTransposeMatrixdARB MANGLE(LoadTransposeMatrixdARB) #define glLoadTransposeMatrixd MANGLE(LoadTransposeMatrixd) #define glLoadTransposeMatrixfARB MANGLE(LoadTransposeMatrixfARB) #define glLoadTransposeMatrixf MANGLE(LoadTransposeMatrixf) #define glLockArraysEXT MANGLE(LockArraysEXT) #define glLogicOp MANGLE(LogicOp) #define glMakeBufferNonResidentNV MANGLE(MakeBufferNonResidentNV) #define glMakeBufferResidentNV MANGLE(MakeBufferResidentNV) #define glMap1d MANGLE(Map1d) #define glMap1f MANGLE(Map1f) #define glMap2d MANGLE(Map2d) #define glMap2f MANGLE(Map2f) #define glMapBufferARB MANGLE(MapBufferARB) #define glMapBuffer MANGLE(MapBuffer) #define glMapBufferRange MANGLE(MapBufferRange) #define glMapControlPointsNV MANGLE(MapControlPointsNV) #define glMapGrid1d MANGLE(MapGrid1d) #define glMapGrid1f MANGLE(MapGrid1f) #define glMapGrid2d MANGLE(MapGrid2d) #define glMapGrid2f MANGLE(MapGrid2f) #define glMapNamedBufferEXT MANGLE(MapNamedBufferEXT) #define glMapObjectBufferATI MANGLE(MapObjectBufferATI) #define glMapParameterfvNV MANGLE(MapParameterfvNV) #define glMapParameterivNV MANGLE(MapParameterivNV) #define glMapVertexAttrib1dAPPLE MANGLE(MapVertexAttrib1dAPPLE) #define glMapVertexAttrib1fAPPLE MANGLE(MapVertexAttrib1fAPPLE) #define glMapVertexAttrib2dAPPLE MANGLE(MapVertexAttrib2dAPPLE) #define glMapVertexAttrib2fAPPLE MANGLE(MapVertexAttrib2fAPPLE) #define glMaterialf MANGLE(Materialf) #define glMaterialfv MANGLE(Materialfv) #define glMateriali MANGLE(Materiali) #define glMaterialiv MANGLE(Materialiv) #define glMatrixFrustumEXT MANGLE(MatrixFrustumEXT) #define glMatrixIndexPointerARB MANGLE(MatrixIndexPointerARB) #define glMatrixIndexubvARB MANGLE(MatrixIndexubvARB) #define glMatrixIndexuivARB MANGLE(MatrixIndexuivARB) #define glMatrixIndexusvARB MANGLE(MatrixIndexusvARB) #define glMatrixLoaddEXT MANGLE(MatrixLoaddEXT) #define glMatrixLoadfEXT MANGLE(MatrixLoadfEXT) #define glMatrixLoadIdentityEXT MANGLE(MatrixLoadIdentityEXT) #define glMatrixLoadTransposedEXT MANGLE(MatrixLoadTransposedEXT) #define glMatrixLoadTransposefEXT MANGLE(MatrixLoadTransposefEXT) #define glMatrixMode MANGLE(MatrixMode) #define glMatrixMultdEXT MANGLE(MatrixMultdEXT) #define glMatrixMultfEXT MANGLE(MatrixMultfEXT) #define glMatrixMultTransposedEXT MANGLE(MatrixMultTransposedEXT) #define glMatrixMultTransposefEXT MANGLE(MatrixMultTransposefEXT) #define glMatrixOrthoEXT MANGLE(MatrixOrthoEXT) #define glMatrixPopEXT MANGLE(MatrixPopEXT) #define glMatrixPushEXT MANGLE(MatrixPushEXT) #define glMatrixRotatedEXT MANGLE(MatrixRotatedEXT) #define glMatrixRotatefEXT MANGLE(MatrixRotatefEXT) #define glMatrixScaledEXT MANGLE(MatrixScaledEXT) #define glMatrixScalefEXT MANGLE(MatrixScalefEXT) #define glMatrixTranslatedEXT MANGLE(MatrixTranslatedEXT) #define glMatrixTranslatefEXT MANGLE(MatrixTranslatefEXT) #define glMinmaxEXT MANGLE(MinmaxEXT) #define glMinmax MANGLE(Minmax) #define glMinSampleShading MANGLE(MinSampleShading) #define glMultiDrawArraysEXT MANGLE(MultiDrawArraysEXT) #define glMultiDrawArrays MANGLE(MultiDrawArrays) #define glMultiDrawElementArrayAPPLE MANGLE(MultiDrawElementArrayAPPLE) #define glMultiDrawElementsBaseVertex MANGLE(MultiDrawElementsBaseVertex) #define glMultiDrawElementsEXT MANGLE(MultiDrawElementsEXT) #define glMultiDrawElements MANGLE(MultiDrawElements) #define glMultiDrawRangeElementArrayAPPLE MANGLE(MultiDrawRangeElementArrayAPPLE) #define glMultiModeDrawArraysIBM MANGLE(MultiModeDrawArraysIBM) #define glMultiModeDrawElementsIBM MANGLE(MultiModeDrawElementsIBM) #define glMultiTexBufferEXT MANGLE(MultiTexBufferEXT) #define glMultiTexCoord1dARB MANGLE(MultiTexCoord1dARB) #define glMultiTexCoord1d MANGLE(MultiTexCoord1d) #define glMultiTexCoord1dvARB MANGLE(MultiTexCoord1dvARB) #define glMultiTexCoord1dv MANGLE(MultiTexCoord1dv) #define glMultiTexCoord1fARB MANGLE(MultiTexCoord1fARB) #define glMultiTexCoord1f MANGLE(MultiTexCoord1f) #define glMultiTexCoord1fvARB MANGLE(MultiTexCoord1fvARB) #define glMultiTexCoord1fv MANGLE(MultiTexCoord1fv) #define glMultiTexCoord1hNV MANGLE(MultiTexCoord1hNV) #define glMultiTexCoord1hvNV MANGLE(MultiTexCoord1hvNV) #define glMultiTexCoord1iARB MANGLE(MultiTexCoord1iARB) #define glMultiTexCoord1i MANGLE(MultiTexCoord1i) #define glMultiTexCoord1ivARB MANGLE(MultiTexCoord1ivARB) #define glMultiTexCoord1iv MANGLE(MultiTexCoord1iv) #define glMultiTexCoord1sARB MANGLE(MultiTexCoord1sARB) #define glMultiTexCoord1s MANGLE(MultiTexCoord1s) #define glMultiTexCoord1svARB MANGLE(MultiTexCoord1svARB) #define glMultiTexCoord1sv MANGLE(MultiTexCoord1sv) #define glMultiTexCoord2dARB MANGLE(MultiTexCoord2dARB) #define glMultiTexCoord2d MANGLE(MultiTexCoord2d) #define glMultiTexCoord2dvARB MANGLE(MultiTexCoord2dvARB) #define glMultiTexCoord2dv MANGLE(MultiTexCoord2dv) #define glMultiTexCoord2fARB MANGLE(MultiTexCoord2fARB) #define glMultiTexCoord2f MANGLE(MultiTexCoord2f) #define glMultiTexCoord2fvARB MANGLE(MultiTexCoord2fvARB) #define glMultiTexCoord2fv MANGLE(MultiTexCoord2fv) #define glMultiTexCoord2hNV MANGLE(MultiTexCoord2hNV) #define glMultiTexCoord2hvNV MANGLE(MultiTexCoord2hvNV) #define glMultiTexCoord2iARB MANGLE(MultiTexCoord2iARB) #define glMultiTexCoord2i MANGLE(MultiTexCoord2i) #define glMultiTexCoord2ivARB MANGLE(MultiTexCoord2ivARB) #define glMultiTexCoord2iv MANGLE(MultiTexCoord2iv) #define glMultiTexCoord2sARB MANGLE(MultiTexCoord2sARB) #define glMultiTexCoord2s MANGLE(MultiTexCoord2s) #define glMultiTexCoord2svARB MANGLE(MultiTexCoord2svARB) #define glMultiTexCoord2sv MANGLE(MultiTexCoord2sv) #define glMultiTexCoord3dARB MANGLE(MultiTexCoord3dARB) #define glMultiTexCoord3d MANGLE(MultiTexCoord3d) #define glMultiTexCoord3dvARB MANGLE(MultiTexCoord3dvARB) #define glMultiTexCoord3dv MANGLE(MultiTexCoord3dv) #define glMultiTexCoord3fARB MANGLE(MultiTexCoord3fARB) #define glMultiTexCoord3f MANGLE(MultiTexCoord3f) #define glMultiTexCoord3fvARB MANGLE(MultiTexCoord3fvARB) #define glMultiTexCoord3fv MANGLE(MultiTexCoord3fv) #define glMultiTexCoord3hNV MANGLE(MultiTexCoord3hNV) #define glMultiTexCoord3hvNV MANGLE(MultiTexCoord3hvNV) #define glMultiTexCoord3iARB MANGLE(MultiTexCoord3iARB) #define glMultiTexCoord3i MANGLE(MultiTexCoord3i) #define glMultiTexCoord3ivARB MANGLE(MultiTexCoord3ivARB) #define glMultiTexCoord3iv MANGLE(MultiTexCoord3iv) #define glMultiTexCoord3sARB MANGLE(MultiTexCoord3sARB) #define glMultiTexCoord3s MANGLE(MultiTexCoord3s) #define glMultiTexCoord3svARB MANGLE(MultiTexCoord3svARB) #define glMultiTexCoord3sv MANGLE(MultiTexCoord3sv) #define glMultiTexCoord4dARB MANGLE(MultiTexCoord4dARB) #define glMultiTexCoord4d MANGLE(MultiTexCoord4d) #define glMultiTexCoord4dvARB MANGLE(MultiTexCoord4dvARB) #define glMultiTexCoord4dv MANGLE(MultiTexCoord4dv) #define glMultiTexCoord4fARB MANGLE(MultiTexCoord4fARB) #define glMultiTexCoord4f MANGLE(MultiTexCoord4f) #define glMultiTexCoord4fvARB MANGLE(MultiTexCoord4fvARB) #define glMultiTexCoord4fv MANGLE(MultiTexCoord4fv) #define glMultiTexCoord4hNV MANGLE(MultiTexCoord4hNV) #define glMultiTexCoord4hvNV MANGLE(MultiTexCoord4hvNV) #define glMultiTexCoord4iARB MANGLE(MultiTexCoord4iARB) #define glMultiTexCoord4i MANGLE(MultiTexCoord4i) #define glMultiTexCoord4ivARB MANGLE(MultiTexCoord4ivARB) #define glMultiTexCoord4iv MANGLE(MultiTexCoord4iv) #define glMultiTexCoord4sARB MANGLE(MultiTexCoord4sARB) #define glMultiTexCoord4s MANGLE(MultiTexCoord4s) #define glMultiTexCoord4svARB MANGLE(MultiTexCoord4svARB) #define glMultiTexCoord4sv MANGLE(MultiTexCoord4sv) #define glMultiTexCoordPointerEXT MANGLE(MultiTexCoordPointerEXT) #define glMultiTexEnvfEXT MANGLE(MultiTexEnvfEXT) #define glMultiTexEnvfvEXT MANGLE(MultiTexEnvfvEXT) #define glMultiTexEnviEXT MANGLE(MultiTexEnviEXT) #define glMultiTexEnvivEXT MANGLE(MultiTexEnvivEXT) #define glMultiTexGendEXT MANGLE(MultiTexGendEXT) #define glMultiTexGendvEXT MANGLE(MultiTexGendvEXT) #define glMultiTexGenfEXT MANGLE(MultiTexGenfEXT) #define glMultiTexGenfvEXT MANGLE(MultiTexGenfvEXT) #define glMultiTexGeniEXT MANGLE(MultiTexGeniEXT) #define glMultiTexGenivEXT MANGLE(MultiTexGenivEXT) #define glMultiTexImage1DEXT MANGLE(MultiTexImage1DEXT) #define glMultiTexImage2DEXT MANGLE(MultiTexImage2DEXT) #define glMultiTexImage3DEXT MANGLE(MultiTexImage3DEXT) #define glMultiTexParameterfEXT MANGLE(MultiTexParameterfEXT) #define glMultiTexParameterfvEXT MANGLE(MultiTexParameterfvEXT) #define glMultiTexParameteriEXT MANGLE(MultiTexParameteriEXT) #define glMultiTexParameterIivEXT MANGLE(MultiTexParameterIivEXT) #define glMultiTexParameterIuivEXT MANGLE(MultiTexParameterIuivEXT) #define glMultiTexParameterivEXT MANGLE(MultiTexParameterivEXT) #define glMultiTexRenderbufferEXT MANGLE(MultiTexRenderbufferEXT) #define glMultiTexSubImage1DEXT MANGLE(MultiTexSubImage1DEXT) #define glMultiTexSubImage2DEXT MANGLE(MultiTexSubImage2DEXT) #define glMultiTexSubImage3DEXT MANGLE(MultiTexSubImage3DEXT) #define glMultMatrixd MANGLE(MultMatrixd) #define glMultMatrixf MANGLE(MultMatrixf) #define glMultTransposeMatrixdARB MANGLE(MultTransposeMatrixdARB) #define glMultTransposeMatrixd MANGLE(MultTransposeMatrixd) #define glMultTransposeMatrixfARB MANGLE(MultTransposeMatrixfARB) #define glMultTransposeMatrixf MANGLE(MultTransposeMatrixf) #define glNamedBufferDataEXT MANGLE(NamedBufferDataEXT) #define glNamedBufferSubDataEXT MANGLE(NamedBufferSubDataEXT) #define glNamedFramebufferRenderbufferEXT MANGLE(NamedFramebufferRenderbufferEXT) #define glNamedFramebufferTexture1DEXT MANGLE(NamedFramebufferTexture1DEXT) #define glNamedFramebufferTexture2DEXT MANGLE(NamedFramebufferTexture2DEXT) #define glNamedFramebufferTexture3DEXT MANGLE(NamedFramebufferTexture3DEXT) #define glNamedFramebufferTextureEXT MANGLE(NamedFramebufferTextureEXT) #define glNamedFramebufferTextureFaceEXT MANGLE(NamedFramebufferTextureFaceEXT) #define glNamedFramebufferTextureLayerEXT MANGLE(NamedFramebufferTextureLayerEXT) #define glNamedMakeBufferNonResidentNV MANGLE(NamedMakeBufferNonResidentNV) #define glNamedMakeBufferResidentNV MANGLE(NamedMakeBufferResidentNV) #define glNamedProgramLocalParameter4dEXT MANGLE(NamedProgramLocalParameter4dEXT) #define glNamedProgramLocalParameter4dvEXT MANGLE(NamedProgramLocalParameter4dvEXT) #define glNamedProgramLocalParameter4fEXT MANGLE(NamedProgramLocalParameter4fEXT) #define glNamedProgramLocalParameter4fvEXT MANGLE(NamedProgramLocalParameter4fvEXT) #define glNamedProgramLocalParameterI4iEXT MANGLE(NamedProgramLocalParameterI4iEXT) #define glNamedProgramLocalParameterI4ivEXT MANGLE(NamedProgramLocalParameterI4ivEXT) #define glNamedProgramLocalParameterI4uiEXT MANGLE(NamedProgramLocalParameterI4uiEXT) #define glNamedProgramLocalParameterI4uivEXT MANGLE(NamedProgramLocalParameterI4uivEXT) #define glNamedProgramLocalParameters4fvEXT MANGLE(NamedProgramLocalParameters4fvEXT) #define glNamedProgramLocalParametersI4ivEXT MANGLE(NamedProgramLocalParametersI4ivEXT) #define glNamedProgramLocalParametersI4uivEXT MANGLE(NamedProgramLocalParametersI4uivEXT) #define glNamedProgramStringEXT MANGLE(NamedProgramStringEXT) #define glNamedRenderbufferStorageEXT MANGLE(NamedRenderbufferStorageEXT) #define glNamedRenderbufferStorageMultisampleCoverageEXT MANGLE(NamedRenderbufferStorageMultisampleCoverageEXT) #define glNamedRenderbufferStorageMultisampleEXT MANGLE(NamedRenderbufferStorageMultisampleEXT) #define glNewList MANGLE(NewList) #define glNewObjectBufferATI MANGLE(NewObjectBufferATI) #define glNormal3b MANGLE(Normal3b) #define glNormal3bv MANGLE(Normal3bv) #define glNormal3d MANGLE(Normal3d) #define glNormal3dv MANGLE(Normal3dv) #define glNormal3f MANGLE(Normal3f) #define glNormal3fVertex3fSUN MANGLE(Normal3fVertex3fSUN) #define glNormal3fVertex3fvSUN MANGLE(Normal3fVertex3fvSUN) #define glNormal3fv MANGLE(Normal3fv) #define glNormal3hNV MANGLE(Normal3hNV) #define glNormal3hvNV MANGLE(Normal3hvNV) #define glNormal3i MANGLE(Normal3i) #define glNormal3iv MANGLE(Normal3iv) #define glNormal3s MANGLE(Normal3s) #define glNormal3sv MANGLE(Normal3sv) #define glNormalFormatNV MANGLE(NormalFormatNV) #define glNormalPointerEXT MANGLE(NormalPointerEXT) #define glNormalPointerListIBM MANGLE(NormalPointerListIBM) #define glNormalPointer MANGLE(NormalPointer) #define glNormalPointervINTEL MANGLE(NormalPointervINTEL) #define glNormalStream3bATI MANGLE(NormalStream3bATI) #define glNormalStream3bvATI MANGLE(NormalStream3bvATI) #define glNormalStream3dATI MANGLE(NormalStream3dATI) #define glNormalStream3dvATI MANGLE(NormalStream3dvATI) #define glNormalStream3fATI MANGLE(NormalStream3fATI) #define glNormalStream3fvATI MANGLE(NormalStream3fvATI) #define glNormalStream3iATI MANGLE(NormalStream3iATI) #define glNormalStream3ivATI MANGLE(NormalStream3ivATI) #define glNormalStream3sATI MANGLE(NormalStream3sATI) #define glNormalStream3svATI MANGLE(NormalStream3svATI) #define glObjectPurgeableAPPLE MANGLE(ObjectPurgeableAPPLE) #define glObjectUnpurgeableAPPLE MANGLE(ObjectUnpurgeableAPPLE) #define glOrtho MANGLE(Ortho) #define glPassTexCoordATI MANGLE(PassTexCoordATI) #define glPassThrough MANGLE(PassThrough) #define glPauseTransformFeedbackNV MANGLE(PauseTransformFeedbackNV) #define glPixelDataRangeNV MANGLE(PixelDataRangeNV) #define glPixelMapfv MANGLE(PixelMapfv) #define glPixelMapuiv MANGLE(PixelMapuiv) #define glPixelMapusv MANGLE(PixelMapusv) #define glPixelStoref MANGLE(PixelStoref) #define glPixelStorei MANGLE(PixelStorei) #define glPixelTexGenParameterfSGIS MANGLE(PixelTexGenParameterfSGIS) #define glPixelTexGenParameterfvSGIS MANGLE(PixelTexGenParameterfvSGIS) #define glPixelTexGenParameteriSGIS MANGLE(PixelTexGenParameteriSGIS) #define glPixelTexGenParameterivSGIS MANGLE(PixelTexGenParameterivSGIS) #define glPixelTexGenSGIX MANGLE(PixelTexGenSGIX) #define glPixelTransferf MANGLE(PixelTransferf) #define glPixelTransferi MANGLE(PixelTransferi) #define glPixelTransformParameterfEXT MANGLE(PixelTransformParameterfEXT) #define glPixelTransformParameterfvEXT MANGLE(PixelTransformParameterfvEXT) #define glPixelTransformParameteriEXT MANGLE(PixelTransformParameteriEXT) #define glPixelTransformParameterivEXT MANGLE(PixelTransformParameterivEXT) #define glPixelZoom MANGLE(PixelZoom) #define glPNTrianglesfATI MANGLE(PNTrianglesfATI) #define glPNTrianglesiATI MANGLE(PNTrianglesiATI) #define glPointParameterfARB MANGLE(PointParameterfARB) #define glPointParameterfEXT MANGLE(PointParameterfEXT) #define glPointParameterf MANGLE(PointParameterf) #define glPointParameterfSGIS MANGLE(PointParameterfSGIS) #define glPointParameterfvARB MANGLE(PointParameterfvARB) #define glPointParameterfvEXT MANGLE(PointParameterfvEXT) #define glPointParameterfv MANGLE(PointParameterfv) #define glPointParameterfvSGIS MANGLE(PointParameterfvSGIS) #define glPointParameteri MANGLE(PointParameteri) #define glPointParameteriNV MANGLE(PointParameteriNV) #define glPointParameteriv MANGLE(PointParameteriv) #define glPointParameterivNV MANGLE(PointParameterivNV) #define glPointSize MANGLE(PointSize) #define glPollAsyncSGIX MANGLE(PollAsyncSGIX) #define glPollInstrumentsSGIX MANGLE(PollInstrumentsSGIX) #define glPolygonMode MANGLE(PolygonMode) #define glPolygonOffsetEXT MANGLE(PolygonOffsetEXT) #define glPolygonOffset MANGLE(PolygonOffset) #define glPolygonStipple MANGLE(PolygonStipple) #define glPopAttrib MANGLE(PopAttrib) #define glPopClientAttrib MANGLE(PopClientAttrib) #define glPopMatrix MANGLE(PopMatrix) #define glPopName MANGLE(PopName) #define glPresentFrameDualFillNV MANGLE(PresentFrameDualFillNV) #define glPresentFrameKeyedNV MANGLE(PresentFrameKeyedNV) #define glPrimitiveRestartIndex MANGLE(PrimitiveRestartIndex) #define glPrimitiveRestartIndexNV MANGLE(PrimitiveRestartIndexNV) #define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV) #define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT) #define glPrioritizeTextures MANGLE(PrioritizeTextures) #define glProgramBufferParametersfvNV MANGLE(ProgramBufferParametersfvNV) #define glProgramBufferParametersIivNV MANGLE(ProgramBufferParametersIivNV) #define glProgramBufferParametersIuivNV MANGLE(ProgramBufferParametersIuivNV) #define glProgramCallbackMESA MANGLE(ProgramCallbackMESA) #define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB) #define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB) #define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB) #define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB) #define glProgramEnvParameterI4iNV MANGLE(ProgramEnvParameterI4iNV) #define glProgramEnvParameterI4ivNV MANGLE(ProgramEnvParameterI4ivNV) #define glProgramEnvParameterI4uiNV MANGLE(ProgramEnvParameterI4uiNV) #define glProgramEnvParameterI4uivNV MANGLE(ProgramEnvParameterI4uivNV) #define glProgramEnvParameters4fvEXT MANGLE(ProgramEnvParameters4fvEXT) #define glProgramEnvParametersI4ivNV MANGLE(ProgramEnvParametersI4ivNV) #define glProgramEnvParametersI4uivNV MANGLE(ProgramEnvParametersI4uivNV) #define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB) #define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB) #define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB) #define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB) #define glProgramLocalParameterI4iNV MANGLE(ProgramLocalParameterI4iNV) #define glProgramLocalParameterI4ivNV MANGLE(ProgramLocalParameterI4ivNV) #define glProgramLocalParameterI4uiNV MANGLE(ProgramLocalParameterI4uiNV) #define glProgramLocalParameterI4uivNV MANGLE(ProgramLocalParameterI4uivNV) #define glProgramLocalParameters4fvEXT MANGLE(ProgramLocalParameters4fvEXT) #define glProgramLocalParametersI4ivNV MANGLE(ProgramLocalParametersI4ivNV) #define glProgramLocalParametersI4uivNV MANGLE(ProgramLocalParametersI4uivNV) #define glProgramNamedParameter4dNV MANGLE(ProgramNamedParameter4dNV) #define glProgramNamedParameter4dvNV MANGLE(ProgramNamedParameter4dvNV) #define glProgramNamedParameter4fNV MANGLE(ProgramNamedParameter4fNV) #define glProgramNamedParameter4fvNV MANGLE(ProgramNamedParameter4fvNV) #define glProgramParameter4dNV MANGLE(ProgramParameter4dNV) #define glProgramParameter4dvNV MANGLE(ProgramParameter4dvNV) #define glProgramParameter4fNV MANGLE(ProgramParameter4fNV) #define glProgramParameter4fvNV MANGLE(ProgramParameter4fvNV) #define glProgramParameteriARB MANGLE(ProgramParameteriARB) #define glProgramParameteriEXT MANGLE(ProgramParameteriEXT) #define glProgramParameteri MANGLE(ProgramParameteri) #define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV) #define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV) #define glProgramStringARB MANGLE(ProgramStringARB) #define glProgramUniform1fEXT MANGLE(ProgramUniform1fEXT) #define glProgramUniform1fvEXT MANGLE(ProgramUniform1fvEXT) #define glProgramUniform1iEXT MANGLE(ProgramUniform1iEXT) #define glProgramUniform1ivEXT MANGLE(ProgramUniform1ivEXT) #define glProgramUniform1uiEXT MANGLE(ProgramUniform1uiEXT) #define glProgramUniform1uivEXT MANGLE(ProgramUniform1uivEXT) #define glProgramUniform2fEXT MANGLE(ProgramUniform2fEXT) #define glProgramUniform2fvEXT MANGLE(ProgramUniform2fvEXT) #define glProgramUniform2iEXT MANGLE(ProgramUniform2iEXT) #define glProgramUniform2ivEXT MANGLE(ProgramUniform2ivEXT) #define glProgramUniform2uiEXT MANGLE(ProgramUniform2uiEXT) #define glProgramUniform2uivEXT MANGLE(ProgramUniform2uivEXT) #define glProgramUniform3fEXT MANGLE(ProgramUniform3fEXT) #define glProgramUniform3fvEXT MANGLE(ProgramUniform3fvEXT) #define glProgramUniform3iEXT MANGLE(ProgramUniform3iEXT) #define glProgramUniform3ivEXT MANGLE(ProgramUniform3ivEXT) #define glProgramUniform3uiEXT MANGLE(ProgramUniform3uiEXT) #define glProgramUniform3uivEXT MANGLE(ProgramUniform3uivEXT) #define glProgramUniform4fEXT MANGLE(ProgramUniform4fEXT) #define glProgramUniform4fvEXT MANGLE(ProgramUniform4fvEXT) #define glProgramUniform4iEXT MANGLE(ProgramUniform4iEXT) #define glProgramUniform4ivEXT MANGLE(ProgramUniform4ivEXT) #define glProgramUniform4uiEXT MANGLE(ProgramUniform4uiEXT) #define glProgramUniform4uivEXT MANGLE(ProgramUniform4uivEXT) #define glProgramUniformMatrix2fvEXT MANGLE(ProgramUniformMatrix2fvEXT) #define glProgramUniformMatrix2x3fvEXT MANGLE(ProgramUniformMatrix2x3fvEXT) #define glProgramUniformMatrix2x4fvEXT MANGLE(ProgramUniformMatrix2x4fvEXT) #define glProgramUniformMatrix3fvEXT MANGLE(ProgramUniformMatrix3fvEXT) #define glProgramUniformMatrix3x2fvEXT MANGLE(ProgramUniformMatrix3x2fvEXT) #define glProgramUniformMatrix3x4fvEXT MANGLE(ProgramUniformMatrix3x4fvEXT) #define glProgramUniformMatrix4fvEXT MANGLE(ProgramUniformMatrix4fvEXT) #define glProgramUniformMatrix4x2fvEXT MANGLE(ProgramUniformMatrix4x2fvEXT) #define glProgramUniformMatrix4x3fvEXT MANGLE(ProgramUniformMatrix4x3fvEXT) #define glProgramUniformui64NV MANGLE(ProgramUniformui64NV) #define glProgramUniformui64vNV MANGLE(ProgramUniformui64vNV) #define glProgramVertexLimitNV MANGLE(ProgramVertexLimitNV) #define glProvokingVertexEXT MANGLE(ProvokingVertexEXT) #define glProvokingVertex MANGLE(ProvokingVertex) #define glPushAttrib MANGLE(PushAttrib) #define glPushClientAttribDefaultEXT MANGLE(PushClientAttribDefaultEXT) #define glPushClientAttrib MANGLE(PushClientAttrib) #define glPushMatrix MANGLE(PushMatrix) #define glPushName MANGLE(PushName) #define glRasterPos2d MANGLE(RasterPos2d) #define glRasterPos2dv MANGLE(RasterPos2dv) #define glRasterPos2f MANGLE(RasterPos2f) #define glRasterPos2fv MANGLE(RasterPos2fv) #define glRasterPos2i MANGLE(RasterPos2i) #define glRasterPos2iv MANGLE(RasterPos2iv) #define glRasterPos2s MANGLE(RasterPos2s) #define glRasterPos2sv MANGLE(RasterPos2sv) #define glRasterPos3d MANGLE(RasterPos3d) #define glRasterPos3dv MANGLE(RasterPos3dv) #define glRasterPos3f MANGLE(RasterPos3f) #define glRasterPos3fv MANGLE(RasterPos3fv) #define glRasterPos3i MANGLE(RasterPos3i) #define glRasterPos3iv MANGLE(RasterPos3iv) #define glRasterPos3s MANGLE(RasterPos3s) #define glRasterPos3sv MANGLE(RasterPos3sv) #define glRasterPos4d MANGLE(RasterPos4d) #define glRasterPos4dv MANGLE(RasterPos4dv) #define glRasterPos4f MANGLE(RasterPos4f) #define glRasterPos4fv MANGLE(RasterPos4fv) #define glRasterPos4i MANGLE(RasterPos4i) #define glRasterPos4iv MANGLE(RasterPos4iv) #define glRasterPos4s MANGLE(RasterPos4s) #define glRasterPos4sv MANGLE(RasterPos4sv) #define glReadBuffer MANGLE(ReadBuffer) #define glReadInstrumentsSGIX MANGLE(ReadInstrumentsSGIX) #define glReadPixels MANGLE(ReadPixels) #define glRectd MANGLE(Rectd) #define glRectdv MANGLE(Rectdv) #define glRectf MANGLE(Rectf) #define glRectfv MANGLE(Rectfv) #define glRecti MANGLE(Recti) #define glRectiv MANGLE(Rectiv) #define glRects MANGLE(Rects) #define glRectsv MANGLE(Rectsv) #define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX) #define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT) #define glRenderbufferStorage MANGLE(RenderbufferStorage) #define glRenderbufferStorageMultisampleCoverageNV MANGLE(RenderbufferStorageMultisampleCoverageNV) #define glRenderbufferStorageMultisampleEXT MANGLE(RenderbufferStorageMultisampleEXT) #define glRenderbufferStorageMultisample MANGLE(RenderbufferStorageMultisample) #define glRenderMode MANGLE(RenderMode) #define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN) #define glReplacementCodeubSUN MANGLE(ReplacementCodeubSUN) #define glReplacementCodeubvSUN MANGLE(ReplacementCodeubvSUN) #define glReplacementCodeuiColor3fVertex3fSUN MANGLE(ReplacementCodeuiColor3fVertex3fSUN) #define glReplacementCodeuiColor3fVertex3fvSUN MANGLE(ReplacementCodeuiColor3fVertex3fvSUN) #define glReplacementCodeuiColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fSUN) #define glReplacementCodeuiColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fvSUN) #define glReplacementCodeuiColor4ubVertex3fSUN MANGLE(ReplacementCodeuiColor4ubVertex3fSUN) #define glReplacementCodeuiColor4ubVertex3fvSUN MANGLE(ReplacementCodeuiColor4ubVertex3fvSUN) #define glReplacementCodeuiNormal3fVertex3fSUN MANGLE(ReplacementCodeuiNormal3fVertex3fSUN) #define glReplacementCodeuiNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiNormal3fVertex3fvSUN) #define glReplacementCodeuiSUN MANGLE(ReplacementCodeuiSUN) #define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) #define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) #define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) #define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) #define glReplacementCodeuiTexCoord2fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fSUN) #define glReplacementCodeuiTexCoord2fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fvSUN) #define glReplacementCodeuiVertex3fSUN MANGLE(ReplacementCodeuiVertex3fSUN) #define glReplacementCodeuiVertex3fvSUN MANGLE(ReplacementCodeuiVertex3fvSUN) #define glReplacementCodeuivSUN MANGLE(ReplacementCodeuivSUN) #define glReplacementCodeusSUN MANGLE(ReplacementCodeusSUN) #define glReplacementCodeusvSUN MANGLE(ReplacementCodeusvSUN) #define glRequestResidentProgramsNV MANGLE(RequestResidentProgramsNV) #define glResetHistogramEXT MANGLE(ResetHistogramEXT) #define glResetHistogram MANGLE(ResetHistogram) #define glResetMinmaxEXT MANGLE(ResetMinmaxEXT) #define glResetMinmax MANGLE(ResetMinmax) #define glResizeBuffersMESA MANGLE(ResizeBuffersMESA) #define glResumeTransformFeedbackNV MANGLE(ResumeTransformFeedbackNV) #define glRotated MANGLE(Rotated) #define glRotatef MANGLE(Rotatef) #define glSampleCoverageARB MANGLE(SampleCoverageARB) #define glSampleCoverage MANGLE(SampleCoverage) #define glSampleMapATI MANGLE(SampleMapATI) #define glSampleMaskEXT MANGLE(SampleMaskEXT) #define glSampleMaski MANGLE(SampleMaski) #define glSampleMaskIndexedNV MANGLE(SampleMaskIndexedNV) #define glSampleMaskSGIS MANGLE(SampleMaskSGIS) #define glSamplePatternEXT MANGLE(SamplePatternEXT) #define glSamplePatternSGIS MANGLE(SamplePatternSGIS) #define glScaled MANGLE(Scaled) #define glScalef MANGLE(Scalef) #define glScissor MANGLE(Scissor) #define glSecondaryColor3bEXT MANGLE(SecondaryColor3bEXT) #define glSecondaryColor3b MANGLE(SecondaryColor3b) #define glSecondaryColor3bvEXT MANGLE(SecondaryColor3bvEXT) #define glSecondaryColor3bv MANGLE(SecondaryColor3bv) #define glSecondaryColor3dEXT MANGLE(SecondaryColor3dEXT) #define glSecondaryColor3d MANGLE(SecondaryColor3d) #define glSecondaryColor3dvEXT MANGLE(SecondaryColor3dvEXT) #define glSecondaryColor3dv MANGLE(SecondaryColor3dv) #define glSecondaryColor3fEXT MANGLE(SecondaryColor3fEXT) #define glSecondaryColor3f MANGLE(SecondaryColor3f) #define glSecondaryColor3fvEXT MANGLE(SecondaryColor3fvEXT) #define glSecondaryColor3fv MANGLE(SecondaryColor3fv) #define glSecondaryColor3hNV MANGLE(SecondaryColor3hNV) #define glSecondaryColor3hvNV MANGLE(SecondaryColor3hvNV) #define glSecondaryColor3iEXT MANGLE(SecondaryColor3iEXT) #define glSecondaryColor3i MANGLE(SecondaryColor3i) #define glSecondaryColor3ivEXT MANGLE(SecondaryColor3ivEXT) #define glSecondaryColor3iv MANGLE(SecondaryColor3iv) #define glSecondaryColor3sEXT MANGLE(SecondaryColor3sEXT) #define glSecondaryColor3s MANGLE(SecondaryColor3s) #define glSecondaryColor3svEXT MANGLE(SecondaryColor3svEXT) #define glSecondaryColor3sv MANGLE(SecondaryColor3sv) #define glSecondaryColor3ubEXT MANGLE(SecondaryColor3ubEXT) #define glSecondaryColor3ub MANGLE(SecondaryColor3ub) #define glSecondaryColor3ubvEXT MANGLE(SecondaryColor3ubvEXT) #define glSecondaryColor3ubv MANGLE(SecondaryColor3ubv) #define glSecondaryColor3uiEXT MANGLE(SecondaryColor3uiEXT) #define glSecondaryColor3ui MANGLE(SecondaryColor3ui) #define glSecondaryColor3uivEXT MANGLE(SecondaryColor3uivEXT) #define glSecondaryColor3uiv MANGLE(SecondaryColor3uiv) #define glSecondaryColor3usEXT MANGLE(SecondaryColor3usEXT) #define glSecondaryColor3us MANGLE(SecondaryColor3us) #define glSecondaryColor3usvEXT MANGLE(SecondaryColor3usvEXT) #define glSecondaryColor3usv MANGLE(SecondaryColor3usv) #define glSecondaryColorFormatNV MANGLE(SecondaryColorFormatNV) #define glSecondaryColorPointerEXT MANGLE(SecondaryColorPointerEXT) #define glSecondaryColorPointerListIBM MANGLE(SecondaryColorPointerListIBM) #define glSecondaryColorPointer MANGLE(SecondaryColorPointer) #define glSelectBuffer MANGLE(SelectBuffer) #define glSelectPerfMonitorCountersAMD MANGLE(SelectPerfMonitorCountersAMD) #define glSeparableFilter2DEXT MANGLE(SeparableFilter2DEXT) #define glSeparableFilter2D MANGLE(SeparableFilter2D) #define glSetFenceAPPLE MANGLE(SetFenceAPPLE) #define glSetFenceNV MANGLE(SetFenceNV) #define glSetFragmentShaderConstantATI MANGLE(SetFragmentShaderConstantATI) #define glSetInvariantEXT MANGLE(SetInvariantEXT) #define glSetLocalConstantEXT MANGLE(SetLocalConstantEXT) #define glShadeModel MANGLE(ShadeModel) #define glShaderOp1EXT MANGLE(ShaderOp1EXT) #define glShaderOp2EXT MANGLE(ShaderOp2EXT) #define glShaderOp3EXT MANGLE(ShaderOp3EXT) #define glShaderSourceARB MANGLE(ShaderSourceARB) #define glShaderSource MANGLE(ShaderSource) #define glSharpenTexFuncSGIS MANGLE(SharpenTexFuncSGIS) #define glSpriteParameterfSGIX MANGLE(SpriteParameterfSGIX) #define glSpriteParameterfvSGIX MANGLE(SpriteParameterfvSGIX) #define glSpriteParameteriSGIX MANGLE(SpriteParameteriSGIX) #define glSpriteParameterivSGIX MANGLE(SpriteParameterivSGIX) #define glStartInstrumentsSGIX MANGLE(StartInstrumentsSGIX) #define glStencilClearTagEXT MANGLE(StencilClearTagEXT) #define glStencilFunc MANGLE(StencilFunc) #define glStencilFuncSeparateATI MANGLE(StencilFuncSeparateATI) #define glStencilFuncSeparate MANGLE(StencilFuncSeparate) #define glStencilMask MANGLE(StencilMask) #define glStencilMaskSeparate MANGLE(StencilMaskSeparate) #define glStencilOp MANGLE(StencilOp) #define glStencilOpSeparateATI MANGLE(StencilOpSeparateATI) #define glStencilOpSeparate MANGLE(StencilOpSeparate) #define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX) #define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY) #define glSwizzleEXT MANGLE(SwizzleEXT) #define glTagSampleBufferSGIX MANGLE(TagSampleBufferSGIX) #define glTangent3bEXT MANGLE(Tangent3bEXT) #define glTangent3bvEXT MANGLE(Tangent3bvEXT) #define glTangent3dEXT MANGLE(Tangent3dEXT) #define glTangent3dvEXT MANGLE(Tangent3dvEXT) #define glTangent3fEXT MANGLE(Tangent3fEXT) #define glTangent3fvEXT MANGLE(Tangent3fvEXT) #define glTangent3iEXT MANGLE(Tangent3iEXT) #define glTangent3ivEXT MANGLE(Tangent3ivEXT) #define glTangent3sEXT MANGLE(Tangent3sEXT) #define glTangent3svEXT MANGLE(Tangent3svEXT) #define glTangentPointerEXT MANGLE(TangentPointerEXT) #define glTbufferMask3DFX MANGLE(TbufferMask3DFX) #define glTessellationFactorAMD MANGLE(TessellationFactorAMD) #define glTessellationModeAMD MANGLE(TessellationModeAMD) #define glTestFenceAPPLE MANGLE(TestFenceAPPLE) #define glTestFenceNV MANGLE(TestFenceNV) #define glTestObjectAPPLE MANGLE(TestObjectAPPLE) #define glTexBufferARB MANGLE(TexBufferARB) #define glTexBufferEXT MANGLE(TexBufferEXT) #define glTexBuffer MANGLE(TexBuffer) #define glTexBumpParameterfvATI MANGLE(TexBumpParameterfvATI) #define glTexBumpParameterivATI MANGLE(TexBumpParameterivATI) #define glTexCoord1d MANGLE(TexCoord1d) #define glTexCoord1dv MANGLE(TexCoord1dv) #define glTexCoord1f MANGLE(TexCoord1f) #define glTexCoord1fv MANGLE(TexCoord1fv) #define glTexCoord1hNV MANGLE(TexCoord1hNV) #define glTexCoord1hvNV MANGLE(TexCoord1hvNV) #define glTexCoord1i MANGLE(TexCoord1i) #define glTexCoord1iv MANGLE(TexCoord1iv) #define glTexCoord1s MANGLE(TexCoord1s) #define glTexCoord1sv MANGLE(TexCoord1sv) #define glTexCoord2d MANGLE(TexCoord2d) #define glTexCoord2dv MANGLE(TexCoord2dv) #define glTexCoord2fColor3fVertex3fSUN MANGLE(TexCoord2fColor3fVertex3fSUN) #define glTexCoord2fColor3fVertex3fvSUN MANGLE(TexCoord2fColor3fVertex3fvSUN) #define glTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fSUN) #define glTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fvSUN) #define glTexCoord2fColor4ubVertex3fSUN MANGLE(TexCoord2fColor4ubVertex3fSUN) #define glTexCoord2fColor4ubVertex3fvSUN MANGLE(TexCoord2fColor4ubVertex3fvSUN) #define glTexCoord2f MANGLE(TexCoord2f) #define glTexCoord2fNormal3fVertex3fSUN MANGLE(TexCoord2fNormal3fVertex3fSUN) #define glTexCoord2fNormal3fVertex3fvSUN MANGLE(TexCoord2fNormal3fVertex3fvSUN) #define glTexCoord2fVertex3fSUN MANGLE(TexCoord2fVertex3fSUN) #define glTexCoord2fVertex3fvSUN MANGLE(TexCoord2fVertex3fvSUN) #define glTexCoord2fv MANGLE(TexCoord2fv) #define glTexCoord2hNV MANGLE(TexCoord2hNV) #define glTexCoord2hvNV MANGLE(TexCoord2hvNV) #define glTexCoord2i MANGLE(TexCoord2i) #define glTexCoord2iv MANGLE(TexCoord2iv) #define glTexCoord2s MANGLE(TexCoord2s) #define glTexCoord2sv MANGLE(TexCoord2sv) #define glTexCoord3d MANGLE(TexCoord3d) #define glTexCoord3dv MANGLE(TexCoord3dv) #define glTexCoord3f MANGLE(TexCoord3f) #define glTexCoord3fv MANGLE(TexCoord3fv) #define glTexCoord3hNV MANGLE(TexCoord3hNV) #define glTexCoord3hvNV MANGLE(TexCoord3hvNV) #define glTexCoord3i MANGLE(TexCoord3i) #define glTexCoord3iv MANGLE(TexCoord3iv) #define glTexCoord3s MANGLE(TexCoord3s) #define glTexCoord3sv MANGLE(TexCoord3sv) #define glTexCoord4d MANGLE(TexCoord4d) #define glTexCoord4dv MANGLE(TexCoord4dv) #define glTexCoord4fColor4fNormal3fVertex4fSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fSUN) #define glTexCoord4fColor4fNormal3fVertex4fvSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fvSUN) #define glTexCoord4f MANGLE(TexCoord4f) #define glTexCoord4fVertex4fSUN MANGLE(TexCoord4fVertex4fSUN) #define glTexCoord4fVertex4fvSUN MANGLE(TexCoord4fVertex4fvSUN) #define glTexCoord4fv MANGLE(TexCoord4fv) #define glTexCoord4hNV MANGLE(TexCoord4hNV) #define glTexCoord4hvNV MANGLE(TexCoord4hvNV) #define glTexCoord4i MANGLE(TexCoord4i) #define glTexCoord4iv MANGLE(TexCoord4iv) #define glTexCoord4s MANGLE(TexCoord4s) #define glTexCoord4sv MANGLE(TexCoord4sv) #define glTexCoordFormatNV MANGLE(TexCoordFormatNV) #define glTexCoordPointerEXT MANGLE(TexCoordPointerEXT) #define glTexCoordPointerListIBM MANGLE(TexCoordPointerListIBM) #define glTexCoordPointer MANGLE(TexCoordPointer) #define glTexCoordPointervINTEL MANGLE(TexCoordPointervINTEL) #define glTexEnvf MANGLE(TexEnvf) #define glTexEnvfv MANGLE(TexEnvfv) #define glTexEnvi MANGLE(TexEnvi) #define glTexEnviv MANGLE(TexEnviv) #define glTexFilterFuncSGIS MANGLE(TexFilterFuncSGIS) #define glTexGend MANGLE(TexGend) #define glTexGendv MANGLE(TexGendv) #define glTexGenf MANGLE(TexGenf) #define glTexGenfv MANGLE(TexGenfv) #define glTexGeni MANGLE(TexGeni) #define glTexGeniv MANGLE(TexGeniv) #define glTexImage1D MANGLE(TexImage1D) #define glTexImage2D MANGLE(TexImage2D) #define glTexImage2DMultisample MANGLE(TexImage2DMultisample) #define glTexImage3DEXT MANGLE(TexImage3DEXT) #define glTexImage3D MANGLE(TexImage3D) #define glTexImage3DMultisample MANGLE(TexImage3DMultisample) #define glTexImage4DSGIS MANGLE(TexImage4DSGIS) #define glTexParameterf MANGLE(TexParameterf) #define glTexParameterfv MANGLE(TexParameterfv) #define glTexParameterIivEXT MANGLE(TexParameterIivEXT) #define glTexParameterIiv MANGLE(TexParameterIiv) #define glTexParameteri MANGLE(TexParameteri) #define glTexParameterIuivEXT MANGLE(TexParameterIuivEXT) #define glTexParameterIuiv MANGLE(TexParameterIuiv) #define glTexParameteriv MANGLE(TexParameteriv) #define glTexRenderbufferNV MANGLE(TexRenderbufferNV) #define glTexSubImage1DEXT MANGLE(TexSubImage1DEXT) #define glTexSubImage1D MANGLE(TexSubImage1D) #define glTexSubImage2DEXT MANGLE(TexSubImage2DEXT) #define glTexSubImage2D MANGLE(TexSubImage2D) #define glTexSubImage3DEXT MANGLE(TexSubImage3DEXT) #define glTexSubImage3D MANGLE(TexSubImage3D) #define glTexSubImage4DSGIS MANGLE(TexSubImage4DSGIS) #define glTextureBarrierNV MANGLE(TextureBarrierNV) #define glTextureBufferEXT MANGLE(TextureBufferEXT) #define glTextureColorMaskSGIS MANGLE(TextureColorMaskSGIS) #define glTextureImage1DEXT MANGLE(TextureImage1DEXT) #define glTextureImage2DEXT MANGLE(TextureImage2DEXT) #define glTextureImage3DEXT MANGLE(TextureImage3DEXT) #define glTextureLightEXT MANGLE(TextureLightEXT) #define glTextureMaterialEXT MANGLE(TextureMaterialEXT) #define glTextureNormalEXT MANGLE(TextureNormalEXT) #define glTextureParameterfEXT MANGLE(TextureParameterfEXT) #define glTextureParameterfvEXT MANGLE(TextureParameterfvEXT) #define glTextureParameteriEXT MANGLE(TextureParameteriEXT) #define glTextureParameterIivEXT MANGLE(TextureParameterIivEXT) #define glTextureParameterIuivEXT MANGLE(TextureParameterIuivEXT) #define glTextureParameterivEXT MANGLE(TextureParameterivEXT) #define glTextureRangeAPPLE MANGLE(TextureRangeAPPLE) #define glTextureRenderbufferEXT MANGLE(TextureRenderbufferEXT) #define glTextureSubImage1DEXT MANGLE(TextureSubImage1DEXT) #define glTextureSubImage2DEXT MANGLE(TextureSubImage2DEXT) #define glTextureSubImage3DEXT MANGLE(TextureSubImage3DEXT) #define glTrackMatrixNV MANGLE(TrackMatrixNV) #define glTransformFeedbackAttribsNV MANGLE(TransformFeedbackAttribsNV) #define glTransformFeedbackVaryingsEXT MANGLE(TransformFeedbackVaryingsEXT) #define glTransformFeedbackVaryings MANGLE(TransformFeedbackVaryings) #define glTransformFeedbackVaryingsNV MANGLE(TransformFeedbackVaryingsNV) #define glTranslated MANGLE(Translated) #define glTranslatef MANGLE(Translatef) #define glUniform1fARB MANGLE(Uniform1fARB) #define glUniform1f MANGLE(Uniform1f) #define glUniform1fvARB MANGLE(Uniform1fvARB) #define glUniform1fv MANGLE(Uniform1fv) #define glUniform1iARB MANGLE(Uniform1iARB) #define glUniform1i MANGLE(Uniform1i) #define glUniform1ivARB MANGLE(Uniform1ivARB) #define glUniform1iv MANGLE(Uniform1iv) #define glUniform1uiEXT MANGLE(Uniform1uiEXT) #define glUniform1ui MANGLE(Uniform1ui) #define glUniform1uivEXT MANGLE(Uniform1uivEXT) #define glUniform1uiv MANGLE(Uniform1uiv) #define glUniform2fARB MANGLE(Uniform2fARB) #define glUniform2f MANGLE(Uniform2f) #define glUniform2fvARB MANGLE(Uniform2fvARB) #define glUniform2fv MANGLE(Uniform2fv) #define glUniform2iARB MANGLE(Uniform2iARB) #define glUniform2i MANGLE(Uniform2i) #define glUniform2ivARB MANGLE(Uniform2ivARB) #define glUniform2iv MANGLE(Uniform2iv) #define glUniform2uiEXT MANGLE(Uniform2uiEXT) #define glUniform2ui MANGLE(Uniform2ui) #define glUniform2uivEXT MANGLE(Uniform2uivEXT) #define glUniform2uiv MANGLE(Uniform2uiv) #define glUniform3fARB MANGLE(Uniform3fARB) #define glUniform3f MANGLE(Uniform3f) #define glUniform3fvARB MANGLE(Uniform3fvARB) #define glUniform3fv MANGLE(Uniform3fv) #define glUniform3iARB MANGLE(Uniform3iARB) #define glUniform3i MANGLE(Uniform3i) #define glUniform3ivARB MANGLE(Uniform3ivARB) #define glUniform3iv MANGLE(Uniform3iv) #define glUniform3uiEXT MANGLE(Uniform3uiEXT) #define glUniform3ui MANGLE(Uniform3ui) #define glUniform3uivEXT MANGLE(Uniform3uivEXT) #define glUniform3uiv MANGLE(Uniform3uiv) #define glUniform4fARB MANGLE(Uniform4fARB) #define glUniform4f MANGLE(Uniform4f) #define glUniform4fvARB MANGLE(Uniform4fvARB) #define glUniform4fv MANGLE(Uniform4fv) #define glUniform4iARB MANGLE(Uniform4iARB) #define glUniform4i MANGLE(Uniform4i) #define glUniform4ivARB MANGLE(Uniform4ivARB) #define glUniform4iv MANGLE(Uniform4iv) #define glUniform4uiEXT MANGLE(Uniform4uiEXT) #define glUniform4ui MANGLE(Uniform4ui) #define glUniform4uivEXT MANGLE(Uniform4uivEXT) #define glUniform4uiv MANGLE(Uniform4uiv) #define glUniformBlockBinding MANGLE(UniformBlockBinding) #define glUniformBufferEXT MANGLE(UniformBufferEXT) #define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB) #define glUniformMatrix2fv MANGLE(UniformMatrix2fv) #define glUniformMatrix2x3fv MANGLE(UniformMatrix2x3fv) #define glUniformMatrix2x4fv MANGLE(UniformMatrix2x4fv) #define glUniformMatrix3fvARB MANGLE(UniformMatrix3fvARB) #define glUniformMatrix3fv MANGLE(UniformMatrix3fv) #define glUniformMatrix3x2fv MANGLE(UniformMatrix3x2fv) #define glUniformMatrix3x4fv MANGLE(UniformMatrix3x4fv) #define glUniformMatrix4fvARB MANGLE(UniformMatrix4fvARB) #define glUniformMatrix4fv MANGLE(UniformMatrix4fv) #define glUniformMatrix4x2fv MANGLE(UniformMatrix4x2fv) #define glUniformMatrix4x3fv MANGLE(UniformMatrix4x3fv) #define glUniformui64NV MANGLE(Uniformui64NV) #define glUniformui64vNV MANGLE(Uniformui64vNV) #define glUnlockArraysEXT MANGLE(UnlockArraysEXT) #define glUnmapBufferARB MANGLE(UnmapBufferARB) #define glUnmapBuffer MANGLE(UnmapBuffer) #define glUnmapNamedBufferEXT MANGLE(UnmapNamedBufferEXT) #define glUnmapObjectBufferATI MANGLE(UnmapObjectBufferATI) #define glUpdateObjectBufferATI MANGLE(UpdateObjectBufferATI) #define glUseProgram MANGLE(UseProgram) #define glUseProgramObjectARB MANGLE(UseProgramObjectARB) #define glUseShaderProgramEXT MANGLE(UseShaderProgramEXT) #define glValidateProgramARB MANGLE(ValidateProgramARB) #define glValidateProgram MANGLE(ValidateProgram) #define glVariantArrayObjectATI MANGLE(VariantArrayObjectATI) #define glVariantbvEXT MANGLE(VariantbvEXT) #define glVariantdvEXT MANGLE(VariantdvEXT) #define glVariantfvEXT MANGLE(VariantfvEXT) #define glVariantivEXT MANGLE(VariantivEXT) #define glVariantPointerEXT MANGLE(VariantPointerEXT) #define glVariantsvEXT MANGLE(VariantsvEXT) #define glVariantubvEXT MANGLE(VariantubvEXT) #define glVariantuivEXT MANGLE(VariantuivEXT) #define glVariantusvEXT MANGLE(VariantusvEXT) #define glVertex2d MANGLE(Vertex2d) #define glVertex2dv MANGLE(Vertex2dv) #define glVertex2f MANGLE(Vertex2f) #define glVertex2fv MANGLE(Vertex2fv) #define glVertex2hNV MANGLE(Vertex2hNV) #define glVertex2hvNV MANGLE(Vertex2hvNV) #define glVertex2i MANGLE(Vertex2i) #define glVertex2iv MANGLE(Vertex2iv) #define glVertex2s MANGLE(Vertex2s) #define glVertex2sv MANGLE(Vertex2sv) #define glVertex3d MANGLE(Vertex3d) #define glVertex3dv MANGLE(Vertex3dv) #define glVertex3f MANGLE(Vertex3f) #define glVertex3fv MANGLE(Vertex3fv) #define glVertex3hNV MANGLE(Vertex3hNV) #define glVertex3hvNV MANGLE(Vertex3hvNV) #define glVertex3i MANGLE(Vertex3i) #define glVertex3iv MANGLE(Vertex3iv) #define glVertex3s MANGLE(Vertex3s) #define glVertex3sv MANGLE(Vertex3sv) #define glVertex4d MANGLE(Vertex4d) #define glVertex4dv MANGLE(Vertex4dv) #define glVertex4f MANGLE(Vertex4f) #define glVertex4fv MANGLE(Vertex4fv) #define glVertex4hNV MANGLE(Vertex4hNV) #define glVertex4hvNV MANGLE(Vertex4hvNV) #define glVertex4i MANGLE(Vertex4i) #define glVertex4iv MANGLE(Vertex4iv) #define glVertex4s MANGLE(Vertex4s) #define glVertex4sv MANGLE(Vertex4sv) #define glVertexArrayParameteriAPPLE MANGLE(VertexArrayParameteriAPPLE) #define glVertexArrayRangeAPPLE MANGLE(VertexArrayRangeAPPLE) #define glVertexArrayRangeNV MANGLE(VertexArrayRangeNV) #define glVertexAttrib1dARB MANGLE(VertexAttrib1dARB) #define glVertexAttrib1d MANGLE(VertexAttrib1d) #define glVertexAttrib1dNV MANGLE(VertexAttrib1dNV) #define glVertexAttrib1dvARB MANGLE(VertexAttrib1dvARB) #define glVertexAttrib1dv MANGLE(VertexAttrib1dv) #define glVertexAttrib1dvNV MANGLE(VertexAttrib1dvNV) #define glVertexAttrib1fARB MANGLE(VertexAttrib1fARB) #define glVertexAttrib1f MANGLE(VertexAttrib1f) #define glVertexAttrib1fNV MANGLE(VertexAttrib1fNV) #define glVertexAttrib1fvARB MANGLE(VertexAttrib1fvARB) #define glVertexAttrib1fv MANGLE(VertexAttrib1fv) #define glVertexAttrib1fvNV MANGLE(VertexAttrib1fvNV) #define glVertexAttrib1hNV MANGLE(VertexAttrib1hNV) #define glVertexAttrib1hvNV MANGLE(VertexAttrib1hvNV) #define glVertexAttrib1sARB MANGLE(VertexAttrib1sARB) #define glVertexAttrib1s MANGLE(VertexAttrib1s) #define glVertexAttrib1sNV MANGLE(VertexAttrib1sNV) #define glVertexAttrib1svARB MANGLE(VertexAttrib1svARB) #define glVertexAttrib1sv MANGLE(VertexAttrib1sv) #define glVertexAttrib1svNV MANGLE(VertexAttrib1svNV) #define glVertexAttrib2dARB MANGLE(VertexAttrib2dARB) #define glVertexAttrib2d MANGLE(VertexAttrib2d) #define glVertexAttrib2dNV MANGLE(VertexAttrib2dNV) #define glVertexAttrib2dvARB MANGLE(VertexAttrib2dvARB) #define glVertexAttrib2dv MANGLE(VertexAttrib2dv) #define glVertexAttrib2dvNV MANGLE(VertexAttrib2dvNV) #define glVertexAttrib2fARB MANGLE(VertexAttrib2fARB) #define glVertexAttrib2f MANGLE(VertexAttrib2f) #define glVertexAttrib2fNV MANGLE(VertexAttrib2fNV) #define glVertexAttrib2fvARB MANGLE(VertexAttrib2fvARB) #define glVertexAttrib2fv MANGLE(VertexAttrib2fv) #define glVertexAttrib2fvNV MANGLE(VertexAttrib2fvNV) #define glVertexAttrib2hNV MANGLE(VertexAttrib2hNV) #define glVertexAttrib2hvNV MANGLE(VertexAttrib2hvNV) #define glVertexAttrib2sARB MANGLE(VertexAttrib2sARB) #define glVertexAttrib2s MANGLE(VertexAttrib2s) #define glVertexAttrib2sNV MANGLE(VertexAttrib2sNV) #define glVertexAttrib2svARB MANGLE(VertexAttrib2svARB) #define glVertexAttrib2sv MANGLE(VertexAttrib2sv) #define glVertexAttrib2svNV MANGLE(VertexAttrib2svNV) #define glVertexAttrib3dARB MANGLE(VertexAttrib3dARB) #define glVertexAttrib3d MANGLE(VertexAttrib3d) #define glVertexAttrib3dNV MANGLE(VertexAttrib3dNV) #define glVertexAttrib3dvARB MANGLE(VertexAttrib3dvARB) #define glVertexAttrib3dv MANGLE(VertexAttrib3dv) #define glVertexAttrib3dvNV MANGLE(VertexAttrib3dvNV) #define glVertexAttrib3fARB MANGLE(VertexAttrib3fARB) #define glVertexAttrib3f MANGLE(VertexAttrib3f) #define glVertexAttrib3fNV MANGLE(VertexAttrib3fNV) #define glVertexAttrib3fvARB MANGLE(VertexAttrib3fvARB) #define glVertexAttrib3fv MANGLE(VertexAttrib3fv) #define glVertexAttrib3fvNV MANGLE(VertexAttrib3fvNV) #define glVertexAttrib3hNV MANGLE(VertexAttrib3hNV) #define glVertexAttrib3hvNV MANGLE(VertexAttrib3hvNV) #define glVertexAttrib3sARB MANGLE(VertexAttrib3sARB) #define glVertexAttrib3s MANGLE(VertexAttrib3s) #define glVertexAttrib3sNV MANGLE(VertexAttrib3sNV) #define glVertexAttrib3svARB MANGLE(VertexAttrib3svARB) #define glVertexAttrib3sv MANGLE(VertexAttrib3sv) #define glVertexAttrib3svNV MANGLE(VertexAttrib3svNV) #define glVertexAttrib4bvARB MANGLE(VertexAttrib4bvARB) #define glVertexAttrib4bv MANGLE(VertexAttrib4bv) #define glVertexAttrib4dARB MANGLE(VertexAttrib4dARB) #define glVertexAttrib4d MANGLE(VertexAttrib4d) #define glVertexAttrib4dNV MANGLE(VertexAttrib4dNV) #define glVertexAttrib4dvARB MANGLE(VertexAttrib4dvARB) #define glVertexAttrib4dv MANGLE(VertexAttrib4dv) #define glVertexAttrib4dvNV MANGLE(VertexAttrib4dvNV) #define glVertexAttrib4fARB MANGLE(VertexAttrib4fARB) #define glVertexAttrib4f MANGLE(VertexAttrib4f) #define glVertexAttrib4fNV MANGLE(VertexAttrib4fNV) #define glVertexAttrib4fvARB MANGLE(VertexAttrib4fvARB) #define glVertexAttrib4fv MANGLE(VertexAttrib4fv) #define glVertexAttrib4fvNV MANGLE(VertexAttrib4fvNV) #define glVertexAttrib4hNV MANGLE(VertexAttrib4hNV) #define glVertexAttrib4hvNV MANGLE(VertexAttrib4hvNV) #define glVertexAttrib4ivARB MANGLE(VertexAttrib4ivARB) #define glVertexAttrib4iv MANGLE(VertexAttrib4iv) #define glVertexAttrib4NbvARB MANGLE(VertexAttrib4NbvARB) #define glVertexAttrib4Nbv MANGLE(VertexAttrib4Nbv) #define glVertexAttrib4NivARB MANGLE(VertexAttrib4NivARB) #define glVertexAttrib4Niv MANGLE(VertexAttrib4Niv) #define glVertexAttrib4NsvARB MANGLE(VertexAttrib4NsvARB) #define glVertexAttrib4Nsv MANGLE(VertexAttrib4Nsv) #define glVertexAttrib4NubARB MANGLE(VertexAttrib4NubARB) #define glVertexAttrib4Nub MANGLE(VertexAttrib4Nub) #define glVertexAttrib4NubvARB MANGLE(VertexAttrib4NubvARB) #define glVertexAttrib4Nubv MANGLE(VertexAttrib4Nubv) #define glVertexAttrib4NuivARB MANGLE(VertexAttrib4NuivARB) #define glVertexAttrib4Nuiv MANGLE(VertexAttrib4Nuiv) #define glVertexAttrib4NusvARB MANGLE(VertexAttrib4NusvARB) #define glVertexAttrib4Nusv MANGLE(VertexAttrib4Nusv) #define glVertexAttrib4sARB MANGLE(VertexAttrib4sARB) #define glVertexAttrib4s MANGLE(VertexAttrib4s) #define glVertexAttrib4sNV MANGLE(VertexAttrib4sNV) #define glVertexAttrib4svARB MANGLE(VertexAttrib4svARB) #define glVertexAttrib4sv MANGLE(VertexAttrib4sv) #define glVertexAttrib4svNV MANGLE(VertexAttrib4svNV) #define glVertexAttrib4ubNV MANGLE(VertexAttrib4ubNV) #define glVertexAttrib4ubvARB MANGLE(VertexAttrib4ubvARB) #define glVertexAttrib4ubv MANGLE(VertexAttrib4ubv) #define glVertexAttrib4ubvNV MANGLE(VertexAttrib4ubvNV) #define glVertexAttrib4uivARB MANGLE(VertexAttrib4uivARB) #define glVertexAttrib4uiv MANGLE(VertexAttrib4uiv) #define glVertexAttrib4usvARB MANGLE(VertexAttrib4usvARB) #define glVertexAttrib4usv MANGLE(VertexAttrib4usv) #define glVertexAttribArrayObjectATI MANGLE(VertexAttribArrayObjectATI) #define glVertexAttribDivisorARB MANGLE(VertexAttribDivisorARB) #define glVertexAttribFormatNV MANGLE(VertexAttribFormatNV) #define glVertexAttribI1iEXT MANGLE(VertexAttribI1iEXT) #define glVertexAttribI1i MANGLE(VertexAttribI1i) #define glVertexAttribI1ivEXT MANGLE(VertexAttribI1ivEXT) #define glVertexAttribI1iv MANGLE(VertexAttribI1iv) #define glVertexAttribI1uiEXT MANGLE(VertexAttribI1uiEXT) #define glVertexAttribI1ui MANGLE(VertexAttribI1ui) #define glVertexAttribI1uivEXT MANGLE(VertexAttribI1uivEXT) #define glVertexAttribI1uiv MANGLE(VertexAttribI1uiv) #define glVertexAttribI2iEXT MANGLE(VertexAttribI2iEXT) #define glVertexAttribI2i MANGLE(VertexAttribI2i) #define glVertexAttribI2ivEXT MANGLE(VertexAttribI2ivEXT) #define glVertexAttribI2iv MANGLE(VertexAttribI2iv) #define glVertexAttribI2uiEXT MANGLE(VertexAttribI2uiEXT) #define glVertexAttribI2ui MANGLE(VertexAttribI2ui) #define glVertexAttribI2uivEXT MANGLE(VertexAttribI2uivEXT) #define glVertexAttribI2uiv MANGLE(VertexAttribI2uiv) #define glVertexAttribI3iEXT MANGLE(VertexAttribI3iEXT) #define glVertexAttribI3i MANGLE(VertexAttribI3i) #define glVertexAttribI3ivEXT MANGLE(VertexAttribI3ivEXT) #define glVertexAttribI3iv MANGLE(VertexAttribI3iv) #define glVertexAttribI3uiEXT MANGLE(VertexAttribI3uiEXT) #define glVertexAttribI3ui MANGLE(VertexAttribI3ui) #define glVertexAttribI3uivEXT MANGLE(VertexAttribI3uivEXT) #define glVertexAttribI3uiv MANGLE(VertexAttribI3uiv) #define glVertexAttribI4bvEXT MANGLE(VertexAttribI4bvEXT) #define glVertexAttribI4bv MANGLE(VertexAttribI4bv) #define glVertexAttribI4iEXT MANGLE(VertexAttribI4iEXT) #define glVertexAttribI4i MANGLE(VertexAttribI4i) #define glVertexAttribI4ivEXT MANGLE(VertexAttribI4ivEXT) #define glVertexAttribI4iv MANGLE(VertexAttribI4iv) #define glVertexAttribI4svEXT MANGLE(VertexAttribI4svEXT) #define glVertexAttribI4sv MANGLE(VertexAttribI4sv) #define glVertexAttribI4ubvEXT MANGLE(VertexAttribI4ubvEXT) #define glVertexAttribI4ubv MANGLE(VertexAttribI4ubv) #define glVertexAttribI4uiEXT MANGLE(VertexAttribI4uiEXT) #define glVertexAttribI4ui MANGLE(VertexAttribI4ui) #define glVertexAttribI4uivEXT MANGLE(VertexAttribI4uivEXT) #define glVertexAttribI4uiv MANGLE(VertexAttribI4uiv) #define glVertexAttribI4usvEXT MANGLE(VertexAttribI4usvEXT) #define glVertexAttribI4usv MANGLE(VertexAttribI4usv) #define glVertexAttribIFormatNV MANGLE(VertexAttribIFormatNV) #define glVertexAttribIPointerEXT MANGLE(VertexAttribIPointerEXT) #define glVertexAttribIPointer MANGLE(VertexAttribIPointer) #define glVertexAttribPointerARB MANGLE(VertexAttribPointerARB) #define glVertexAttribPointer MANGLE(VertexAttribPointer) #define glVertexAttribPointerNV MANGLE(VertexAttribPointerNV) #define glVertexAttribs1dvNV MANGLE(VertexAttribs1dvNV) #define glVertexAttribs1fvNV MANGLE(VertexAttribs1fvNV) #define glVertexAttribs1hvNV MANGLE(VertexAttribs1hvNV) #define glVertexAttribs1svNV MANGLE(VertexAttribs1svNV) #define glVertexAttribs2dvNV MANGLE(VertexAttribs2dvNV) #define glVertexAttribs2fvNV MANGLE(VertexAttribs2fvNV) #define glVertexAttribs2hvNV MANGLE(VertexAttribs2hvNV) #define glVertexAttribs2svNV MANGLE(VertexAttribs2svNV) #define glVertexAttribs3dvNV MANGLE(VertexAttribs3dvNV) #define glVertexAttribs3fvNV MANGLE(VertexAttribs3fvNV) #define glVertexAttribs3hvNV MANGLE(VertexAttribs3hvNV) #define glVertexAttribs3svNV MANGLE(VertexAttribs3svNV) #define glVertexAttribs4dvNV MANGLE(VertexAttribs4dvNV) #define glVertexAttribs4fvNV MANGLE(VertexAttribs4fvNV) #define glVertexAttribs4hvNV MANGLE(VertexAttribs4hvNV) #define glVertexAttribs4svNV MANGLE(VertexAttribs4svNV) #define glVertexAttribs4ubvNV MANGLE(VertexAttribs4ubvNV) #define glVertexBlendARB MANGLE(VertexBlendARB) #define glVertexBlendEnvfATI MANGLE(VertexBlendEnvfATI) #define glVertexBlendEnviATI MANGLE(VertexBlendEnviATI) #define glVertexFormatNV MANGLE(VertexFormatNV) #define glVertexPointerEXT MANGLE(VertexPointerEXT) #define glVertexPointerListIBM MANGLE(VertexPointerListIBM) #define glVertexPointer MANGLE(VertexPointer) #define glVertexPointervINTEL MANGLE(VertexPointervINTEL) #define glVertexStream1dATI MANGLE(VertexStream1dATI) #define glVertexStream1dvATI MANGLE(VertexStream1dvATI) #define glVertexStream1fATI MANGLE(VertexStream1fATI) #define glVertexStream1fvATI MANGLE(VertexStream1fvATI) #define glVertexStream1iATI MANGLE(VertexStream1iATI) #define glVertexStream1ivATI MANGLE(VertexStream1ivATI) #define glVertexStream1sATI MANGLE(VertexStream1sATI) #define glVertexStream1svATI MANGLE(VertexStream1svATI) #define glVertexStream2dATI MANGLE(VertexStream2dATI) #define glVertexStream2dvATI MANGLE(VertexStream2dvATI) #define glVertexStream2fATI MANGLE(VertexStream2fATI) #define glVertexStream2fvATI MANGLE(VertexStream2fvATI) #define glVertexStream2iATI MANGLE(VertexStream2iATI) #define glVertexStream2ivATI MANGLE(VertexStream2ivATI) #define glVertexStream2sATI MANGLE(VertexStream2sATI) #define glVertexStream2svATI MANGLE(VertexStream2svATI) #define glVertexStream3dATI MANGLE(VertexStream3dATI) #define glVertexStream3dvATI MANGLE(VertexStream3dvATI) #define glVertexStream3fATI MANGLE(VertexStream3fATI) #define glVertexStream3fvATI MANGLE(VertexStream3fvATI) #define glVertexStream3iATI MANGLE(VertexStream3iATI) #define glVertexStream3ivATI MANGLE(VertexStream3ivATI) #define glVertexStream3sATI MANGLE(VertexStream3sATI) #define glVertexStream3svATI MANGLE(VertexStream3svATI) #define glVertexStream4dATI MANGLE(VertexStream4dATI) #define glVertexStream4dvATI MANGLE(VertexStream4dvATI) #define glVertexStream4fATI MANGLE(VertexStream4fATI) #define glVertexStream4fvATI MANGLE(VertexStream4fvATI) #define glVertexStream4iATI MANGLE(VertexStream4iATI) #define glVertexStream4ivATI MANGLE(VertexStream4ivATI) #define glVertexStream4sATI MANGLE(VertexStream4sATI) #define glVertexStream4svATI MANGLE(VertexStream4svATI) #define glVertexWeightfEXT MANGLE(VertexWeightfEXT) #define glVertexWeightfvEXT MANGLE(VertexWeightfvEXT) #define glVertexWeighthNV MANGLE(VertexWeighthNV) #define glVertexWeighthvNV MANGLE(VertexWeighthvNV) #define glVertexWeightPointerEXT MANGLE(VertexWeightPointerEXT) #define glVideoCaptureNV MANGLE(VideoCaptureNV) #define glVideoCaptureStreamParameterdvNV MANGLE(VideoCaptureStreamParameterdvNV) #define glVideoCaptureStreamParameterfvNV MANGLE(VideoCaptureStreamParameterfvNV) #define glVideoCaptureStreamParameterivNV MANGLE(VideoCaptureStreamParameterivNV) #define glViewport MANGLE(Viewport) #define glWaitSync MANGLE(WaitSync) #define glWeightbvARB MANGLE(WeightbvARB) #define glWeightdvARB MANGLE(WeightdvARB) #define glWeightfvARB MANGLE(WeightfvARB) #define glWeightivARB MANGLE(WeightivARB) #define glWeightPointerARB MANGLE(WeightPointerARB) #define glWeightsvARB MANGLE(WeightsvARB) #define glWeightubvARB MANGLE(WeightubvARB) #define glWeightuivARB MANGLE(WeightuivARB) #define glWeightusvARB MANGLE(WeightusvARB) #define glWindowPos2dARB MANGLE(WindowPos2dARB) #define glWindowPos2d MANGLE(WindowPos2d) #define glWindowPos2dMESA MANGLE(WindowPos2dMESA) #define glWindowPos2dvARB MANGLE(WindowPos2dvARB) #define glWindowPos2dv MANGLE(WindowPos2dv) #define glWindowPos2dvMESA MANGLE(WindowPos2dvMESA) #define glWindowPos2fARB MANGLE(WindowPos2fARB) #define glWindowPos2f MANGLE(WindowPos2f) #define glWindowPos2fMESA MANGLE(WindowPos2fMESA) #define glWindowPos2fvARB MANGLE(WindowPos2fvARB) #define glWindowPos2fv MANGLE(WindowPos2fv) #define glWindowPos2fvMESA MANGLE(WindowPos2fvMESA) #define glWindowPos2iARB MANGLE(WindowPos2iARB) #define glWindowPos2i MANGLE(WindowPos2i) #define glWindowPos2iMESA MANGLE(WindowPos2iMESA) #define glWindowPos2ivARB MANGLE(WindowPos2ivARB) #define glWindowPos2iv MANGLE(WindowPos2iv) #define glWindowPos2ivMESA MANGLE(WindowPos2ivMESA) #define glWindowPos2sARB MANGLE(WindowPos2sARB) #define glWindowPos2s MANGLE(WindowPos2s) #define glWindowPos2sMESA MANGLE(WindowPos2sMESA) #define glWindowPos2svARB MANGLE(WindowPos2svARB) #define glWindowPos2sv MANGLE(WindowPos2sv) #define glWindowPos2svMESA MANGLE(WindowPos2svMESA) #define glWindowPos3dARB MANGLE(WindowPos3dARB) #define glWindowPos3d MANGLE(WindowPos3d) #define glWindowPos3dMESA MANGLE(WindowPos3dMESA) #define glWindowPos3dvARB MANGLE(WindowPos3dvARB) #define glWindowPos3dv MANGLE(WindowPos3dv) #define glWindowPos3dvMESA MANGLE(WindowPos3dvMESA) #define glWindowPos3fARB MANGLE(WindowPos3fARB) #define glWindowPos3f MANGLE(WindowPos3f) #define glWindowPos3fMESA MANGLE(WindowPos3fMESA) #define glWindowPos3fvARB MANGLE(WindowPos3fvARB) #define glWindowPos3fv MANGLE(WindowPos3fv) #define glWindowPos3fvMESA MANGLE(WindowPos3fvMESA) #define glWindowPos3iARB MANGLE(WindowPos3iARB) #define glWindowPos3i MANGLE(WindowPos3i) #define glWindowPos3iMESA MANGLE(WindowPos3iMESA) #define glWindowPos3ivARB MANGLE(WindowPos3ivARB) #define glWindowPos3iv MANGLE(WindowPos3iv) #define glWindowPos3ivMESA MANGLE(WindowPos3ivMESA) #define glWindowPos3sARB MANGLE(WindowPos3sARB) #define glWindowPos3s MANGLE(WindowPos3s) #define glWindowPos3sMESA MANGLE(WindowPos3sMESA) #define glWindowPos3svARB MANGLE(WindowPos3svARB) #define glWindowPos3sv MANGLE(WindowPos3sv) #define glWindowPos3svMESA MANGLE(WindowPos3svMESA) #define glWindowPos4dMESA MANGLE(WindowPos4dMESA) #define glWindowPos4dvMESA MANGLE(WindowPos4dvMESA) #define glWindowPos4fMESA MANGLE(WindowPos4fMESA) #define glWindowPos4fvMESA MANGLE(WindowPos4fvMESA) #define glWindowPos4iMESA MANGLE(WindowPos4iMESA) #define glWindowPos4ivMESA MANGLE(WindowPos4ivMESA) #define glWindowPos4sMESA MANGLE(WindowPos4sMESA) #define glWindowPos4svMESA MANGLE(WindowPos4svMESA) #define glWriteMaskEXT MANGLE(WriteMaskEXT) #endif /* GL_MANGLE_H */ |
Added jni/glshim/include/GL/glext.h.
more than 10,000 changes
Added jni/glshim/include/GL/glu.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | /* * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice including the dates of first publication and * either this permission notice or a reference to * http://oss.sgi.com/projects/FreeB/ * shall be included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of Silicon Graphics, Inc. * shall not be used in advertising or otherwise to promote the sale, use or * other dealings in this Software without prior written authorization from * Silicon Graphics, Inc. */ #ifndef __glu_h__ #define __glu_h__ #if defined(USE_MGL_NAMESPACE) #include "glu_mangle.h" #endif #include <GL/gl.h> #ifndef GLAPIENTRY #if defined(_MSC_VER) || defined(__MINGW32__) #define GLAPIENTRY __stdcall #else #define GLAPIENTRY #endif #endif #ifndef GLAPIENTRYP #define GLAPIENTRYP GLAPIENTRY * #endif #if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32) # undef GLAPI # define GLAPI __declspec(dllexport) #elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ # undef GLAPI # define GLAPI __declspec(dllimport) #elif !defined(GLAPI) /* for use with static link lib build of Win32 edition only */ # define GLAPI extern #endif /* _STATIC_MESA support */ #ifdef __cplusplus extern "C" { #endif /*************************************************************/ /* Extensions */ #define GLU_EXT_object_space_tess 1 #define GLU_EXT_nurbs_tessellator 1 /* Boolean */ #define GLU_FALSE 0 #define GLU_TRUE 1 /* Version */ #define GLU_VERSION_1_1 1 #define GLU_VERSION_1_2 1 #define GLU_VERSION_1_3 1 /* StringName */ #define GLU_VERSION 100800 #define GLU_EXTENSIONS 100801 /* ErrorCode */ #define GLU_INVALID_ENUM 100900 #define GLU_INVALID_VALUE 100901 #define GLU_OUT_OF_MEMORY 100902 #define GLU_INCOMPATIBLE_GL_VERSION 100903 #define GLU_INVALID_OPERATION 100904 /* NurbsDisplay */ /* GLU_FILL */ #define GLU_OUTLINE_POLYGON 100240 #define GLU_OUTLINE_PATCH 100241 /* NurbsCallback */ #define GLU_NURBS_ERROR 100103 #define GLU_ERROR 100103 #define GLU_NURBS_BEGIN 100164 #define GLU_NURBS_BEGIN_EXT 100164 #define GLU_NURBS_VERTEX 100165 #define GLU_NURBS_VERTEX_EXT 100165 #define GLU_NURBS_NORMAL 100166 #define GLU_NURBS_NORMAL_EXT 100166 #define GLU_NURBS_COLOR 100167 #define GLU_NURBS_COLOR_EXT 100167 #define GLU_NURBS_TEXTURE_COORD 100168 #define GLU_NURBS_TEX_COORD_EXT 100168 #define GLU_NURBS_END 100169 #define GLU_NURBS_END_EXT 100169 #define GLU_NURBS_BEGIN_DATA 100170 #define GLU_NURBS_BEGIN_DATA_EXT 100170 #define GLU_NURBS_VERTEX_DATA 100171 #define GLU_NURBS_VERTEX_DATA_EXT 100171 #define GLU_NURBS_NORMAL_DATA 100172 #define GLU_NURBS_NORMAL_DATA_EXT 100172 #define GLU_NURBS_COLOR_DATA 100173 #define GLU_NURBS_COLOR_DATA_EXT 100173 #define GLU_NURBS_TEXTURE_COORD_DATA 100174 #define GLU_NURBS_TEX_COORD_DATA_EXT 100174 #define GLU_NURBS_END_DATA 100175 #define GLU_NURBS_END_DATA_EXT 100175 /* NurbsError */ #define GLU_NURBS_ERROR1 100251 #define GLU_NURBS_ERROR2 100252 #define GLU_NURBS_ERROR3 100253 #define GLU_NURBS_ERROR4 100254 #define GLU_NURBS_ERROR5 100255 #define GLU_NURBS_ERROR6 100256 #define GLU_NURBS_ERROR7 100257 #define GLU_NURBS_ERROR8 100258 #define GLU_NURBS_ERROR9 100259 #define GLU_NURBS_ERROR10 100260 #define GLU_NURBS_ERROR11 100261 #define GLU_NURBS_ERROR12 100262 #define GLU_NURBS_ERROR13 100263 #define GLU_NURBS_ERROR14 100264 #define GLU_NURBS_ERROR15 100265 #define GLU_NURBS_ERROR16 100266 #define GLU_NURBS_ERROR17 100267 #define GLU_NURBS_ERROR18 100268 #define GLU_NURBS_ERROR19 100269 #define GLU_NURBS_ERROR20 100270 #define GLU_NURBS_ERROR21 100271 #define GLU_NURBS_ERROR22 100272 #define GLU_NURBS_ERROR23 100273 #define GLU_NURBS_ERROR24 100274 #define GLU_NURBS_ERROR25 100275 #define GLU_NURBS_ERROR26 100276 #define GLU_NURBS_ERROR27 100277 #define GLU_NURBS_ERROR28 100278 #define GLU_NURBS_ERROR29 100279 #define GLU_NURBS_ERROR30 100280 #define GLU_NURBS_ERROR31 100281 #define GLU_NURBS_ERROR32 100282 #define GLU_NURBS_ERROR33 100283 #define GLU_NURBS_ERROR34 100284 #define GLU_NURBS_ERROR35 100285 #define GLU_NURBS_ERROR36 100286 #define GLU_NURBS_ERROR37 100287 /* NurbsProperty */ #define GLU_AUTO_LOAD_MATRIX 100200 #define GLU_CULLING 100201 #define GLU_SAMPLING_TOLERANCE 100203 #define GLU_DISPLAY_MODE 100204 #define GLU_PARAMETRIC_TOLERANCE 100202 #define GLU_SAMPLING_METHOD 100205 #define GLU_U_STEP 100206 #define GLU_V_STEP 100207 #define GLU_NURBS_MODE 100160 #define GLU_NURBS_MODE_EXT 100160 #define GLU_NURBS_TESSELLATOR 100161 #define GLU_NURBS_TESSELLATOR_EXT 100161 #define GLU_NURBS_RENDERER 100162 #define GLU_NURBS_RENDERER_EXT 100162 /* NurbsSampling */ #define GLU_OBJECT_PARAMETRIC_ERROR 100208 #define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 #define GLU_OBJECT_PATH_LENGTH 100209 #define GLU_OBJECT_PATH_LENGTH_EXT 100209 #define GLU_PATH_LENGTH 100215 #define GLU_PARAMETRIC_ERROR 100216 #define GLU_DOMAIN_DISTANCE 100217 /* NurbsTrim */ #define GLU_MAP1_TRIM_2 100210 #define GLU_MAP1_TRIM_3 100211 /* QuadricDrawStyle */ #define GLU_POINT 100010 #define GLU_LINE 100011 #define GLU_FILL 100012 #define GLU_SILHOUETTE 100013 /* QuadricCallback */ /* GLU_ERROR */ /* QuadricNormal */ #define GLU_SMOOTH 100000 #define GLU_FLAT 100001 #define GLU_NONE 100002 /* QuadricOrientation */ #define GLU_OUTSIDE 100020 #define GLU_INSIDE 100021 /* TessCallback */ #define GLU_TESS_BEGIN 100100 #define GLU_BEGIN 100100 #define GLU_TESS_VERTEX 100101 #define GLU_VERTEX 100101 #define GLU_TESS_END 100102 #define GLU_END 100102 #define GLU_TESS_ERROR 100103 #define GLU_TESS_EDGE_FLAG 100104 #define GLU_EDGE_FLAG 100104 #define GLU_TESS_COMBINE 100105 #define GLU_TESS_BEGIN_DATA 100106 #define GLU_TESS_VERTEX_DATA 100107 #define GLU_TESS_END_DATA 100108 #define GLU_TESS_ERROR_DATA 100109 #define GLU_TESS_EDGE_FLAG_DATA 100110 #define GLU_TESS_COMBINE_DATA 100111 /* TessContour */ #define GLU_CW 100120 #define GLU_CCW 100121 #define GLU_INTERIOR 100122 #define GLU_EXTERIOR 100123 #define GLU_UNKNOWN 100124 /* TessProperty */ #define GLU_TESS_WINDING_RULE 100140 #define GLU_TESS_BOUNDARY_ONLY 100141 #define GLU_TESS_TOLERANCE 100142 /* TessError */ #define GLU_TESS_ERROR1 100151 #define GLU_TESS_ERROR2 100152 #define GLU_TESS_ERROR3 100153 #define GLU_TESS_ERROR4 100154 #define GLU_TESS_ERROR5 100155 #define GLU_TESS_ERROR6 100156 #define GLU_TESS_ERROR7 100157 #define GLU_TESS_ERROR8 100158 #define GLU_TESS_MISSING_BEGIN_POLYGON 100151 #define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 #define GLU_TESS_MISSING_END_POLYGON 100153 #define GLU_TESS_MISSING_END_CONTOUR 100154 #define GLU_TESS_COORD_TOO_LARGE 100155 #define GLU_TESS_NEED_COMBINE_CALLBACK 100156 /* TessWinding */ #define GLU_TESS_WINDING_ODD 100130 #define GLU_TESS_WINDING_NONZERO 100131 #define GLU_TESS_WINDING_POSITIVE 100132 #define GLU_TESS_WINDING_NEGATIVE 100133 #define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 /*************************************************************/ #ifdef __cplusplus class GLUnurbs; class GLUquadric; class GLUtesselator; #else typedef struct GLUnurbs GLUnurbs; typedef struct GLUquadric GLUquadric; typedef struct GLUtesselator GLUtesselator; #endif typedef GLUnurbs GLUnurbsObj; typedef GLUquadric GLUquadricObj; typedef GLUtesselator GLUtesselatorObj; typedef GLUtesselator GLUtriangulatorObj; #define GLU_TESS_MAX_COORD 1.0e150 /* Internal convenience typedefs */ typedef void (GLAPIENTRYP _GLUfuncptr)(void); GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb); GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess); GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb); GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb); GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString); GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb); GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad); GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess); GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb); GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess); GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb); GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb); GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error); GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data); GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name); GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data); GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view); GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void); GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void); GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void); GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type); GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc); GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData); GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData); GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type); GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value); GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type); GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport); GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ); GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc); GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw); GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal); GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation); GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture); GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut); GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks); GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess); GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess); GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess); GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ); GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW); #ifdef __cplusplus } #endif #endif /* __glu_h__ */ |
Added jni/glshim/include/GL/glu_mangle.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | /* * Mesa 3-D graphics library * Version: 3.0 * Copyright (C) 1995-1998 Brian Paul * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef GLU_MANGLE_H #define GLU_MANGLE_H #define gluLookAt mgluLookAt #define gluOrtho2D mgluOrtho2D #define gluPerspective mgluPerspective #define gluPickMatrix mgluPickMatrix #define gluProject mgluProject #define gluUnProject mgluUnProject #define gluErrorString mgluErrorString #define gluScaleImage mgluScaleImage #define gluBuild1DMipmaps mgluBuild1DMipmaps #define gluBuild2DMipmaps mgluBuild2DMipmaps #define gluNewQuadric mgluNewQuadric #define gluDeleteQuadric mgluDeleteQuadric #define gluQuadricDrawStyle mgluQuadricDrawStyle #define gluQuadricOrientation mgluQuadricOrientation #define gluQuadricNormals mgluQuadricNormals #define gluQuadricTexture mgluQuadricTexture #define gluQuadricCallback mgluQuadricCallback #define gluCylinder mgluCylinder #define gluSphere mgluSphere #define gluDisk mgluDisk #define gluPartialDisk mgluPartialDisk #define gluNewNurbsRenderer mgluNewNurbsRenderer #define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer #define gluLoadSamplingMatrices mgluLoadSamplingMatrices #define gluNurbsProperty mgluNurbsProperty #define gluGetNurbsProperty mgluGetNurbsProperty #define gluBeginCurve mgluBeginCurve #define gluEndCurve mgluEndCurve #define gluNurbsCurve mgluNurbsCurve #define gluBeginSurface mgluBeginSurface #define gluEndSurface mgluEndSurface #define gluNurbsSurface mgluNurbsSurface #define gluBeginTrim mgluBeginTrim #define gluEndTrim mgluEndTrim #define gluPwlCurve mgluPwlCurve #define gluNurbsCallback mgluNurbsCallback #define gluNewTess mgluNewTess #define gluDeleteTess mgluDeleteTess #define gluTessBeginPolygon mgluTessBeginPolygon #define gluTessBeginContour mgluTessBeginContour #define gluTessVertex mgluTessVertex #define gluTessEndPolygon mgluTessEndPolygon #define gluTessEndContour mgluTessEndContour #define gluTessProperty mgluTessProperty #define gluTessNormal mgluTessNormal #define gluTessCallback mgluTessCallback #define gluGetTessProperty mgluGetTessProperty #define gluBeginPolygon mgluBeginPolygon #define gluNextContour mgluNextContour #define gluEndPolygon mgluEndPolygon #define gluGetString mgluGetString #define gluBuild1DMipmapLevels mgluBuild1DMipmapLevels #define gluBuild2DMipmapLevels mgluBuild2DMipmapLevels #define gluBuild3DMipmapLevels mgluBuild3DMipmapLevels #define gluBuild3DMipmaps mgluBuild3DMipmaps #define gluCheckExtension mgluCheckExtension #define gluUnProject4 mgluUnProject4 #define gluNurbsCallbackData mgluNurbsCallbackData #define gluNurbsCallbackDataEXT mgluNurbsCallbackDataEXT #endif |
Added jni/glshim/include/GL/glx.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 | /* * Mesa 3-D graphics library * Version: 6.5 * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef GLX_H #define GLX_H #ifdef __VMS #include <GL/vms_x_fix.h> # ifdef __cplusplus /* VMS Xlib.h gives problems with C++. * this avoids a bunch of trivial warnings */ #pragma message disable nosimpint #endif #endif #include <X11/Xlib.h> #include <X11/Xutil.h> #ifdef __VMS # ifdef __cplusplus #pragma message enable nosimpint #endif #endif #include <GL/gl.h> #if defined(USE_MGL_NAMESPACE) #include "glx_mangle.h" #endif #ifdef __cplusplus extern "C" { #endif #define GLX_VERSION_1_1 1 #define GLX_VERSION_1_2 1 #define GLX_VERSION_1_3 1 #define GLX_VERSION_1_4 1 #define GLX_EXTENSION_NAME "GLX" /* * Tokens for glXChooseVisual and glXGetConfig: */ #define GLX_USE_GL 1 #define GLX_BUFFER_SIZE 2 #define GLX_LEVEL 3 #define GLX_RGBA 4 #define GLX_DOUBLEBUFFER 5 #define GLX_STEREO 6 #define GLX_AUX_BUFFERS 7 #define GLX_RED_SIZE 8 #define GLX_GREEN_SIZE 9 #define GLX_BLUE_SIZE 10 #define GLX_ALPHA_SIZE 11 #define GLX_DEPTH_SIZE 12 #define GLX_STENCIL_SIZE 13 #define GLX_ACCUM_RED_SIZE 14 #define GLX_ACCUM_GREEN_SIZE 15 #define GLX_ACCUM_BLUE_SIZE 16 #define GLX_ACCUM_ALPHA_SIZE 17 /* * Error codes returned by glXGetConfig: */ #define GLX_BAD_SCREEN 1 #define GLX_BAD_ATTRIBUTE 2 #define GLX_NO_EXTENSION 3 #define GLX_BAD_VISUAL 4 #define GLX_BAD_CONTEXT 5 #define GLX_BAD_VALUE 6 #define GLX_BAD_ENUM 7 /* * GLX 1.1 and later: */ #define GLX_VENDOR 1 #define GLX_VERSION 2 #define GLX_EXTENSIONS 3 /* * GLX 1.3 and later: */ #define GLX_CONFIG_CAVEAT 0x20 #define GLX_DONT_CARE 0xFFFFFFFF #define GLX_X_VISUAL_TYPE 0x22 #define GLX_TRANSPARENT_TYPE 0x23 #define GLX_TRANSPARENT_INDEX_VALUE 0x24 #define GLX_TRANSPARENT_RED_VALUE 0x25 #define GLX_TRANSPARENT_GREEN_VALUE 0x26 #define GLX_TRANSPARENT_BLUE_VALUE 0x27 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28 #define GLX_WINDOW_BIT 0x00000001 #define GLX_PIXMAP_BIT 0x00000002 #define GLX_PBUFFER_BIT 0x00000004 #define GLX_AUX_BUFFERS_BIT 0x00000010 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 #define GLX_DEPTH_BUFFER_BIT 0x00000020 #define GLX_STENCIL_BUFFER_BIT 0x00000040 #define GLX_ACCUM_BUFFER_BIT 0x00000080 #define GLX_NONE 0x8000 #define GLX_SLOW_CONFIG 0x8001 #define GLX_TRUE_COLOR 0x8002 #define GLX_DIRECT_COLOR 0x8003 #define GLX_PSEUDO_COLOR 0x8004 #define GLX_STATIC_COLOR 0x8005 #define GLX_GRAY_SCALE 0x8006 #define GLX_STATIC_GRAY 0x8007 #define GLX_TRANSPARENT_RGB 0x8008 #define GLX_TRANSPARENT_INDEX 0x8009 #define GLX_VISUAL_ID 0x800B #define GLX_SCREEN 0x800C #define GLX_NON_CONFORMANT_CONFIG 0x800D #define GLX_DRAWABLE_TYPE 0x8010 #define GLX_RENDER_TYPE 0x8011 #define GLX_X_RENDERABLE 0x8012 #define GLX_FBCONFIG_ID 0x8013 #define GLX_RGBA_TYPE 0x8014 #define GLX_COLOR_INDEX_TYPE 0x8015 #define GLX_MAX_PBUFFER_WIDTH 0x8016 #define GLX_MAX_PBUFFER_HEIGHT 0x8017 #define GLX_MAX_PBUFFER_PIXELS 0x8018 #define GLX_PRESERVED_CONTENTS 0x801B #define GLX_LARGEST_PBUFFER 0x801C #define GLX_WIDTH 0x801D #define GLX_HEIGHT 0x801E #define GLX_EVENT_MASK 0x801F #define GLX_DAMAGED 0x8020 #define GLX_SAVED 0x8021 #define GLX_WINDOW 0x8022 #define GLX_PBUFFER 0x8023 #define GLX_PBUFFER_HEIGHT 0x8040 #define GLX_PBUFFER_WIDTH 0x8041 #define GLX_RGBA_BIT 0x00000001 #define GLX_COLOR_INDEX_BIT 0x00000002 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000 /* * GLX 1.4 and later: */ #define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ #define GLX_SAMPLES 0x186a1 /*100001*/ typedef struct __GLXcontextRec *GLXContext; typedef XID GLXPixmap; typedef XID GLXDrawable; /* GLX 1.3 and later */ typedef struct __GLXFBConfigRec *GLXFBConfig; typedef XID GLXFBConfigID; typedef XID GLXContextID; typedef XID GLXWindow; typedef XID GLXPbuffer; /* ** Events. ** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX ** event - this helps initialization if the server supports the pbuffer ** extension and the client doesn't. */ #define GLX_PbufferClobber 0 #define GLX_BufferSwapComplete 1 #define __GLX_NUMBER_EVENTS 17 extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, int *attribList ); extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct ); extern void glXDestroyContext( Display *dpy, GLXContext ctx ); extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx); extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, unsigned long mask ); extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, Pixmap pixmap ); extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); extern int glXGetConfig( Display *dpy, XVisualInfo *visual, int attrib, int *value ); extern GLXContext glXGetCurrentContext( void ); extern GLXDrawable glXGetCurrentDrawable( void ); extern void glXWaitGL( void ); extern void glXWaitX( void ); extern void glXUseXFont( Font font, int first, int count, int list ); /* GLX 1.1 and later */ extern const char *glXQueryExtensionsString( Display *dpy, int screen ); extern const char *glXQueryServerString( Display *dpy, int screen, int name ); extern const char *glXGetClientString( Display *dpy, int name ); /* GLX 1.2 and later */ extern Display *glXGetCurrentDisplay( void ); /* GLX 1.3 and later */ extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, const int *attribList, int *nitems ); extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, int attribute, int *value ); extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, int *nelements ); extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config ); extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, Window win, const int *attribList ); extern void glXDestroyWindow( Display *dpy, GLXWindow window ); extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attribList ); extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, const int *attribList ); extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, unsigned int *value ); extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, int renderType, GLXContext shareList, Bool direct ); extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx ); extern GLXDrawable glXGetCurrentReadDrawable( void ); extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, int *value ); extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, unsigned long mask ); extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, unsigned long *mask ); /* GLX 1.3 function pointer typedefs */ typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); /* * ARB 2. GLX_ARB_get_proc_address */ #ifndef GLX_ARB_get_proc_address #define GLX_ARB_get_proc_address 1 typedef void (*__GLXextFuncPtr)(void); extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); #endif /* GLX_ARB_get_proc_address */ /* GLX 1.4 and later */ extern void (*glXGetProcAddress(const GLubyte *procname))( void ); /* GLX 1.4 function pointer typedefs */ typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); #ifndef GLX_GLXEXT_LEGACY #include <GL/glxext.h> #endif /* GLX_GLXEXT_LEGACY */ /** ** The following aren't in glxext.h yet. **/ /* * ???. GLX_NV_vertex_array_range */ #ifndef GLX_NV_vertex_array_range #define GLX_NV_vertex_array_range extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); extern void glXFreeMemoryNV(GLvoid *pointer); typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); #endif /* GLX_NV_vertex_array_range */ /* * ARB ?. GLX_ARB_render_texture * XXX This was never finalized! */ #ifndef GLX_ARB_render_texture #define GLX_ARB_render_texture 1 extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); #endif /* GLX_ARB_render_texture */ /* * Remove this when glxext.h is updated. */ #ifndef GLX_NV_float_buffer #define GLX_NV_float_buffer 1 #define GLX_FLOAT_COMPONENTS_NV 0x20B0 #endif /* GLX_NV_float_buffer */ /* * #?. GLX_MESA_swap_frame_usage */ #ifndef GLX_MESA_swap_frame_usage #define GLX_MESA_swap_frame_usage 1 extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); #endif /* GLX_MESA_swap_frame_usage */ /* * #?. GLX_MESA_swap_control */ #ifndef GLX_MESA_swap_control #define GLX_MESA_swap_control 1 extern int glXSwapIntervalMESA(unsigned int interval); extern int glXGetSwapIntervalMESA(void); typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); #endif /* GLX_MESA_swap_control */ /* * #?. GLX_EXT_texture_from_pixmap * XXX not finished? */ #ifndef GLX_EXT_texture_from_pixmap #define GLX_EXT_texture_from_pixmap 1 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 #define GLX_Y_INVERTED_EXT 0x20D4 #define GLX_TEXTURE_FORMAT_EXT 0x20D5 #define GLX_TEXTURE_TARGET_EXT 0x20D6 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA #define GLX_TEXTURE_1D_BIT_EXT 0x00000001 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 #define GLX_TEXTURE_1D_EXT 0x20DB #define GLX_TEXTURE_2D_EXT 0x20DC #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD #define GLX_FRONT_LEFT_EXT 0x20DE #define GLX_FRONT_RIGHT_EXT 0x20DF #define GLX_BACK_LEFT_EXT 0x20E0 #define GLX_BACK_RIGHT_EXT 0x20E1 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT #define GLX_BACK_EXT GLX_BACK_LEFT_EXT #define GLX_AUX0_EXT 0x20E2 #define GLX_AUX1_EXT 0x20E3 #define GLX_AUX2_EXT 0x20E4 #define GLX_AUX3_EXT 0x20E5 #define GLX_AUX4_EXT 0x20E6 #define GLX_AUX5_EXT 0x20E7 #define GLX_AUX6_EXT 0x20E8 #define GLX_AUX7_EXT 0x20E9 #define GLX_AUX8_EXT 0x20EA #define GLX_AUX9_EXT 0x20EB extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); #endif /* GLX_EXT_texture_from_pixmap */ /*** Should these go here, or in another header? */ /* ** GLX Events */ typedef struct { int event_type; /* GLX_DAMAGED or GLX_SAVED */ int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came for SendEvent request */ Display *display; /* display the event was read from */ GLXDrawable drawable; /* XID of Drawable */ unsigned int buffer_mask; /* mask indicating which buffers are affected */ unsigned int aux_buffer; /* which aux buffer was affected */ int x, y; int width, height; int count; /* if nonzero, at least this many more */ } GLXPbufferClobberEvent; typedef struct { int type; unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ GLXDrawable drawable; /* drawable on which event was requested in event mask */ int event_type; int64_t ust; int64_t msc; int64_t sbc; } GLXBufferSwapComplete; typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; GLXBufferSwapComplete glxbufferswapcomplete; long pad[24]; } GLXEvent; #ifdef __cplusplus } #endif #endif |
Added jni/glshim/include/GL/glx_mangle.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /* * Mesa 3-D graphics library * Version: 6.5 * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef GLX_MANGLE_H #define GLX_MANGLE_H #define glXChooseVisual mglXChooseVisual #define glXCreateContext mglXCreateContext #define glXDestroyContext mglXDestroyContext #define glXMakeCurrent mglXMakeCurrent #define glXCopyContext mglXCopyContext #define glXSwapBuffers mglXSwapBuffers #define glXCreateGLXPixmap mglXCreateGLXPixmap #define glXDestroyGLXPixmap mglXDestroyGLXPixmap #define glXQueryExtension mglXQueryExtension #define glXQueryVersion mglXQueryVersion #define glXIsDirect mglXIsDirect #define glXGetConfig mglXGetConfig #define glXGetCurrentContext mglXGetCurrentContext #define glXGetCurrentDrawable mglXGetCurrentDrawable #define glXWaitGL mglXWaitGL #define glXWaitX mglXWaitX #define glXUseXFont mglXUseXFont #define glXQueryExtensionsString mglXQueryExtensionsString #define glXQueryServerString mglXQueryServerString #define glXGetClientString mglXGetClientString #define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA #define glXReleaseBuffersMESA mglXReleaseBuffersMESA #define glXCopySubBufferMESA mglXCopySubBufferMESA #define glXGetVideoSyncSGI mglXGetVideoSyncSGI #define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI /* GLX 1.2 */ #define glXGetCurrentDisplay mglXGetCurrentDisplay /* GLX 1.3 */ #define glXChooseFBConfig mglXChooseFBConfig #define glXGetFBConfigAttrib mglXGetFBConfigAttrib #define glXGetFBConfigs mglXGetFBConfigs #define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig #define glXCreateWindow mglXCreateWindow #define glXDestroyWindow mglXDestroyWindow #define glXCreatePixmap mglXCreatePixmap #define glXDestroyPixmap mglXDestroyPixmap #define glXCreatePbuffer mglXCreatePbuffer #define glXDestroyPbuffer mglXDestroyPbuffer #define glXQueryDrawable mglXQueryDrawable #define glXCreateNewContext mglXCreateNewContext #define glXMakeContextCurrent mglXMakeContextCurrent #define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable #define glXQueryContext mglXQueryContext #define glXSelectEvent mglXSelectEvent #define glXGetSelectedEvent mglXGetSelectedEvent /* GLX 1.4 */ #define glXGetProcAddress mglXGetProcAddress #define glXGetProcAddressARB mglXGetProcAddressARB #endif |
Added jni/glshim/include/GL/glxext.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 | #ifndef __glxext_h_ #define __glxext_h_ #ifdef __cplusplus extern "C" { #endif /* ** Copyright (c) 2007-2010 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ /* Function declaration macros - to move into glplatform.h */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) #define WIN32_LEAN_AND_MEAN 1 #include <windows.h> #endif #ifndef APIENTRY #define APIENTRY #endif #ifndef APIENTRYP #define APIENTRYP APIENTRY * #endif #ifndef GLAPI #define GLAPI extern #endif /*************************************************************/ /* Header file version number, required by OpenGL ABI for Linux */ /* glxext.h last updated 2010/08/06 */ /* Current version at http://www.opengl.org/registry/ */ #define GLX_GLXEXT_VERSION 32 #ifndef GLX_VERSION_1_3 #define GLX_WINDOW_BIT 0x00000001 #define GLX_PIXMAP_BIT 0x00000002 #define GLX_PBUFFER_BIT 0x00000004 #define GLX_RGBA_BIT 0x00000001 #define GLX_COLOR_INDEX_BIT 0x00000002 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 #define GLX_AUX_BUFFERS_BIT 0x00000010 #define GLX_DEPTH_BUFFER_BIT 0x00000020 #define GLX_STENCIL_BUFFER_BIT 0x00000040 #define GLX_ACCUM_BUFFER_BIT 0x00000080 #define GLX_CONFIG_CAVEAT 0x20 #define GLX_X_VISUAL_TYPE 0x22 #define GLX_TRANSPARENT_TYPE 0x23 #define GLX_TRANSPARENT_INDEX_VALUE 0x24 #define GLX_TRANSPARENT_RED_VALUE 0x25 #define GLX_TRANSPARENT_GREEN_VALUE 0x26 #define GLX_TRANSPARENT_BLUE_VALUE 0x27 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28 #define GLX_DONT_CARE 0xFFFFFFFF #define GLX_NONE 0x8000 #define GLX_SLOW_CONFIG 0x8001 #define GLX_TRUE_COLOR 0x8002 #define GLX_DIRECT_COLOR 0x8003 #define GLX_PSEUDO_COLOR 0x8004 #define GLX_STATIC_COLOR 0x8005 #define GLX_GRAY_SCALE 0x8006 #define GLX_STATIC_GRAY 0x8007 #define GLX_TRANSPARENT_RGB 0x8008 #define GLX_TRANSPARENT_INDEX 0x8009 #define GLX_VISUAL_ID 0x800B #define GLX_SCREEN 0x800C #define GLX_NON_CONFORMANT_CONFIG 0x800D #define GLX_DRAWABLE_TYPE 0x8010 #define GLX_RENDER_TYPE 0x8011 #define GLX_X_RENDERABLE 0x8012 #define GLX_FBCONFIG_ID 0x8013 #define GLX_RGBA_TYPE 0x8014 #define GLX_COLOR_INDEX_TYPE 0x8015 #define GLX_MAX_PBUFFER_WIDTH 0x8016 #define GLX_MAX_PBUFFER_HEIGHT 0x8017 #define GLX_MAX_PBUFFER_PIXELS 0x8018 #define GLX_PRESERVED_CONTENTS 0x801B #define GLX_LARGEST_PBUFFER 0x801C #define GLX_WIDTH 0x801D #define GLX_HEIGHT 0x801E #define GLX_EVENT_MASK 0x801F #define GLX_DAMAGED 0x8020 #define GLX_SAVED 0x8021 #define GLX_WINDOW 0x8022 #define GLX_PBUFFER 0x8023 #define GLX_PBUFFER_HEIGHT 0x8040 #define GLX_PBUFFER_WIDTH 0x8041 #endif #ifndef GLX_VERSION_1_4 #define GLX_SAMPLE_BUFFERS 100000 #define GLX_SAMPLES 100001 #endif #ifndef GLX_ARB_get_proc_address #endif #ifndef GLX_ARB_multisample #define GLX_SAMPLE_BUFFERS_ARB 100000 #define GLX_SAMPLES_ARB 100001 #endif #ifndef GLX_ARB_vertex_buffer_object #define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 #endif #ifndef GLX_ARB_fbconfig_float #define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 #define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 #endif #ifndef GLX_ARB_framebuffer_sRGB #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 #endif #ifndef GLX_ARB_create_context #define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_FLAGS_ARB 0x2094 #endif #ifndef GLX_ARB_create_context_profile #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 #endif #ifndef GLX_ARB_create_context_robustness #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 #endif #ifndef GLX_SGIS_multisample #define GLX_SAMPLE_BUFFERS_SGIS 100000 #define GLX_SAMPLES_SGIS 100001 #endif #ifndef GLX_EXT_visual_info #define GLX_X_VISUAL_TYPE_EXT 0x22 #define GLX_TRANSPARENT_TYPE_EXT 0x23 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 #define GLX_NONE_EXT 0x8000 #define GLX_TRUE_COLOR_EXT 0x8002 #define GLX_DIRECT_COLOR_EXT 0x8003 #define GLX_PSEUDO_COLOR_EXT 0x8004 #define GLX_STATIC_COLOR_EXT 0x8005 #define GLX_GRAY_SCALE_EXT 0x8006 #define GLX_STATIC_GRAY_EXT 0x8007 #define GLX_TRANSPARENT_RGB_EXT 0x8008 #define GLX_TRANSPARENT_INDEX_EXT 0x8009 #endif #ifndef GLX_SGI_swap_control #endif #ifndef GLX_SGI_video_sync #endif #ifndef GLX_SGI_make_current_read #endif #ifndef GLX_SGIX_video_source #endif #ifndef GLX_EXT_visual_rating #define GLX_VISUAL_CAVEAT_EXT 0x20 #define GLX_SLOW_VISUAL_EXT 0x8001 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D /* reuse GLX_NONE_EXT */ #endif #ifndef GLX_EXT_import_context #define GLX_SHARE_CONTEXT_EXT 0x800A #define GLX_VISUAL_ID_EXT 0x800B #define GLX_SCREEN_EXT 0x800C #endif #ifndef GLX_SGIX_fbconfig #define GLX_WINDOW_BIT_SGIX 0x00000001 #define GLX_PIXMAP_BIT_SGIX 0x00000002 #define GLX_RGBA_BIT_SGIX 0x00000001 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 #define GLX_DRAWABLE_TYPE_SGIX 0x8010 #define GLX_RENDER_TYPE_SGIX 0x8011 #define GLX_X_RENDERABLE_SGIX 0x8012 #define GLX_FBCONFIG_ID_SGIX 0x8013 #define GLX_RGBA_TYPE_SGIX 0x8014 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 /* reuse GLX_SCREEN_EXT */ #endif #ifndef GLX_SGIX_pbuffer #define GLX_PBUFFER_BIT_SGIX 0x00000004 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A #define GLX_PRESERVED_CONTENTS_SGIX 0x801B #define GLX_LARGEST_PBUFFER_SGIX 0x801C #define GLX_WIDTH_SGIX 0x801D #define GLX_HEIGHT_SGIX 0x801E #define GLX_EVENT_MASK_SGIX 0x801F #define GLX_DAMAGED_SGIX 0x8020 #define GLX_SAVED_SGIX 0x8021 #define GLX_WINDOW_SGIX 0x8022 #define GLX_PBUFFER_SGIX 0x8023 #endif #ifndef GLX_SGI_cushion #endif #ifndef GLX_SGIX_video_resize #define GLX_SYNC_FRAME_SGIX 0x00000000 #define GLX_SYNC_SWAP_SGIX 0x00000001 #endif #ifndef GLX_SGIX_dmbuffer #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 #endif #ifndef GLX_SGIX_swap_group #endif #ifndef GLX_SGIX_swap_barrier #endif #ifndef GLX_SGIS_blended_overlay #define GLX_BLENDED_RGBA_SGIS 0x8025 #endif #ifndef GLX_SGIS_shared_multisample #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 #endif #ifndef GLX_SUN_get_transparent_index #endif #ifndef GLX_3DFX_multisample #define GLX_SAMPLE_BUFFERS_3DFX 0x8050 #define GLX_SAMPLES_3DFX 0x8051 #endif #ifndef GLX_MESA_copy_sub_buffer #endif #ifndef GLX_MESA_pixmap_colormap #endif #ifndef GLX_MESA_release_buffers #endif #ifndef GLX_MESA_set_3dfx_mode #define GLX_3DFX_WINDOW_MODE_MESA 0x1 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 #endif #ifndef GLX_SGIX_visual_select_group #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 #endif #ifndef GLX_OML_swap_method #define GLX_SWAP_METHOD_OML 0x8060 #define GLX_SWAP_EXCHANGE_OML 0x8061 #define GLX_SWAP_COPY_OML 0x8062 #define GLX_SWAP_UNDEFINED_OML 0x8063 #endif #ifndef GLX_OML_sync_control #endif #ifndef GLX_NV_float_buffer #define GLX_FLOAT_COMPONENTS_NV 0x20B0 #endif #ifndef GLX_SGIX_hyperpipe #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 #define GLX_BAD_HYPERPIPE_SGIX 92 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 #define GLX_PIPE_RECT_SGIX 0x00000001 #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 #define GLX_HYPERPIPE_ID_SGIX 0x8030 #endif #ifndef GLX_MESA_agp_offset #endif #ifndef GLX_EXT_fbconfig_packed_float #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 #endif #ifndef GLX_EXT_framebuffer_sRGB #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 #endif #ifndef GLX_EXT_texture_from_pixmap #define GLX_TEXTURE_1D_BIT_EXT 0x00000001 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 #define GLX_Y_INVERTED_EXT 0x20D4 #define GLX_TEXTURE_FORMAT_EXT 0x20D5 #define GLX_TEXTURE_TARGET_EXT 0x20D6 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA #define GLX_TEXTURE_1D_EXT 0x20DB #define GLX_TEXTURE_2D_EXT 0x20DC #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD #define GLX_FRONT_LEFT_EXT 0x20DE #define GLX_FRONT_RIGHT_EXT 0x20DF #define GLX_BACK_LEFT_EXT 0x20E0 #define GLX_BACK_RIGHT_EXT 0x20E1 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT #define GLX_BACK_EXT GLX_BACK_LEFT_EXT #define GLX_AUX0_EXT 0x20E2 #define GLX_AUX1_EXT 0x20E3 #define GLX_AUX2_EXT 0x20E4 #define GLX_AUX3_EXT 0x20E5 #define GLX_AUX4_EXT 0x20E6 #define GLX_AUX5_EXT 0x20E7 #define GLX_AUX6_EXT 0x20E8 #define GLX_AUX7_EXT 0x20E9 #define GLX_AUX8_EXT 0x20EA #define GLX_AUX9_EXT 0x20EB #endif #ifndef GLX_NV_present_video #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 #endif #ifndef GLX_NV_video_out #define GLX_VIDEO_OUT_COLOR_NV 0x20C3 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC #endif #ifndef GLX_NV_swap_group #endif #ifndef GLX_NV_video_capture #define GLX_DEVICE_ID_NV 0x20CD #define GLX_UNIQUE_ID_NV 0x20CE #define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF #endif #ifndef GLX_EXT_swap_control #define GLX_SWAP_INTERVAL_EXT 0x20F1 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 #endif #ifndef GLX_NV_copy_image #endif #ifndef GLX_INTEL_swap_event #define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 #define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 #define GLX_COPY_COMPLETE_INTEL 0x8181 #define GLX_FLIP_COMPLETE_INTEL 0x8182 #endif #ifndef GLX_NV_multisample_coverage #define GLX_COVERAGE_SAMPLES_NV 100001 #define GLX_COLOR_SAMPLES_NV 0x20B3 #endif #ifndef GLX_AMD_gpu_association #define GLX_GPU_VENDOR_AMD 0x1F00 #define GLX_GPU_RENDERER_STRING_AMD 0x1F01 #define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 #define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 #define GLX_GPU_RAM_AMD 0x21A3 #define GLX_GPU_CLOCK_AMD 0x21A4 #define GLX_GPU_NUM_PIPES_AMD 0x21A5 #define GLX_GPU_NUM_SIMD_AMD 0x21A6 #define GLX_GPU_NUM_RB_AMD 0x21A7 #define GLX_GPU_NUM_SPI_AMD 0x21A8 #endif #ifndef GLX_EXT_create_context_es2_profile #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 #endif /*************************************************************/ #ifndef GLX_ARB_get_proc_address typedef void (*__GLXextFuncPtr)(void); #endif #ifndef GLX_SGIX_video_source typedef XID GLXVideoSourceSGIX; #endif #ifndef GLX_SGIX_fbconfig typedef XID GLXFBConfigIDSGIX; typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; #endif #ifndef GLX_SGIX_pbuffer typedef XID GLXPbufferSGIX; typedef struct { int type; unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came for SendEvent request */ Display *display; /* display the event was read from */ GLXDrawable drawable; /* i.d. of Drawable */ int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ unsigned int mask; /* mask indicating which buffers are affected*/ int x, y; int width, height; int count; /* if nonzero, at least this many more */ } GLXBufferClobberEventSGIX; #endif #ifndef GLX_NV_video_output typedef unsigned int GLXVideoDeviceNV; #endif #ifndef GLX_NV_video_capture typedef XID GLXVideoCaptureDeviceNV; #endif #ifndef GLEXT_64_TYPES_DEFINED /* This code block is duplicated in glext.h, so must be protected */ #define GLEXT_64_TYPES_DEFINED /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ /* (as used in the GLX_OML_sync_control extension). */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #include <inttypes.h> #elif defined(__sun__) || defined(__digital__) #include <inttypes.h> #if defined(__STDC__) #if defined(__arch64__) || defined(_LP64) typedef long int int64_t; typedef unsigned long int uint64_t; #else typedef long long int int64_t; typedef unsigned long long int uint64_t; #endif /* __arch64__ */ #endif /* __STDC__ */ #elif defined( __VMS ) || defined(__sgi) #include <inttypes.h> #elif defined(__SCO__) || defined(__USLC__) #include <stdint.h> #elif defined(__UNIXOS2__) || defined(__SOL64__) typedef long int int32_t; typedef long long int int64_t; typedef unsigned long long int uint64_t; #elif defined(_WIN32) && defined(__GNUC__) #include <stdint.h> #elif defined(_WIN32) typedef __int32 int32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #else #include <inttypes.h> /* Fallback option */ #endif #endif #ifndef GLX_VERSION_1_3 #define GLX_VERSION_1_3 1 #ifdef GLX_GLXEXT_PROTOTYPES extern GLXFBConfig * glXGetFBConfigs (Display *dpy, int screen, int *nelements); extern GLXFBConfig * glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements); extern int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value); extern XVisualInfo * glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config); extern GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); extern void glXDestroyWindow (Display *dpy, GLXWindow win); extern GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); extern void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap); extern GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list); extern void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf); extern void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); extern GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); extern Bool glXMakeContextCurrent (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); extern GLXDrawable glXGetCurrentReadDrawable (void); extern Display * glXGetCurrentDisplay (void); extern int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value); extern void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask); extern void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); #endif #ifndef GLX_VERSION_1_4 #define GLX_VERSION_1_4 1 #ifdef GLX_GLXEXT_PROTOTYPES extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); #endif #ifndef GLX_ARB_get_proc_address #define GLX_ARB_get_proc_address 1 #ifdef GLX_GLXEXT_PROTOTYPES extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); #endif #ifndef GLX_ARB_multisample #define GLX_ARB_multisample 1 #endif #ifndef GLX_ARB_fbconfig_float #define GLX_ARB_fbconfig_float 1 #endif #ifndef GLX_ARB_framebuffer_sRGB #define GLX_ARB_framebuffer_sRGB 1 #endif #ifndef GLX_ARB_create_context #define GLX_ARB_create_context 1 #ifdef GLX_GLXEXT_PROTOTYPES extern GLXContext glXCreateContextAttribsARB (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); #endif #ifndef GLX_ARB_create_context_profile #define GLX_ARB_create_context_profile 1 #endif #ifndef GLX_ARB_create_context_robustness #define GLX_ARB_create_context_robustness 1 #endif #ifndef GLX_SGIS_multisample #define GLX_SGIS_multisample 1 #endif #ifndef GLX_EXT_visual_info #define GLX_EXT_visual_info 1 #endif #ifndef GLX_SGI_swap_control #define GLX_SGI_swap_control 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXSwapIntervalSGI (int interval); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); #endif #ifndef GLX_SGI_video_sync #define GLX_SGI_video_sync 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXGetVideoSyncSGI (unsigned int *count); extern int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int *count); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); #endif #ifndef GLX_SGI_make_current_read #define GLX_SGI_make_current_read 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXMakeCurrentReadSGI (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); extern GLXDrawable glXGetCurrentReadDrawableSGI (void); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); #endif #ifndef GLX_SGIX_video_source #define GLX_SGIX_video_source 1 #ifdef _VL_H #ifdef GLX_GLXEXT_PROTOTYPES extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); extern void glXDestroyGLXVideoSourceSGIX (Display *dpy, GLXVideoSourceSGIX glxvideosource); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); #endif /* _VL_H */ #endif #ifndef GLX_EXT_visual_rating #define GLX_EXT_visual_rating 1 #endif #ifndef GLX_EXT_import_context #define GLX_EXT_import_context 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Display * glXGetCurrentDisplayEXT (void); extern int glXQueryContextInfoEXT (Display *dpy, GLXContext context, int attribute, int *value); extern GLXContextID glXGetContextIDEXT (const GLXContext context); extern GLXContext glXImportContextEXT (Display *dpy, GLXContextID contextID); extern void glXFreeContextEXT (Display *dpy, GLXContext context); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); #endif #ifndef GLX_SGIX_fbconfig #define GLX_SGIX_fbconfig 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXGetFBConfigAttribSGIX (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *dpy, int screen, int *attrib_list, int *nelements); extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); extern GLXContext glXCreateContextWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *dpy, GLXFBConfigSGIX config); extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *dpy, XVisualInfo *vis); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); #endif #ifndef GLX_SGIX_pbuffer #define GLX_SGIX_pbuffer 1 #ifdef GLX_GLXEXT_PROTOTYPES extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); extern void glXDestroyGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf); extern int glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); extern void glXSelectEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long mask); extern void glXGetSelectedEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long *mask); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); #endif #ifndef GLX_SGI_cushion #define GLX_SGI_cushion 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXCushionSGI (Display *dpy, Window window, float cushion); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); #endif #ifndef GLX_SGIX_video_resize #define GLX_SGIX_video_resize 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXBindChannelToWindowSGIX (Display *display, int screen, int channel, Window window); extern int glXChannelRectSGIX (Display *display, int screen, int channel, int x, int y, int w, int h); extern int glXQueryChannelRectSGIX (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); extern int glXQueryChannelDeltasSGIX (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); extern int glXChannelRectSyncSGIX (Display *display, int screen, int channel, GLenum synctype); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); #endif #ifndef GLX_SGIX_dmbuffer #define GLX_SGIX_dmbuffer 1 #ifdef _DM_BUFFER_H_ #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXAssociateDMPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); #endif /* _DM_BUFFER_H_ */ #endif #ifndef GLX_SGIX_swap_group #define GLX_SGIX_swap_group 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); #endif #ifndef GLX_SGIX_swap_barrier #define GLX_SGIX_swap_barrier 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier); extern Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); #endif #ifndef GLX_SUN_get_transparent_index #define GLX_SUN_get_transparent_index 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Status glXGetTransparentIndexSUN (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); #endif #ifndef GLX_MESA_copy_sub_buffer #define GLX_MESA_copy_sub_buffer 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXCopySubBufferMESA (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); #endif #ifndef GLX_MESA_pixmap_colormap #define GLX_MESA_pixmap_colormap 1 #ifdef GLX_GLXEXT_PROTOTYPES extern GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); #endif #ifndef GLX_MESA_release_buffers #define GLX_MESA_release_buffers 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXReleaseBuffersMESA (Display *dpy, GLXDrawable drawable); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); #endif #ifndef GLX_MESA_set_3dfx_mode #define GLX_MESA_set_3dfx_mode 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXSet3DfxModeMESA (int mode); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); #endif #ifndef GLX_SGIX_visual_select_group #define GLX_SGIX_visual_select_group 1 #endif #ifndef GLX_OML_swap_method #define GLX_OML_swap_method 1 #endif #ifndef GLX_OML_sync_control #define GLX_OML_sync_control 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXGetSyncValuesOML (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); extern Bool glXGetMscRateOML (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); extern int64_t glXSwapBuffersMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); extern Bool glXWaitForMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); extern Bool glXWaitForSbcOML (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); #endif #ifndef GLX_NV_float_buffer #define GLX_NV_float_buffer 1 #endif #ifndef GLX_SGIX_hyperpipe #define GLX_SGIX_hyperpipe 1 typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int networkId; } GLXHyperpipeNetworkSGIX; typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int channel; unsigned int participationType; int timeSlice; } GLXHyperpipeConfigSGIX; typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int srcXOrigin, srcYOrigin, srcWidth, srcHeight; int destXOrigin, destYOrigin, destWidth, destHeight; } GLXPipeRect; typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int XOrigin, YOrigin, maxHeight, maxWidth; } GLXPipeRectLimits; #ifdef GLX_GLXEXT_PROTOTYPES extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes); extern int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes); extern int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId); extern int glXBindHyperpipeSGIX (Display *dpy, int hpId); extern int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); extern int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList); extern int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); #endif #ifndef GLX_MESA_agp_offset #define GLX_MESA_agp_offset 1 #ifdef GLX_GLXEXT_PROTOTYPES extern unsigned int glXGetAGPOffsetMESA (const void *pointer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); #endif #ifndef GLX_EXT_fbconfig_packed_float #define GLX_EXT_fbconfig_packed_float 1 #endif #ifndef GLX_EXT_framebuffer_sRGB #define GLX_EXT_framebuffer_sRGB 1 #endif #ifndef GLX_EXT_texture_from_pixmap #define GLX_EXT_texture_from_pixmap 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXBindTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); extern void glXReleaseTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); #endif #ifndef GLX_NV_present_video #define GLX_NV_present_video 1 #ifdef GLX_GLXEXT_PROTOTYPES extern unsigned int * glXEnumerateVideoDevicesNV (Display *dpy, int screen, int *nelements); extern int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef unsigned int * ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); #endif #ifndef GLX_NV_video_output #define GLX_NV_video_output 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXGetVideoDeviceNV (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); extern int glXReleaseVideoDeviceNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); extern int glXBindVideoImageNV (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); extern int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf); extern int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); extern int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy, GLXPbuffer pbuf); typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); #endif #ifndef GLX_NV_swap_group #define GLX_NV_swap_group 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Bool glXJoinSwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint group); extern Bool glXBindSwapBarrierNV (Display *dpy, GLuint group, GLuint barrier); extern Bool glXQuerySwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); extern Bool glXQueryMaxSwapGroupsNV (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); extern Bool glXQueryFrameCountNV (Display *dpy, int screen, GLuint *count); extern Bool glXResetFrameCountNV (Display *dpy, int screen); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count); typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); #endif #ifndef GLX_NV_video_capture #define GLX_NV_video_capture 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXBindVideoCaptureDeviceNV (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *dpy, int screen, int *nelements); extern void glXLockVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); extern int glXQueryVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); extern void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements); typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); #endif #ifndef GLX_EXT_swap_control #define GLX_EXT_swap_control 1 #ifdef GLX_GLXEXT_PROTOTYPES extern int glXSwapIntervalEXT (Display *dpy, GLXDrawable drawable, int interval); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval); #endif #ifndef GLX_NV_copy_image #define GLX_NV_copy_image 1 #ifdef GLX_GLXEXT_PROTOTYPES extern void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #endif #ifndef GLX_INTEL_swap_event #define GLX_INTEL_swap_event 1 #endif #ifndef GLX_NV_multisample_coverage #define GLX_NV_multisample_coverage 1 #endif #ifdef __cplusplus } #endif #endif |
Added jni/glshim/include/GL/internal/dri_interface.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 | /* * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. * Copyright 2007-2008 Red Hat, Inc. * (C) Copyright IBM Corporation 2004 * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * on the rights to use, copy, modify, merge, publish, distribute, sub * license, and/or sell copies of the Software, and to permit persons to whom * the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** * \file dri_interface.h * * This file contains all the types and functions that define the interface * between a DRI driver and driver loader. Currently, the most common driver * loader is the XFree86 libGL.so. However, other loaders do exist, and in * the future the server-side libglx.a will also be a loader. * * \author Kevin E. Martin <kevin@precisioninsight.com> * \author Ian Romanick <idr@us.ibm.com> * \author Kristian Høgsberg <krh@redhat.com> */ #ifndef DRI_INTERFACE_H #define DRI_INTERFACE_H /* For archs with no drm.h */ #if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) #ifndef __NOT_HAVE_DRM_H #define __NOT_HAVE_DRM_H #endif #endif #ifndef __NOT_HAVE_DRM_H #include <drm.h> #else typedef unsigned int drm_context_t; typedef unsigned int drm_drawable_t; typedef struct drm_clip_rect drm_clip_rect_t; #endif /** * \name DRI interface structures * * The following structures define the interface between the GLX client * side library and the DRI (direct rendering infrastructure). */ /*@{*/ typedef struct __DRIdisplayRec __DRIdisplay; typedef struct __DRIscreenRec __DRIscreen; typedef struct __DRIcontextRec __DRIcontext; typedef struct __DRIdrawableRec __DRIdrawable; typedef struct __DRIconfigRec __DRIconfig; typedef struct __DRIframebufferRec __DRIframebuffer; typedef struct __DRIversionRec __DRIversion; typedef struct __DRIcoreExtensionRec __DRIcoreExtension; typedef struct __DRIextensionRec __DRIextension; typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension; typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension; typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension; typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension; typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension; typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension; typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension; typedef struct __DRIswrastExtensionRec __DRIswrastExtension; typedef struct __DRIbufferRec __DRIbuffer; typedef struct __DRIdri2ExtensionRec __DRIdri2Extension; typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension; typedef struct __DRI2flushExtensionRec __DRI2flushExtension; /*@}*/ /** * Extension struct. Drivers 'inherit' from this struct by embedding * it as the first element in the extension struct. * * We never break API in for a DRI extension. If we need to change * the way things work in a non-backwards compatible manner, we * introduce a new extension. During a transition period, we can * leave both the old and the new extension in the driver, which * allows us to move to the new interface without having to update the * loader(s) in lock step. * * However, we can add entry points to an extension over time as long * as we don't break the old ones. As we add entry points to an * extension, we increase the version number. The corresponding * #define can be used to guard code that accesses the new entry * points at compile time and the version field in the extension * struct can be used at run-time to determine how to use the * extension. */ struct __DRIextensionRec { const char *name; int version; }; /** * The first set of extension are the screen extensions, returned by * __DRIcore::getExtensions(). This entry point will return a list of * extensions and the loader can use the ones it knows about by * casting them to more specific extensions and advertising any GLX * extensions the DRI extensions enables. */ /** * Used by drivers to indicate support for setting the read drawable. */ #define __DRI_READ_DRAWABLE "DRI_ReadDrawable" #define __DRI_READ_DRAWABLE_VERSION 1 /** * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension. */ #define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer" #define __DRI_COPY_SUB_BUFFER_VERSION 1 struct __DRIcopySubBufferExtensionRec { __DRIextension base; void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h); }; /** * Used by drivers that implement the GLX_SGI_swap_control or * GLX_MESA_swap_control extension. */ #define __DRI_SWAP_CONTROL "DRI_SwapControl" #define __DRI_SWAP_CONTROL_VERSION 1 struct __DRIswapControlExtensionRec { __DRIextension base; void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval); unsigned int (*getSwapInterval)(__DRIdrawable *drawable); }; /** * Used by drivers that implement the GLX_MESA_swap_frame_usage extension. */ #define __DRI_FRAME_TRACKING "DRI_FrameTracking" #define __DRI_FRAME_TRACKING_VERSION 1 struct __DRIframeTrackingExtensionRec { __DRIextension base; /** * Enable or disable frame usage tracking. * * \since Internal API version 20030317. */ int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable); /** * Retrieve frame usage information. * * \since Internal API version 20030317. */ int (*queryFrameTracking)(__DRIdrawable *drawable, int64_t * sbc, int64_t * missedFrames, float * lastMissedUsage, float * usage); }; /** * Used by drivers that implement the GLX_SGI_video_sync extension. */ #define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter" #define __DRI_MEDIA_STREAM_COUNTER_VERSION 1 struct __DRImediaStreamCounterExtensionRec { __DRIextension base; /** * Wait for the MSC to equal target_msc, or, if that has already passed, * the next time (MSC % divisor) is equal to remainder. If divisor is * zero, the function will return as soon as MSC is greater than or equal * to target_msc. */ int (*waitForMSC)(__DRIdrawable *drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * msc, int64_t * sbc); /** * Get the number of vertical refreshes since some point in time before * this function was first called (i.e., system start up). */ int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable, int64_t *msc); }; #define __DRI_TEX_OFFSET "DRI_TexOffset" #define __DRI_TEX_OFFSET_VERSION 1 struct __DRItexOffsetExtensionRec { __DRIextension base; /** * Method to override base texture image with a driver specific 'offset'. * The depth passed in allows e.g. to ignore the alpha channel of texture * images where the non-alpha components don't occupy a whole texel. * * For GLX_EXT_texture_from_pixmap with AIGLX. */ void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname, unsigned long long offset, GLint depth, GLuint pitch); }; /* Valid values for format in the setTexBuffer2 function below. These * values match the GLX tokens for compatibility reasons, but we * define them here since the DRI interface can't depend on GLX. */ #define __DRI_TEXTURE_FORMAT_NONE 0x20D8 #define __DRI_TEXTURE_FORMAT_RGB 0x20D9 #define __DRI_TEXTURE_FORMAT_RGBA 0x20DA #define __DRI_TEX_BUFFER "DRI_TexBuffer" #define __DRI_TEX_BUFFER_VERSION 2 struct __DRItexBufferExtensionRec { __DRIextension base; /** * Method to override base texture image with the contents of a * __DRIdrawable. * * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of * setTexBuffer2 in version 2 of this interface */ void (*setTexBuffer)(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *pDraw); /** * Method to override base texture image with the contents of a * __DRIdrawable, including the required texture format attribute. * * For GLX_EXT_texture_from_pixmap with AIGLX. */ void (*setTexBuffer2)(__DRIcontext *pDRICtx, GLint target, GLint format, __DRIdrawable *pDraw); }; /** * Used by drivers that implement DRI2 */ #define __DRI2_FLUSH "DRI2_Flush" #define __DRI2_FLUSH_VERSION 3 struct __DRI2flushExtensionRec { __DRIextension base; void (*flush)(__DRIdrawable *drawable); /** * Ask the driver to call getBuffers/getBuffersWithFormat before * it starts rendering again. * * \param drawable the drawable to invalidate * * \since 3 */ void (*invalidate)(__DRIdrawable *drawable); }; /** * XML document describing the configuration options supported by the * driver. */ extern const char __driConfigOptions[]; /*@}*/ /** * The following extensions describe loader features that the DRI * driver can make use of. Some of these are mandatory, such as the * getDrawableInfo extension for DRI and the DRI Loader extensions for * DRI2, while others are optional, and if present allow the driver to * expose certain features. The loader pass in a NULL terminated * array of these extensions to the driver in the createNewScreen * constructor. */ typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension; typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension; typedef struct __DRIdamageExtensionRec __DRIdamageExtension; typedef struct __DRIloaderExtensionRec __DRIloaderExtension; typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension; /** * Callback to getDrawableInfo protocol */ #define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo" #define __DRI_GET_DRAWABLE_INFO_VERSION 1 struct __DRIgetDrawableInfoExtensionRec { __DRIextension base; /** * This function is used to get information about the position, size, and * clip rects of a drawable. */ GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable, unsigned int * index, unsigned int * stamp, int * x, int * y, int * width, int * height, int * numClipRects, drm_clip_rect_t ** pClipRects, int * backX, int * backY, int * numBackClipRects, drm_clip_rect_t ** pBackClipRects, void *loaderPrivate); }; /** * Callback to get system time for media stream counter extensions. */ #define __DRI_SYSTEM_TIME "DRI_SystemTime" #define __DRI_SYSTEM_TIME_VERSION 1 struct __DRIsystemTimeExtensionRec { __DRIextension base; /** * Get the 64-bit unadjusted system time (UST). */ int (*getUST)(int64_t * ust); /** * Get the media stream counter (MSC) rate. * * Matching the definition in GLX_OML_sync_control, this function returns * the rate of the "media stream counter". In practical terms, this is * the frame refresh rate of the display. */ GLboolean (*getMSCRate)(__DRIdrawable *draw, int32_t * numerator, int32_t * denominator, void *loaderPrivate); }; /** * Damage reporting */ #define __DRI_DAMAGE "DRI_Damage" #define __DRI_DAMAGE_VERSION 1 struct __DRIdamageExtensionRec { __DRIextension base; /** * Reports areas of the given drawable which have been modified by the * driver. * * \param drawable which the drawing was done to. * \param rects rectangles affected, with the drawable origin as the * origin. * \param x X offset of the drawable within the screen (used in the * front_buffer case) * \param y Y offset of the drawable within the screen. * \param front_buffer boolean flag for whether the drawing to the * drawable was actually done directly to the front buffer (instead * of backing storage, for example) * \param loaderPrivate the data passed in at createNewDrawable time */ void (*reportDamage)(__DRIdrawable *draw, int x, int y, drm_clip_rect_t *rects, int num_rects, GLboolean front_buffer, void *loaderPrivate); }; #define __DRI_SWRAST_IMAGE_OP_DRAW 1 #define __DRI_SWRAST_IMAGE_OP_CLEAR 2 #define __DRI_SWRAST_IMAGE_OP_SWAP 3 /** * SWRast Loader extension. */ #define __DRI_SWRAST_LOADER "DRI_SWRastLoader" #define __DRI_SWRAST_LOADER_VERSION 1 struct __DRIswrastLoaderExtensionRec { __DRIextension base; /* * Drawable position and size */ void (*getDrawableInfo)(__DRIdrawable *drawable, int *x, int *y, int *width, int *height, void *loaderPrivate); /** * Put image to drawable */ void (*putImage)(__DRIdrawable *drawable, int op, int x, int y, int width, int height, char *data, void *loaderPrivate); /** * Get image from readable */ void (*getImage)(__DRIdrawable *readable, int x, int y, int width, int height, char *data, void *loaderPrivate); }; /** * Invalidate loader extension. The presence of this extension * indicates to the DRI driver that the loader will call invalidate in * the __DRI2_FLUSH extension, whenever the needs to query for new * buffers. This means that the DRI driver can drop the polling in * glViewport(). * * The extension doesn't provide any functionality, it's only use to * indicate to the driver that it can use the new semantics. A DRI * driver can use this to switch between the different semantics or * just refuse to initialize if this extension isn't present. */ #define __DRI_USE_INVALIDATE "DRI_UseInvalidate" #define __DRI_USE_INVALIDATE_VERSION 1 typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension; struct __DRIuseInvalidateExtensionRec { __DRIextension base; }; /** * The remaining extensions describe driver extensions, immediately * available interfaces provided by the driver. To start using the * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for * the extension you need in the array. */ #define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions" /** * Tokens for __DRIconfig attribs. A number of attributes defined by * GLX or EGL standards are not in the table, as they must be provided * by the loader. For example, FBConfig ID or visual ID, drawable type. */ #define __DRI_ATTRIB_BUFFER_SIZE 1 #define __DRI_ATTRIB_LEVEL 2 #define __DRI_ATTRIB_RED_SIZE 3 #define __DRI_ATTRIB_GREEN_SIZE 4 #define __DRI_ATTRIB_BLUE_SIZE 5 #define __DRI_ATTRIB_LUMINANCE_SIZE 6 #define __DRI_ATTRIB_ALPHA_SIZE 7 #define __DRI_ATTRIB_ALPHA_MASK_SIZE 8 #define __DRI_ATTRIB_DEPTH_SIZE 9 #define __DRI_ATTRIB_STENCIL_SIZE 10 #define __DRI_ATTRIB_ACCUM_RED_SIZE 11 #define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12 #define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13 #define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14 #define __DRI_ATTRIB_SAMPLE_BUFFERS 15 #define __DRI_ATTRIB_SAMPLES 16 #define __DRI_ATTRIB_RENDER_TYPE 17 #define __DRI_ATTRIB_CONFIG_CAVEAT 18 #define __DRI_ATTRIB_CONFORMANT 19 #define __DRI_ATTRIB_DOUBLE_BUFFER 20 #define __DRI_ATTRIB_STEREO 21 #define __DRI_ATTRIB_AUX_BUFFERS 22 #define __DRI_ATTRIB_TRANSPARENT_TYPE 23 #define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24 #define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25 #define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26 #define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27 #define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28 #define __DRI_ATTRIB_FLOAT_MODE 29 #define __DRI_ATTRIB_RED_MASK 30 #define __DRI_ATTRIB_GREEN_MASK 31 #define __DRI_ATTRIB_BLUE_MASK 32 #define __DRI_ATTRIB_ALPHA_MASK 33 #define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34 #define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35 #define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36 #define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37 #define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38 #define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39 #define __DRI_ATTRIB_SWAP_METHOD 40 #define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41 #define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42 #define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43 #define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44 #define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45 #define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46 #define __DRI_ATTRIB_YINVERTED 47 /* __DRI_ATTRIB_RENDER_TYPE */ #define __DRI_ATTRIB_RGBA_BIT 0x01 #define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02 #define __DRI_ATTRIB_LUMINANCE_BIT 0x04 /* __DRI_ATTRIB_CONFIG_CAVEAT */ #define __DRI_ATTRIB_SLOW_BIT 0x01 #define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02 /* __DRI_ATTRIB_TRANSPARENT_TYPE */ #define __DRI_ATTRIB_TRANSPARENT_RGB 0x00 #define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01 /* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */ #define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01 #define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02 #define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04 /** * This extension defines the core DRI functionality. */ #define __DRI_CORE "DRI_Core" #define __DRI_CORE_VERSION 1 struct __DRIcoreExtensionRec { __DRIextension base; __DRIscreen *(*createNewScreen)(int screen, int fd, unsigned int sarea_handle, const __DRIextension **extensions, const __DRIconfig ***driverConfigs, void *loaderPrivate); void (*destroyScreen)(__DRIscreen *screen); const __DRIextension **(*getExtensions)(__DRIscreen *screen); int (*getConfigAttrib)(const __DRIconfig *config, unsigned int attrib, unsigned int *value); int (*indexConfigAttrib)(const __DRIconfig *config, int index, unsigned int *attrib, unsigned int *value); __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, const __DRIconfig *config, unsigned int drawable_id, unsigned int head, void *loaderPrivate); void (*destroyDrawable)(__DRIdrawable *drawable); void (*swapBuffers)(__DRIdrawable *drawable); __DRIcontext *(*createNewContext)(__DRIscreen *screen, const __DRIconfig *config, __DRIcontext *shared, void *loaderPrivate); int (*copyContext)(__DRIcontext *dest, __DRIcontext *src, unsigned long mask); void (*destroyContext)(__DRIcontext *context); int (*bindContext)(__DRIcontext *ctx, __DRIdrawable *pdraw, __DRIdrawable *pread); int (*unbindContext)(__DRIcontext *ctx); }; /** * Stored version of some component (i.e., server-side DRI module, kernel-side * DRM, etc.). * * \todo * There are several data structures that explicitly store a major version, * minor version, and patch level. These structures should be modified to * have a \c __DRIversionRec instead. */ struct __DRIversionRec { int major; /**< Major version number. */ int minor; /**< Minor version number. */ int patch; /**< Patch-level. */ }; /** * Framebuffer information record. Used by libGL to communicate information * about the framebuffer to the driver's \c __driCreateNewScreen function. * * In XFree86, most of this information is derrived from data returned by * calling \c XF86DRIGetDeviceInfo. * * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen * __driUtilCreateNewScreen CallCreateNewScreen * * \bug This structure could be better named. */ struct __DRIframebufferRec { unsigned char *base; /**< Framebuffer base address in the CPU's * address space. This value is calculated by * calling \c drmMap on the framebuffer handle * returned by \c XF86DRIGetDeviceInfo (or a * similar function). */ int size; /**< Framebuffer size, in bytes. */ int stride; /**< Number of bytes from one line to the next. */ int width; /**< Pixel width of the framebuffer. */ int height; /**< Pixel height of the framebuffer. */ int dev_priv_size; /**< Size of the driver's dev-priv structure. */ void *dev_priv; /**< Pointer to the driver's dev-priv structure. */ }; /** * This extension provides alternative screen, drawable and context * constructors for legacy DRI functionality. This is used in * conjunction with the core extension. */ #define __DRI_LEGACY "DRI_Legacy" #define __DRI_LEGACY_VERSION 1 struct __DRIlegacyExtensionRec { __DRIextension base; __DRIscreen *(*createNewScreen)(int screen, const __DRIversion *ddx_version, const __DRIversion *dri_version, const __DRIversion *drm_version, const __DRIframebuffer *frame_buffer, void *pSAREA, int fd, const __DRIextension **extensions, const __DRIconfig ***driver_configs, void *loaderPrivate); __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, const __DRIconfig *config, drm_drawable_t hwDrawable, int renderType, const int *attrs, void *loaderPrivate); __DRIcontext *(*createNewContext)(__DRIscreen *screen, const __DRIconfig *config, int render_type, __DRIcontext *shared, drm_context_t hwContext, void *loaderPrivate); }; /** * This extension provides alternative screen, drawable and context * constructors for swrast DRI functionality. This is used in * conjunction with the core extension. */ #define __DRI_SWRAST "DRI_SWRast" #define __DRI_SWRAST_VERSION 1 struct __DRIswrastExtensionRec { __DRIextension base; __DRIscreen *(*createNewScreen)(int screen, const __DRIextension **extensions, const __DRIconfig ***driver_configs, void *loaderPrivate); __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, const __DRIconfig *config, void *loaderPrivate); }; /** * DRI2 Loader extension. */ #define __DRI_BUFFER_FRONT_LEFT 0 #define __DRI_BUFFER_BACK_LEFT 1 #define __DRI_BUFFER_FRONT_RIGHT 2 #define __DRI_BUFFER_BACK_RIGHT 3 #define __DRI_BUFFER_DEPTH 4 #define __DRI_BUFFER_STENCIL 5 #define __DRI_BUFFER_ACCUM 6 #define __DRI_BUFFER_FAKE_FRONT_LEFT 7 #define __DRI_BUFFER_FAKE_FRONT_RIGHT 8 #define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */ struct __DRIbufferRec { unsigned int attachment; unsigned int name; unsigned int pitch; unsigned int cpp; unsigned int flags; }; #define __DRI_DRI2_LOADER "DRI_DRI2Loader" #define __DRI_DRI2_LOADER_VERSION 3 struct __DRIdri2LoaderExtensionRec { __DRIextension base; __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable, int *width, int *height, unsigned int *attachments, int count, int *out_count, void *loaderPrivate); /** * Flush pending front-buffer rendering * * Any rendering that has been performed to the * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the * \c __DRI_BUFFER_FRONT_LEFT. * * \param driDrawable Drawable whose front-buffer is to be flushed * \param loaderPrivate Loader's private data that was previously passed * into __DRIdri2ExtensionRec::createNewDrawable */ void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); /** * Get list of buffers from the server * * Gets a list of buffer for the specified set of attachments. Unlike * \c ::getBuffers, this function takes a list of attachments paired with * opaque \c unsigned \c int value describing the format of the buffer. * It is the responsibility of the caller to know what the service that * allocates the buffers will expect to receive for the format. * * \param driDrawable Drawable whose buffers are being queried. * \param width Output where the width of the buffers is stored. * \param height Output where the height of the buffers is stored. * \param attachments List of pairs of attachment ID and opaque format * requested for the drawable. * \param count Number of attachment / format pairs stored in * \c attachments. * \param loaderPrivate Loader's private data that was previously passed * into __DRIdri2ExtensionRec::createNewDrawable. */ __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable, int *width, int *height, unsigned int *attachments, int count, int *out_count, void *loaderPrivate); }; /** * This extension provides alternative screen, drawable and context * constructors for DRI2. */ #define __DRI_DRI2 "DRI_DRI2" #define __DRI_DRI2_VERSION 2 #define __DRI_API_OPENGL 0 #define __DRI_API_GLES 1 #define __DRI_API_GLES2 2 struct __DRIdri2ExtensionRec { __DRIextension base; __DRIscreen *(*createNewScreen)(int screen, int fd, const __DRIextension **extensions, const __DRIconfig ***driver_configs, void *loaderPrivate); __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, const __DRIconfig *config, void *loaderPrivate); __DRIcontext *(*createNewContext)(__DRIscreen *screen, const __DRIconfig *config, __DRIcontext *shared, void *loaderPrivate); /* Since version 2 */ unsigned int (*getAPIMask)(__DRIscreen *screen); __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen, int api, const __DRIconfig *config, __DRIcontext *shared, void *data); }; /** * This extension provides functionality to enable various EGLImage * extensions. */ #define __DRI_IMAGE "DRI_IMAGE" #define __DRI_IMAGE_VERSION 1 /** * These formats correspond to the similarly named MESA_FORMAT_* * tokens, except in the native endian of the CPU. For example, on * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian. */ #define __DRI_IMAGE_FORMAT_RGB565 0x1001 #define __DRI_IMAGE_FORMAT_XRGB8888 0x1002 #define __DRI_IMAGE_FORMAT_ARGB8888 0x1003 #define __DRI_IMAGE_USE_SHARE 0x0001 #define __DRI_IMAGE_USE_SCANOUT 0x0002 /** * queryImage attributes */ #define __DRI_IMAGE_ATTRIB_STRIDE 0x2000 #define __DRI_IMAGE_ATTRIB_HANDLE 0x2001 #define __DRI_IMAGE_ATTRIB_NAME 0x2002 typedef struct __DRIimageRec __DRIimage; typedef struct __DRIimageExtensionRec __DRIimageExtension; struct __DRIimageExtensionRec { __DRIextension base; __DRIimage *(*createImageFromName)(__DRIscreen *screen, int width, int height, int format, int name, int pitch, void *loaderPrivate); __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context, int renderbuffer, void *loaderPrivate); void (*destroyImage)(__DRIimage *image); __DRIimage *(*createImage)(__DRIscreen *screen, int width, int height, int format, unsigned int use, void *loaderPrivate); GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value); }; /** * This extension must be implemented by the loader and passed to the * driver at screen creation time. The EGLImage entry points in the * various client APIs take opaque EGLImage handles and use this * extension to map them to a __DRIimage. At version 1, this * extensions allows mapping EGLImage pointers to __DRIimage pointers, * but future versions could support other EGLImage-like, opaque types * with new lookup functions. */ #define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP" #define __DRI_IMAGE_LOOKUP_VERSION 1 typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension; struct __DRIimageLookupExtensionRec { __DRIextension base; __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image, void *loaderPrivate); }; /** * This extension allows for common DRI2 options */ #define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY" #define __DRI2_CONFIG_QUERY_VERSION 1 typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension; struct __DRI2configQueryExtensionRec { __DRIextension base; int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val); int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val); int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val); }; #endif |
Added jni/glshim/include/GLES/egl.h.
> > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /* * Skeleton egl.h to provide compatibility for early GLES 1.0 * applications. Several early implementations included gl.h * in egl.h leading applications to include only egl.h * * $Revision: 6252 $ on $Date:: 2008-08-06 16:35:08 -0700 #$ */ #ifndef __legacy_egl_h_ #define __legacy_egl_h_ #include <EGL/egl.h> #include <GLES/gl.h> #endif /* __legacy_egl_h_ */ |
Added jni/glshim/include/GLES/gl.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 | #ifndef __gl_h_ #define __gl_h_ /* $Revision: 10601 $ on $Date:: 2010-03-04 22:15:27 -0800 #$ */ #include <GLES/glplatform.h> #ifdef __cplusplus extern "C" { #endif /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ typedef void GLvoid; typedef char GLchar; typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef khronos_int8_t GLbyte; typedef short GLshort; typedef int GLint; typedef int GLsizei; typedef khronos_uint8_t GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef khronos_float_t GLfloat; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_int32_t GLclampx; typedef khronos_intptr_t GLintptr; typedef khronos_ssize_t GLsizeiptr; /*************************************************************/ /* OpenGL ES core versions */ #define GL_VERSION_ES_CM_1_0 1 #define GL_VERSION_ES_CL_1_0 1 #define GL_VERSION_ES_CM_1_1 1 #define GL_VERSION_ES_CL_1_1 1 /* ClearBufferMask */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 /* Boolean */ #define GL_FALSE 0 #define GL_TRUE 1 /* BeginMode */ #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 /* AlphaFunction */ #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 /* BlendingFactorDest */ #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 /* BlendingFactorSrc */ /* GL_ZERO */ /* GL_ONE */ #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 /* GL_SRC_ALPHA */ /* GL_ONE_MINUS_SRC_ALPHA */ /* GL_DST_ALPHA */ /* GL_ONE_MINUS_DST_ALPHA */ /* ClipPlaneName */ #define GL_CLIP_PLANE0 0x3000 #define GL_CLIP_PLANE1 0x3001 #define GL_CLIP_PLANE2 0x3002 #define GL_CLIP_PLANE3 0x3003 #define GL_CLIP_PLANE4 0x3004 #define GL_CLIP_PLANE5 0x3005 /* ColorMaterialFace */ /* GL_FRONT_AND_BACK */ /* ColorMaterialParameter */ /* GL_AMBIENT_AND_DIFFUSE */ /* ColorPointerType */ /* GL_UNSIGNED_BYTE */ /* GL_FLOAT */ /* GL_FIXED */ /* CullFaceMode */ #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 /* DepthFunction */ /* GL_NEVER */ /* GL_LESS */ /* GL_EQUAL */ /* GL_LEQUAL */ /* GL_GREATER */ /* GL_NOTEQUAL */ /* GL_GEQUAL */ /* GL_ALWAYS */ /* EnableCap */ #define GL_FOG 0x0B60 #define GL_LIGHTING 0x0B50 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_ALPHA_TEST 0x0BC0 #define GL_BLEND 0x0BE2 #define GL_COLOR_LOGIC_OP 0x0BF2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 /* GL_LIGHT0 */ /* GL_LIGHT1 */ /* GL_LIGHT2 */ /* GL_LIGHT3 */ /* GL_LIGHT4 */ /* GL_LIGHT5 */ /* GL_LIGHT6 */ /* GL_LIGHT7 */ #define GL_POINT_SMOOTH 0x0B10 #define GL_LINE_SMOOTH 0x0B20 #define GL_SCISSOR_TEST 0x0C11 #define GL_COLOR_MATERIAL 0x0B57 #define GL_NORMALIZE 0x0BA1 #define GL_RESCALE_NORMAL 0x803A #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_VERTEX_ARRAY 0x8074 #define GL_NORMAL_ARRAY 0x8075 #define GL_COLOR_ARRAY 0x8076 #define GL_TEXTURE_COORD_ARRAY 0x8078 #define GL_MULTISAMPLE 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_ONE 0x809F #define GL_SAMPLE_COVERAGE 0x80A0 /* ErrorCode */ #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #define GL_OUT_OF_MEMORY 0x0505 /* FogMode */ /* GL_LINEAR */ #define GL_EXP 0x0800 #define GL_EXP2 0x0801 /* FogParameter */ #define GL_FOG_DENSITY 0x0B62 #define GL_FOG_START 0x0B63 #define GL_FOG_END 0x0B64 #define GL_FOG_MODE 0x0B65 #define GL_FOG_COLOR 0x0B66 /* FrontFaceDirection */ #define GL_CW 0x0900 #define GL_CCW 0x0901 /* GetPName */ #define GL_CURRENT_COLOR 0x0B00 #define GL_CURRENT_NORMAL 0x0B02 #define GL_CURRENT_TEXTURE_COORDS 0x0B03 #define GL_POINT_SIZE 0x0B11 #define GL_POINT_SIZE_MIN 0x8126 #define GL_POINT_SIZE_MAX 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 #define GL_POINT_DISTANCE_ATTENUATION 0x8129 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 #define GL_LINE_WIDTH 0x0B21 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_SHADE_MODEL 0x0B54 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_MATRIX_MODE 0x0BA0 #define GL_VIEWPORT 0x0BA2 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3 #define GL_PROJECTION_STACK_DEPTH 0x0BA4 #define GL_TEXTURE_STACK_DEPTH 0x0BA5 #define GL_MODELVIEW_MATRIX 0x0BA6 #define GL_PROJECTION_MATRIX 0x0BA7 #define GL_TEXTURE_MATRIX 0x0BA8 #define GL_ALPHA_TEST_FUNC 0x0BC1 #define GL_ALPHA_TEST_REF 0x0BC2 #define GL_BLEND_DST 0x0BE0 #define GL_BLEND_SRC 0x0BE1 #define GL_LOGIC_OP_MODE 0x0BF0 #define GL_SCISSOR_BOX 0x0C10 #define GL_SCISSOR_TEST 0x0C11 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_LIGHTS 0x0D31 #define GL_MAX_CLIP_PLANES 0x0D32 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_MAX_TEXTURE_UNITS 0x84E2 #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_VERTEX_ARRAY_SIZE 0x807A #define GL_VERTEX_ARRAY_TYPE 0x807B #define GL_VERTEX_ARRAY_STRIDE 0x807C #define GL_NORMAL_ARRAY_TYPE 0x807E #define GL_NORMAL_ARRAY_STRIDE 0x807F #define GL_COLOR_ARRAY_SIZE 0x8081 #define GL_COLOR_ARRAY_TYPE 0x8082 #define GL_COLOR_ARRAY_STRIDE 0x8083 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A #define GL_VERTEX_ARRAY_POINTER 0x808E #define GL_NORMAL_ARRAY_POINTER 0x808F #define GL_COLOR_ARRAY_POINTER 0x8090 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB /* GetTextureParameter */ /* GL_TEXTURE_MAG_FILTER */ /* GL_TEXTURE_MIN_FILTER */ /* GL_TEXTURE_WRAP_S */ /* GL_TEXTURE_WRAP_T */ #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 /* HintMode */ #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 /* HintTarget */ #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 #define GL_POINT_SMOOTH_HINT 0x0C51 #define GL_LINE_SMOOTH_HINT 0x0C52 #define GL_FOG_HINT 0x0C54 #define GL_GENERATE_MIPMAP_HINT 0x8192 /* LightModelParameter */ #define GL_LIGHT_MODEL_AMBIENT 0x0B53 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 /* LightParameter */ #define GL_AMBIENT 0x1200 #define GL_DIFFUSE 0x1201 #define GL_SPECULAR 0x1202 #define GL_POSITION 0x1203 #define GL_SPOT_DIRECTION 0x1204 #define GL_SPOT_EXPONENT 0x1205 #define GL_SPOT_CUTOFF 0x1206 #define GL_CONSTANT_ATTENUATION 0x1207 #define GL_LINEAR_ATTENUATION 0x1208 #define GL_QUADRATIC_ATTENUATION 0x1209 /* DataType */ #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C /* LogicOp */ #define GL_CLEAR 0x1500 #define GL_AND 0x1501 #define GL_AND_REVERSE 0x1502 #define GL_COPY 0x1503 #define GL_AND_INVERTED 0x1504 #define GL_NOOP 0x1505 #define GL_XOR 0x1506 #define GL_OR 0x1507 #define GL_NOR 0x1508 #define GL_EQUIV 0x1509 #define GL_INVERT 0x150A #define GL_OR_REVERSE 0x150B #define GL_COPY_INVERTED 0x150C #define GL_OR_INVERTED 0x150D #define GL_NAND 0x150E #define GL_SET 0x150F /* MaterialFace */ /* GL_FRONT_AND_BACK */ /* MaterialParameter */ #define GL_EMISSION 0x1600 #define GL_SHININESS 0x1601 #define GL_AMBIENT_AND_DIFFUSE 0x1602 /* GL_AMBIENT */ /* GL_DIFFUSE */ /* GL_SPECULAR */ /* MatrixMode */ #define GL_MODELVIEW 0x1700 #define GL_PROJECTION 0x1701 #define GL_TEXTURE 0x1702 /* NormalPointerType */ /* GL_BYTE */ /* GL_SHORT */ /* GL_FLOAT */ /* GL_FIXED */ /* PixelFormat */ #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A /* PixelStoreParameter */ #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 /* PixelType */ /* GL_UNSIGNED_BYTE */ #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 /* ShadingModel */ #define GL_FLAT 0x1D00 #define GL_SMOOTH 0x1D01 /* StencilFunction */ /* GL_NEVER */ /* GL_LESS */ /* GL_EQUAL */ /* GL_LEQUAL */ /* GL_GREATER */ /* GL_NOTEQUAL */ /* GL_GEQUAL */ /* GL_ALWAYS */ /* StencilOp */ /* GL_ZERO */ #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 /* GL_INVERT */ /* StringName */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 /* TexCoordPointerType */ /* GL_SHORT */ /* GL_FLOAT */ /* GL_FIXED */ /* GL_BYTE */ /* TextureEnvMode */ #define GL_MODULATE 0x2100 #define GL_DECAL 0x2101 /* GL_BLEND */ #define GL_ADD 0x0104 /* GL_REPLACE */ /* TextureEnvParameter */ #define GL_TEXTURE_ENV_MODE 0x2200 #define GL_TEXTURE_ENV_COLOR 0x2201 /* TextureEnvTarget */ #define GL_TEXTURE_ENV 0x2300 /* TextureMagFilter */ #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 /* TextureMinFilter */ /* GL_NEAREST */ /* GL_LINEAR */ #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 /* TextureParameterName */ #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_GENERATE_MIPMAP 0x8191 /* TextureTarget */ /* GL_TEXTURE_2D */ /* TextureUnit */ #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 /* TextureWrapMode */ #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F /* VertexPointerType */ /* GL_SHORT */ /* GL_FLOAT */ /* GL_FIXED */ /* GL_BYTE */ /* LightName */ #define GL_LIGHT0 0x4000 #define GL_LIGHT1 0x4001 #define GL_LIGHT2 0x4002 #define GL_LIGHT3 0x4003 #define GL_LIGHT4 0x4004 #define GL_LIGHT5 0x4005 #define GL_LIGHT6 0x4006 #define GL_LIGHT7 0x4007 /* Buffer Objects */ #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 /* Texture combine + dot3 */ #define GL_SUBTRACT 0x84E7 #define GL_COMBINE 0x8570 #define GL_COMBINE_RGB 0x8571 #define GL_COMBINE_ALPHA 0x8572 #define GL_RGB_SCALE 0x8573 #define GL_ADD_SIGNED 0x8574 #define GL_INTERPOLATE 0x8575 #define GL_CONSTANT 0x8576 #define GL_PRIMARY_COLOR 0x8577 #define GL_PREVIOUS 0x8578 #define GL_OPERAND0_RGB 0x8590 #define GL_OPERAND1_RGB 0x8591 #define GL_OPERAND2_RGB 0x8592 #define GL_OPERAND0_ALPHA 0x8598 #define GL_OPERAND1_ALPHA 0x8599 #define GL_OPERAND2_ALPHA 0x859A #define GL_ALPHA_SCALE 0x0D1C #define GL_SRC0_RGB 0x8580 #define GL_SRC1_RGB 0x8581 #define GL_SRC2_RGB 0x8582 #define GL_SRC0_ALPHA 0x8588 #define GL_SRC1_ALPHA 0x8589 #define GL_SRC2_ALPHA 0x858A #define GL_DOT3_RGB 0x86AE #define GL_DOT3_RGBA 0x86AF /*------------------------------------------------------------------------* * required OES extension tokens *------------------------------------------------------------------------*/ /* OES_read_format */ #ifndef GL_OES_read_format #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B #endif /* GL_OES_compressed_paletted_texture */ #ifndef GL_OES_compressed_paletted_texture #define GL_PALETTE4_RGB8_OES 0x8B90 #define GL_PALETTE4_RGBA8_OES 0x8B91 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 #define GL_PALETTE4_RGBA4_OES 0x8B93 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 #define GL_PALETTE8_RGB8_OES 0x8B95 #define GL_PALETTE8_RGBA8_OES 0x8B96 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 #define GL_PALETTE8_RGBA4_OES 0x8B98 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 #endif /* OES_point_size_array */ #ifndef GL_OES_point_size_array #define GL_POINT_SIZE_ARRAY_OES 0x8B9C #define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A #define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B #define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F #endif /* GL_OES_point_sprite */ #ifndef GL_OES_point_sprite #define GL_POINT_SPRITE_OES 0x8861 #define GL_COORD_REPLACE_OES 0x8862 #endif /*************************************************************/ /* Available only in Common profile */ GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref); GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); GL_API void GL_APIENTRY glClearDepthf (GLclampf depth); GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation); GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_API void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]); GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexEnvfv (GLenum env, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glLineWidth (GLfloat width); GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m); GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m); GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glPointSize (GLfloat size); GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); /* Available in both Common and Common-Lite profiles */ GL_API void GL_APIENTRY glActiveTexture (GLenum texture); GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref); GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); GL_API void GL_APIENTRY glClear (GLbitfield mask); GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); GL_API void GL_APIENTRY glClearDepthx (GLclampx depth); GL_API void GL_APIENTRY glClearStencil (GLint s); GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture); GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation); GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glCullFace (GLenum mode); GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_API void GL_APIENTRY glDepthFunc (GLenum func); GL_API void GL_APIENTRY glDepthMask (GLboolean flag); GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar); GL_API void GL_APIENTRY glDisable (GLenum cap); GL_API void GL_APIENTRY glDisableClientState (GLenum array); GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); GL_API void GL_APIENTRY glEnable (GLenum cap); GL_API void GL_APIENTRY glEnableClientState (GLenum array); GL_API void GL_APIENTRY glFinish (void); GL_API void GL_APIENTRY glFlush (void); GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glFrontFace (GLenum mode); GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]); GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_API GLenum GL_APIENTRY glGetError (void); GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetPointerv (GLenum pname, GLvoid **params); GL_API const GLubyte * GL_APIENTRY glGetString (GLenum name); GL_API void GL_APIENTRY glGetTexEnviv (GLenum env, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLineWidthx (GLfixed width); GL_API void GL_APIENTRY glLoadIdentity (void); GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m); GL_API void GL_APIENTRY glLogicOp (GLenum opcode); GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glMatrixMode (GLenum mode); GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m); GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz); GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glPointSizex (GLfixed size); GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units); GL_API void GL_APIENTRY glPopMatrix (void); GL_API void GL_APIENTRY glPushMatrix (void); GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert); GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glShadeModel (GLenum mode); GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_API void GL_APIENTRY glStencilMask (GLuint mask); GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); /*------------------------------------------------------------------------* * Required OES extension functions *------------------------------------------------------------------------*/ /* GL_OES_read_format */ #ifndef GL_OES_read_format #define GL_OES_read_format 1 #endif /* GL_OES_compressed_paletted_texture */ #ifndef GL_OES_compressed_paletted_texture #define GL_OES_compressed_paletted_texture 1 #endif /* GL_OES_point_size_array */ #ifndef GL_OES_point_size_array #define GL_OES_point_size_array 1 GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer); #endif /* GL_OES_point_sprite */ #ifndef GL_OES_point_sprite #define GL_OES_point_sprite 1 #endif #ifdef __cplusplus } #endif #endif /* __gl_h_ */ |
Added jni/glshim/include/GLES/gl2.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 | #ifndef __gl2_h_ #define __gl2_h_ /* $Revision: 16803 $ on $Date:: 2012-02-02 09:49:18 -0800 #$ */ #include <GLES2/gl2platform.h> #ifdef __cplusplus extern "C" { #endif /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /*------------------------------------------------------------------------- * Data type definitions *-----------------------------------------------------------------------*/ typedef void GLvoid; typedef char GLchar; typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef khronos_int8_t GLbyte; typedef short GLshort; typedef int GLint; typedef int GLsizei; typedef khronos_uint8_t GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef khronos_float_t GLfloat; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; /* GL types for handling large vertex buffer objects */ typedef khronos_intptr_t GLintptr; typedef khronos_ssize_t GLsizeiptr; /* OpenGL ES core versions */ #define GL_ES_VERSION_2_0 1 /* ClearBufferMask */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 /* Boolean */ #define GL_FALSE 0 #define GL_TRUE 1 /* BeginMode */ #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 /* AlphaFunction (not supported in ES20) */ /* GL_NEVER */ /* GL_LESS */ /* GL_EQUAL */ /* GL_LEQUAL */ /* GL_GREATER */ /* GL_NOTEQUAL */ /* GL_GEQUAL */ /* GL_ALWAYS */ /* BlendingFactorDest */ #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 /* BlendingFactorSrc */ /* GL_ZERO */ /* GL_ONE */ #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 /* GL_SRC_ALPHA */ /* GL_ONE_MINUS_SRC_ALPHA */ /* GL_DST_ALPHA */ /* GL_ONE_MINUS_DST_ALPHA */ /* BlendEquationSeparate */ #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ #define GL_BLEND_EQUATION_ALPHA 0x883D /* BlendSubtract */ #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B /* Separate Blend Functions */ #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 /* Buffer Objects */ #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 /* CullFaceMode */ #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 /* DepthFunction */ /* GL_NEVER */ /* GL_LESS */ /* GL_EQUAL */ /* GL_LEQUAL */ /* GL_GREATER */ /* GL_NOTEQUAL */ /* GL_GEQUAL */ /* GL_ALWAYS */ /* EnableCap */ #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 /* ErrorCode */ #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 /* FrontFaceDirection */ #define GL_CW 0x0900 #define GL_CCW 0x0901 /* GetPName */ #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 /* GL_SCISSOR_TEST */ #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 /* GL_POLYGON_OFFSET_FILL */ #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB /* GetTextureParameter */ /* GL_TEXTURE_MAG_FILTER */ /* GL_TEXTURE_MIN_FILTER */ /* GL_TEXTURE_WRAP_S */ /* GL_TEXTURE_WRAP_T */ #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 /* HintMode */ #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 /* HintTarget */ #define GL_GENERATE_MIPMAP_HINT 0x8192 /* DataType */ #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C /* PixelFormat */ #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A /* PixelType */ /* GL_UNSIGNED_BYTE */ #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 /* Shaders */ #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D /* StencilFunction */ #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 /* StencilOp */ /* GL_ZERO */ #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 /* StringName */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 /* TextureMagFilter */ #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 /* TextureMinFilter */ /* GL_NEAREST */ /* GL_LINEAR */ #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 /* TextureParameterName */ #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 /* TextureTarget */ /* GL_TEXTURE_2D */ #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C /* TextureUnit */ #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 /* TextureWrapMode */ #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 /* Uniform Types */ #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 /* Vertex Arrays */ #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F /* Read Format */ #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B /* Shader Source */ #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA /* Shader Binary */ #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 /* Shader Precision-Specified Types */ #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 /* Framebuffer Object. */ #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 /*------------------------------------------------------------------------- * GL core functions. *-----------------------------------------------------------------------*/ GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #ifdef __cplusplus } #endif #endif /* __gl2_h_ */ |
Added jni/glshim/include/GLES/gl2ext.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 | #ifndef __gl2ext_h_ #define __gl2ext_h_ /* $Revision: 19436 $ on $Date:: 2012-10-10 10:37:04 -0700 #$ */ #ifdef __cplusplus extern "C" { #endif /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ #ifndef GL_APIENTRYP # define GL_APIENTRYP GL_APIENTRY* #endif /*------------------------------------------------------------------------* * OES extension tokens *------------------------------------------------------------------------*/ /* GL_OES_compressed_ETC1_RGB8_texture */ #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_ETC1_RGB8_OES 0x8D64 #endif /* GL_OES_compressed_paletted_texture */ #ifndef GL_OES_compressed_paletted_texture #define GL_PALETTE4_RGB8_OES 0x8B90 #define GL_PALETTE4_RGBA8_OES 0x8B91 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 #define GL_PALETTE4_RGBA4_OES 0x8B93 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 #define GL_PALETTE8_RGB8_OES 0x8B95 #define GL_PALETTE8_RGBA8_OES 0x8B96 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 #define GL_PALETTE8_RGBA4_OES 0x8B98 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 #endif /* GL_OES_depth24 */ #ifndef GL_OES_depth24 #define GL_DEPTH_COMPONENT24_OES 0x81A6 #endif /* GL_OES_depth32 */ #ifndef GL_OES_depth32 #define GL_DEPTH_COMPONENT32_OES 0x81A7 #endif /* GL_OES_depth_texture */ /* No new tokens introduced by this extension. */ /* GL_OES_EGL_image */ #ifndef GL_OES_EGL_image typedef void* GLeglImageOES; #endif /* GL_OES_EGL_image_external */ #ifndef GL_OES_EGL_image_external /* GLeglImageOES defined in GL_OES_EGL_image already. */ #define GL_TEXTURE_EXTERNAL_OES 0x8D65 #define GL_SAMPLER_EXTERNAL_OES 0x8D66 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 #endif /* GL_OES_element_index_uint */ #ifndef GL_OES_element_index_uint #define GL_UNSIGNED_INT 0x1405 #endif /* GL_OES_get_program_binary */ #ifndef GL_OES_get_program_binary #define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE #define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF #endif /* GL_OES_mapbuffer */ #ifndef GL_OES_mapbuffer #define GL_WRITE_ONLY_OES 0x88B9 #define GL_BUFFER_ACCESS_OES 0x88BB #define GL_BUFFER_MAPPED_OES 0x88BC #define GL_BUFFER_MAP_POINTER_OES 0x88BD #endif /* GL_OES_packed_depth_stencil */ #ifndef GL_OES_packed_depth_stencil #define GL_DEPTH_STENCIL_OES 0x84F9 #define GL_UNSIGNED_INT_24_8_OES 0x84FA #define GL_DEPTH24_STENCIL8_OES 0x88F0 #endif /* GL_OES_required_internalformat */ #ifndef GL_OES_required_internalformat #define GL_ALPHA8_OES 0x803C #define GL_DEPTH_COMPONENT16_OES 0x81A5 /* reuse GL_DEPTH_COMPONENT24_OES */ /* reuse GL_DEPTH24_STENCIL8_OES */ /* reuse GL_DEPTH_COMPONENT32_OES */ #define GL_LUMINANCE4_ALPHA4_OES 0x8043 #define GL_LUMINANCE8_ALPHA8_OES 0x8045 #define GL_LUMINANCE8_OES 0x8040 #define GL_RGBA4_OES 0x8056 #define GL_RGB5_A1_OES 0x8057 #define GL_RGB565_OES 0x8D62 /* reuse GL_RGB8_OES */ /* reuse GL_RGBA8_OES */ /* reuse GL_RGB10_EXT */ /* reuse GL_RGB10_A2_EXT */ #endif /* GL_OES_rgb8_rgba8 */ #ifndef GL_OES_rgb8_rgba8 #define GL_RGB8_OES 0x8051 #define GL_RGBA8_OES 0x8058 #endif /* GL_OES_standard_derivatives */ #ifndef GL_OES_standard_derivatives #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B #endif /* GL_OES_stencil1 */ #ifndef GL_OES_stencil1 #define GL_STENCIL_INDEX1_OES 0x8D46 #endif /* GL_OES_stencil4 */ #ifndef GL_OES_stencil4 #define GL_STENCIL_INDEX4_OES 0x8D47 #endif #ifndef GL_OES_surfaceless_context #define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 #endif /* GL_OES_texture_3D */ #ifndef GL_OES_texture_3D #define GL_TEXTURE_WRAP_R_OES 0x8072 #define GL_TEXTURE_3D_OES 0x806F #define GL_TEXTURE_BINDING_3D_OES 0x806A #define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 #define GL_SAMPLER_3D_OES 0x8B5F #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 #endif /* GL_OES_texture_float */ /* No new tokens introduced by this extension. */ /* GL_OES_texture_float_linear */ /* No new tokens introduced by this extension. */ /* GL_OES_texture_half_float */ #ifndef GL_OES_texture_half_float #define GL_HALF_FLOAT_OES 0x8D61 #endif /* GL_OES_texture_half_float_linear */ /* No new tokens introduced by this extension. */ /* GL_OES_texture_npot */ /* No new tokens introduced by this extension. */ /* GL_OES_vertex_array_object */ #ifndef GL_OES_vertex_array_object #define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 #endif /* GL_OES_vertex_half_float */ /* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */ /* GL_OES_vertex_type_10_10_10_2 */ #ifndef GL_OES_vertex_type_10_10_10_2 #define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 #define GL_INT_10_10_10_2_OES 0x8DF7 #endif /*------------------------------------------------------------------------* * KHR extension tokens *------------------------------------------------------------------------*/ #ifndef GL_KHR_debug typedef void (GL_APIENTRYP GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 #define GL_DEBUG_SOURCE_API 0x8246 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 #define GL_DEBUG_SOURCE_APPLICATION 0x824A #define GL_DEBUG_SOURCE_OTHER 0x824B #define GL_DEBUG_TYPE_ERROR 0x824C #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E #define GL_DEBUG_TYPE_PORTABILITY 0x824F #define GL_DEBUG_TYPE_PERFORMANCE 0x8250 #define GL_DEBUG_TYPE_OTHER 0x8251 #define GL_DEBUG_TYPE_MARKER 0x8268 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 #define GL_DEBUG_TYPE_POP_GROUP 0x826A #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D #define GL_BUFFER 0x82E0 #define GL_SHADER 0x82E1 #define GL_PROGRAM 0x82E2 #define GL_QUERY 0x82E3 /* PROGRAM_PIPELINE only in GL */ #define GL_SAMPLER 0x82E6 /* DISPLAY_LIST only in GL */ #define GL_MAX_LABEL_LENGTH 0x82E8 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 #define GL_DEBUG_LOGGED_MESSAGES 0x9145 #define GL_DEBUG_SEVERITY_HIGH 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147 #define GL_DEBUG_SEVERITY_LOW 0x9148 #define GL_DEBUG_OUTPUT 0x92E0 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #endif #ifndef GL_KHR_texture_compression_astc_ldr #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD #endif /*------------------------------------------------------------------------* * AMD extension tokens *------------------------------------------------------------------------*/ /* GL_AMD_compressed_3DC_texture */ #ifndef GL_AMD_compressed_3DC_texture #define GL_3DC_X_AMD 0x87F9 #define GL_3DC_XY_AMD 0x87FA #endif /* GL_AMD_compressed_ATC_texture */ #ifndef GL_AMD_compressed_ATC_texture #define GL_ATC_RGB_AMD 0x8C92 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE #endif /* GL_AMD_performance_monitor */ #ifndef GL_AMD_performance_monitor #define GL_COUNTER_TYPE_AMD 0x8BC0 #define GL_COUNTER_RANGE_AMD 0x8BC1 #define GL_UNSIGNED_INT64_AMD 0x8BC2 #define GL_PERCENTAGE_AMD 0x8BC3 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 #define GL_PERFMON_RESULT_AMD 0x8BC6 #endif /* GL_AMD_program_binary_Z400 */ #ifndef GL_AMD_program_binary_Z400 #define GL_Z400_BINARY_AMD 0x8740 #endif /*------------------------------------------------------------------------* * ANGLE extension tokens *------------------------------------------------------------------------*/ /* GL_ANGLE_framebuffer_blit */ #ifndef GL_ANGLE_framebuffer_blit #define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA #endif /* GL_ANGLE_framebuffer_multisample */ #ifndef GL_ANGLE_framebuffer_multisample #define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 #define GL_MAX_SAMPLES_ANGLE 0x8D57 #endif /* GL_ANGLE_instanced_arrays */ #ifndef GL_ANGLE_instanced_arrays #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE #endif /* GL_ANGLE_pack_reverse_row_order */ #ifndef GL_ANGLE_pack_reverse_row_order #define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 #endif /* GL_ANGLE_texture_compression_dxt3 */ #ifndef GL_ANGLE_texture_compression_dxt3 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 #endif /* GL_ANGLE_texture_compression_dxt5 */ #ifndef GL_ANGLE_texture_compression_dxt5 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 #endif /* GL_ANGLE_texture_usage */ #ifndef GL_ANGLE_texture_usage #define GL_TEXTURE_USAGE_ANGLE 0x93A2 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 #endif /* GL_ANGLE_translated_shader_source */ #ifndef GL_ANGLE_translated_shader_source #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 #endif /*------------------------------------------------------------------------* * APPLE extension tokens *------------------------------------------------------------------------*/ /* GL_APPLE_copy_texture_levels */ /* No new tokens introduced by this extension. */ /* GL_APPLE_framebuffer_multisample */ #ifndef GL_APPLE_framebuffer_multisample #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 #define GL_MAX_SAMPLES_APPLE 0x8D57 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA #endif /* GL_APPLE_rgb_422 */ #ifndef GL_APPLE_rgb_422 #define GL_RGB_422_APPLE 0x8A1F #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB #endif /* GL_APPLE_sync */ #ifndef GL_APPLE_sync #ifndef __gl3_h_ /* These types are defined with reference to <inttypes.h> * in the Apple extension spec, but here we use the Khronos * portable types in khrplatform.h, and assume those types * are always defined. * If any other extensions using these types are defined, * the typedefs must move out of this block and be shared. */ typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef struct __GLsync *GLsync; #endif #define GL_SYNC_OBJECT_APPLE 0x8A53 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 #define GL_OBJECT_TYPE_APPLE 0x9112 #define GL_SYNC_CONDITION_APPLE 0x9113 #define GL_SYNC_STATUS_APPLE 0x9114 #define GL_SYNC_FLAGS_APPLE 0x9115 #define GL_SYNC_FENCE_APPLE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 #define GL_UNSIGNALED_APPLE 0x9118 #define GL_SIGNALED_APPLE 0x9119 #define GL_ALREADY_SIGNALED_APPLE 0x911A #define GL_TIMEOUT_EXPIRED_APPLE 0x911B #define GL_CONDITION_SATISFIED_APPLE 0x911C #define GL_WAIT_FAILED_APPLE 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull #endif /* GL_APPLE_texture_format_BGRA8888 */ #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_BGRA_EXT 0x80E1 #endif /* GL_APPLE_texture_max_level */ #ifndef GL_APPLE_texture_max_level #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D #endif /*------------------------------------------------------------------------* * ARM extension tokens *------------------------------------------------------------------------*/ /* GL_ARM_mali_program_binary */ #ifndef GL_ARM_mali_program_binary #define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 #endif /* GL_ARM_mali_shader_binary */ #ifndef GL_ARM_mali_shader_binary #define GL_MALI_SHADER_BINARY_ARM 0x8F60 #endif /* GL_ARM_rgba8 */ /* No new tokens introduced by this extension. */ /*------------------------------------------------------------------------* * EXT extension tokens *------------------------------------------------------------------------*/ /* GL_EXT_blend_minmax */ #ifndef GL_EXT_blend_minmax #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #endif /* GL_EXT_color_buffer_half_float */ #ifndef GL_EXT_color_buffer_half_float #define GL_RGBA16F_EXT 0x881A #define GL_RGB16F_EXT 0x881B #define GL_RG16F_EXT 0x822F #define GL_R16F_EXT 0x822D #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 #define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 #endif /* GL_EXT_debug_label */ #ifndef GL_EXT_debug_label #define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F #define GL_PROGRAM_OBJECT_EXT 0x8B40 #define GL_SHADER_OBJECT_EXT 0x8B48 #define GL_BUFFER_OBJECT_EXT 0x9151 #define GL_QUERY_OBJECT_EXT 0x9153 #define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 #endif /* GL_EXT_debug_marker */ /* No new tokens introduced by this extension. */ /* GL_EXT_discard_framebuffer */ #ifndef GL_EXT_discard_framebuffer #define GL_COLOR_EXT 0x1800 #define GL_DEPTH_EXT 0x1801 #define GL_STENCIL_EXT 0x1802 #endif /* GL_EXT_map_buffer_range */ #ifndef GL_EXT_map_buffer_range #define GL_MAP_READ_BIT_EXT 0x0001 #define GL_MAP_WRITE_BIT_EXT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 #endif /* GL_EXT_multisampled_render_to_texture */ #ifndef GL_EXT_multisampled_render_to_texture #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C /* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 #endif /* GL_EXT_multiview_draw_buffers */ #ifndef GL_EXT_multiview_draw_buffers #define GL_COLOR_ATTACHMENT_EXT 0x90F0 #define GL_MULTIVIEW_EXT 0x90F1 #define GL_DRAW_BUFFER_EXT 0x0C01 #define GL_READ_BUFFER_EXT 0x0C02 #define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 #endif /* GL_EXT_multi_draw_arrays */ /* No new tokens introduced by this extension. */ /* GL_EXT_occlusion_query_boolean */ #ifndef GL_EXT_occlusion_query_boolean #define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A #define GL_CURRENT_QUERY_EXT 0x8865 #define GL_QUERY_RESULT_EXT 0x8866 #define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 #endif /* GL_EXT_read_format_bgra */ #ifndef GL_EXT_read_format_bgra #define GL_BGRA_EXT 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 #endif /* GL_EXT_robustness */ #ifndef GL_EXT_robustness /* reuse GL_NO_ERROR */ #define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 #define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 #define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 #define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 #define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 #define GL_NO_RESET_NOTIFICATION_EXT 0x8261 #endif /* GL_EXT_separate_shader_objects */ #ifndef GL_EXT_separate_shader_objects #define GL_VERTEX_SHADER_BIT_EXT 0x00000001 #define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 #define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF #define GL_PROGRAM_SEPARABLE_EXT 0x8258 #define GL_ACTIVE_PROGRAM_EXT 0x8259 #define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A #endif /* GL_EXT_shader_framebuffer_fetch */ #ifndef GL_EXT_shader_framebuffer_fetch #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 #endif /* GL_EXT_shader_texture_lod */ /* No new tokens introduced by this extension. */ /* GL_EXT_shadow_samplers */ #ifndef GL_EXT_shadow_samplers #define GL_TEXTURE_COMPARE_MODE_EXT 0x884C #define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D #define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E #define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 #endif /* GL_EXT_sRGB */ #ifndef GL_EXT_sRGB #define GL_SRGB_EXT 0x8C40 #define GL_SRGB_ALPHA_EXT 0x8C42 #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 #endif /* GL_EXT_texture_compression_dxt1 */ #ifndef GL_EXT_texture_compression_dxt1 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #endif /* GL_EXT_texture_filter_anisotropic */ #ifndef GL_EXT_texture_filter_anisotropic #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif /* GL_EXT_texture_format_BGRA8888 */ #ifndef GL_EXT_texture_format_BGRA8888 #define GL_BGRA_EXT 0x80E1 #endif /* GL_EXT_texture_rg */ #ifndef GL_EXT_texture_rg #define GL_RED_EXT 0x1903 #define GL_RG_EXT 0x8227 #define GL_R8_EXT 0x8229 #define GL_RG8_EXT 0x822B #endif /* GL_EXT_texture_storage */ #ifndef GL_EXT_texture_storage #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F #define GL_ALPHA8_EXT 0x803C #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_RGBA32F_EXT 0x8814 #define GL_RGB32F_EXT 0x8815 #define GL_ALPHA32F_EXT 0x8816 #define GL_LUMINANCE32F_EXT 0x8818 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 /* reuse GL_RGBA16F_EXT */ /* reuse GL_RGB16F_EXT */ #define GL_ALPHA16F_EXT 0x881C #define GL_LUMINANCE16F_EXT 0x881E #define GL_LUMINANCE_ALPHA16F_EXT 0x881F #define GL_RGB10_A2_EXT 0x8059 #define GL_RGB10_EXT 0x8052 #define GL_BGRA8_EXT 0x93A1 #define GL_R8_EXT 0x8229 #define GL_RG8_EXT 0x822B #define GL_R32F_EXT 0x822E #define GL_RG32F_EXT 0x8230 #define GL_R16F_EXT 0x822D #define GL_RG16F_EXT 0x822F #endif /* GL_EXT_texture_type_2_10_10_10_REV */ #ifndef GL_EXT_texture_type_2_10_10_10_REV #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 #endif /* GL_EXT_unpack_subimage */ #ifndef GL_EXT_unpack_subimage #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #endif /*------------------------------------------------------------------------* * DMP extension tokens *------------------------------------------------------------------------*/ /* GL_DMP_shader_binary */ #ifndef GL_DMP_shader_binary #define GL_SHADER_BINARY_DMP 0x9250 #endif /*------------------------------------------------------------------------* * FJ extension tokens *------------------------------------------------------------------------*/ /* GL_FJ_shader_binary_GCCSO */ #ifndef GL_FJ_shader_binary_GCCSO #define GCCSO_SHADER_BINARY_FJ 0x9260 #endif /*------------------------------------------------------------------------* * IMG extension tokens *------------------------------------------------------------------------*/ /* GL_IMG_program_binary */ #ifndef GL_IMG_program_binary #define GL_SGX_PROGRAM_BINARY_IMG 0x9130 #endif /* GL_IMG_read_format */ #ifndef GL_IMG_read_format #define GL_BGRA_IMG 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 #endif /* GL_IMG_shader_binary */ #ifndef GL_IMG_shader_binary #define GL_SGX_BINARY_IMG 0x8C0A #endif /* GL_IMG_texture_compression_pvrtc */ #ifndef GL_IMG_texture_compression_pvrtc #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 #endif /* GL_IMG_multisampled_render_to_texture */ #ifndef GL_IMG_multisampled_render_to_texture #define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 #define GL_MAX_SAMPLES_IMG 0x9135 #define GL_TEXTURE_SAMPLES_IMG 0x9136 #endif /*------------------------------------------------------------------------* * NV extension tokens *------------------------------------------------------------------------*/ /* GL_NV_coverage_sample */ #ifndef GL_NV_coverage_sample #define GL_COVERAGE_COMPONENT_NV 0x8ED0 #define GL_COVERAGE_COMPONENT4_NV 0x8ED1 #define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 #define GL_COVERAGE_BUFFERS_NV 0x8ED3 #define GL_COVERAGE_SAMPLES_NV 0x8ED4 #define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 #define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 #define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 #define GL_COVERAGE_BUFFER_BIT_NV 0x8000 #endif /* GL_NV_depth_nonlinear */ #ifndef GL_NV_depth_nonlinear #define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C #endif /* GL_NV_draw_buffers */ #ifndef GL_NV_draw_buffers #define GL_MAX_DRAW_BUFFERS_NV 0x8824 #define GL_DRAW_BUFFER0_NV 0x8825 #define GL_DRAW_BUFFER1_NV 0x8826 #define GL_DRAW_BUFFER2_NV 0x8827 #define GL_DRAW_BUFFER3_NV 0x8828 #define GL_DRAW_BUFFER4_NV 0x8829 #define GL_DRAW_BUFFER5_NV 0x882A #define GL_DRAW_BUFFER6_NV 0x882B #define GL_DRAW_BUFFER7_NV 0x882C #define GL_DRAW_BUFFER8_NV 0x882D #define GL_DRAW_BUFFER9_NV 0x882E #define GL_DRAW_BUFFER10_NV 0x882F #define GL_DRAW_BUFFER11_NV 0x8830 #define GL_DRAW_BUFFER12_NV 0x8831 #define GL_DRAW_BUFFER13_NV 0x8832 #define GL_DRAW_BUFFER14_NV 0x8833 #define GL_DRAW_BUFFER15_NV 0x8834 #define GL_COLOR_ATTACHMENT0_NV 0x8CE0 #define GL_COLOR_ATTACHMENT1_NV 0x8CE1 #define GL_COLOR_ATTACHMENT2_NV 0x8CE2 #define GL_COLOR_ATTACHMENT3_NV 0x8CE3 #define GL_COLOR_ATTACHMENT4_NV 0x8CE4 #define GL_COLOR_ATTACHMENT5_NV 0x8CE5 #define GL_COLOR_ATTACHMENT6_NV 0x8CE6 #define GL_COLOR_ATTACHMENT7_NV 0x8CE7 #define GL_COLOR_ATTACHMENT8_NV 0x8CE8 #define GL_COLOR_ATTACHMENT9_NV 0x8CE9 #define GL_COLOR_ATTACHMENT10_NV 0x8CEA #define GL_COLOR_ATTACHMENT11_NV 0x8CEB #define GL_COLOR_ATTACHMENT12_NV 0x8CEC #define GL_COLOR_ATTACHMENT13_NV 0x8CED #define GL_COLOR_ATTACHMENT14_NV 0x8CEE #define GL_COLOR_ATTACHMENT15_NV 0x8CEF #endif /* GL_NV_fbo_color_attachments */ #ifndef GL_NV_fbo_color_attachments #define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF /* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */ #endif /* GL_NV_fence */ #ifndef GL_NV_fence #define GL_ALL_COMPLETED_NV 0x84F2 #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 #endif /* GL_NV_read_buffer */ #ifndef GL_NV_read_buffer #define GL_READ_BUFFER_NV 0x0C02 #endif /* GL_NV_read_buffer_front */ /* No new tokens introduced by this extension. */ /* GL_NV_read_depth */ /* No new tokens introduced by this extension. */ /* GL_NV_read_depth_stencil */ /* No new tokens introduced by this extension. */ /* GL_NV_read_stencil */ /* No new tokens introduced by this extension. */ /* GL_NV_texture_compression_s3tc_update */ /* No new tokens introduced by this extension. */ /* GL_NV_texture_npot_2D_mipmap */ /* No new tokens introduced by this extension. */ /*------------------------------------------------------------------------* * QCOM extension tokens *------------------------------------------------------------------------*/ /* GL_QCOM_alpha_test */ #ifndef GL_QCOM_alpha_test #define GL_ALPHA_TEST_QCOM 0x0BC0 #define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 #define GL_ALPHA_TEST_REF_QCOM 0x0BC2 #endif /* GL_QCOM_binning_control */ #ifndef GL_QCOM_binning_control #define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 #define GL_CPU_OPTIMIZED_QCOM 0x8FB1 #define GL_GPU_OPTIMIZED_QCOM 0x8FB2 #define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 #endif /* GL_QCOM_driver_control */ /* No new tokens introduced by this extension. */ /* GL_QCOM_extended_get */ #ifndef GL_QCOM_extended_get #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 #define GL_TEXTURE_TARGET_QCOM 0x8BDA #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB #define GL_STATE_RESTORE 0x8BDC #endif /* GL_QCOM_extended_get2 */ /* No new tokens introduced by this extension. */ /* GL_QCOM_perfmon_global_mode */ #ifndef GL_QCOM_perfmon_global_mode #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 #endif /* GL_QCOM_writeonly_rendering */ #ifndef GL_QCOM_writeonly_rendering #define GL_WRITEONLY_RENDERING_QCOM 0x8823 #endif /* GL_QCOM_tiled_rendering */ #ifndef GL_QCOM_tiled_rendering #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 #endif /*------------------------------------------------------------------------* * VIV extension tokens *------------------------------------------------------------------------*/ /* GL_VIV_shader_binary */ #ifndef GL_VIV_shader_binary #define GL_SHADER_BINARY_VIV 0x8FC4 #endif /*------------------------------------------------------------------------* * End of extension tokens, start of corresponding extension functions *------------------------------------------------------------------------*/ /*------------------------------------------------------------------------* * OES extension functions *------------------------------------------------------------------------*/ /* GL_OES_compressed_ETC1_RGB8_texture */ #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_OES_compressed_ETC1_RGB8_texture 1 #endif /* GL_OES_compressed_paletted_texture */ #ifndef GL_OES_compressed_paletted_texture #define GL_OES_compressed_paletted_texture 1 #endif /* GL_OES_depth24 */ #ifndef GL_OES_depth24 #define GL_OES_depth24 1 #endif /* GL_OES_depth32 */ #ifndef GL_OES_depth32 #define GL_OES_depth32 1 #endif /* GL_OES_depth_texture */ #ifndef GL_OES_depth_texture #define GL_OES_depth_texture 1 #endif /* GL_OES_EGL_image */ #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #endif /* GL_OES_EGL_image_external */ #ifndef GL_OES_EGL_image_external #define GL_OES_EGL_image_external 1 /* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */ #endif /* GL_OES_element_index_uint */ #ifndef GL_OES_element_index_uint #define GL_OES_element_index_uint 1 #endif /* GL_OES_fbo_render_mipmap */ #ifndef GL_OES_fbo_render_mipmap #define GL_OES_fbo_render_mipmap 1 #endif /* GL_OES_fragment_precision_high */ #ifndef GL_OES_fragment_precision_high #define GL_OES_fragment_precision_high 1 #endif /* GL_OES_get_program_binary */ #ifndef GL_OES_get_program_binary #define GL_OES_get_program_binary 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); #endif typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); #endif /* GL_OES_mapbuffer */ #ifndef GL_OES_mapbuffer #define GL_OES_mapbuffer 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params); #endif typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params); #endif /* GL_OES_packed_depth_stencil */ #ifndef GL_OES_packed_depth_stencil #define GL_OES_packed_depth_stencil 1 #endif /* GL_OES_required_internalformat */ #ifndef GL_OES_required_internalformat #define GL_OES_required_internalformat 1 #endif /* GL_OES_rgb8_rgba8 */ #ifndef GL_OES_rgb8_rgba8 #define GL_OES_rgb8_rgba8 1 #endif /* GL_OES_standard_derivatives */ #ifndef GL_OES_standard_derivatives #define GL_OES_standard_derivatives 1 #endif /* GL_OES_stencil1 */ #ifndef GL_OES_stencil1 #define GL_OES_stencil1 1 #endif /* GL_OES_stencil4 */ #ifndef GL_OES_stencil4 #define GL_OES_stencil4 1 #endif #ifndef GL_OES_surfaceless_context #define GL_OES_surfaceless_context 1 #endif /* GL_OES_texture_3D */ #ifndef GL_OES_texture_3D #define GL_OES_texture_3D 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #endif typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #endif /* GL_OES_texture_float */ #ifndef GL_OES_texture_float #define GL_OES_texture_float 1 #endif /* GL_OES_texture_float_linear */ #ifndef GL_OES_texture_float_linear #define GL_OES_texture_float_linear 1 #endif /* GL_OES_texture_half_float */ #ifndef GL_OES_texture_half_float #define GL_OES_texture_half_float 1 #endif /* GL_OES_texture_half_float_linear */ #ifndef GL_OES_texture_half_float_linear #define GL_OES_texture_half_float_linear 1 #endif /* GL_OES_texture_npot */ #ifndef GL_OES_texture_npot #define GL_OES_texture_npot 1 #endif /* GL_OES_vertex_array_object */ #ifndef GL_OES_vertex_array_object #define GL_OES_vertex_array_object 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); #endif typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); #endif /* GL_OES_vertex_half_float */ #ifndef GL_OES_vertex_half_float #define GL_OES_vertex_half_float 1 #endif /* GL_OES_vertex_type_10_10_10_2 */ #ifndef GL_OES_vertex_type_10_10_10_2 #define GL_OES_vertex_type_10_10_10_2 1 #endif /*------------------------------------------------------------------------* * KHR extension functions *------------------------------------------------------------------------*/ #ifndef GL_KHR_debug #define GL_KHR_debug 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); GL_APICALL void GL_APIENTRY glPopDebugGroup (void); GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); #endif typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); #endif #ifndef GL_KHR_texture_compression_astc_ldr #define GL_KHR_texture_compression_astc_ldr 1 #endif /*------------------------------------------------------------------------* * AMD extension functions *------------------------------------------------------------------------*/ /* GL_AMD_compressed_3DC_texture */ #ifndef GL_AMD_compressed_3DC_texture #define GL_AMD_compressed_3DC_texture 1 #endif /* GL_AMD_compressed_ATC_texture */ #ifndef GL_AMD_compressed_ATC_texture #define GL_AMD_compressed_ATC_texture 1 #endif /* AMD_performance_monitor */ #ifndef GL_AMD_performance_monitor #define GL_AMD_performance_monitor 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #endif typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #endif /* GL_AMD_program_binary_Z400 */ #ifndef GL_AMD_program_binary_Z400 #define GL_AMD_program_binary_Z400 1 #endif /*------------------------------------------------------------------------* * ANGLE extension functions *------------------------------------------------------------------------*/ /* GL_ANGLE_framebuffer_blit */ #ifndef GL_ANGLE_framebuffer_blit #define GL_ANGLE_framebuffer_blit 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #endif typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #endif /* GL_ANGLE_framebuffer_multisample */ #ifndef GL_ANGLE_framebuffer_multisample #define GL_ANGLE_framebuffer_multisample 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif #ifndef GL_ANGLE_instanced_arrays #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); #endif typedef void (GL_APIENTRYP PFLGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFLGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); typedef void (GL_APIENTRYP PFLGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); #endif /* GL_ANGLE_pack_reverse_row_order */ #ifndef GL_ANGLE_pack_reverse_row_order #define GL_ANGLE_pack_reverse_row_order 1 #endif /* GL_ANGLE_texture_compression_dxt3 */ #ifndef GL_ANGLE_texture_compression_dxt3 #define GL_ANGLE_texture_compression_dxt3 1 #endif /* GL_ANGLE_texture_compression_dxt5 */ #ifndef GL_ANGLE_texture_compression_dxt5 #define GL_ANGLE_texture_compression_dxt5 1 #endif /* GL_ANGLE_texture_usage */ #ifndef GL_ANGLE_texture_usage #define GL_ANGLE_texture_usage 1 #endif #ifndef GL_ANGLE_translated_shader_source #define GL_ANGLE_translated_shader_source 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); #endif typedef void (GL_APIENTRYP PFLGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); #endif /*------------------------------------------------------------------------* * APPLE extension functions *------------------------------------------------------------------------*/ /* GL_APPLE_copy_texture_levels */ #ifndef GL_APPLE_copy_texture_levels #define GL_APPLE_copy_texture_levels 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif /* GL_APPLE_framebuffer_multisample */ #ifndef GL_APPLE_framebuffer_multisample #define GL_APPLE_framebuffer_multisample 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); #endif /* GL_GLEXT_PROTOTYPES */ typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); #endif /* GL_APPLE_rgb_422 */ #ifndef GL_APPLE_rgb_422 #define GL_APPLE_rgb_422 1 #endif /* GL_APPLE_sync */ #ifndef GL_APPLE_sync #define GL_APPLE_sync 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); #endif typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); #endif /* GL_APPLE_texture_format_BGRA8888 */ #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_APPLE_texture_format_BGRA8888 1 #endif /* GL_APPLE_texture_max_level */ #ifndef GL_APPLE_texture_max_level #define GL_APPLE_texture_max_level 1 #endif /*------------------------------------------------------------------------* * ARM extension functions *------------------------------------------------------------------------*/ /* GL_ARM_mali_program_binary */ #ifndef GL_ARM_mali_program_binary #define GL_ARM_mali_program_binary 1 #endif /* GL_ARM_mali_shader_binary */ #ifndef GL_ARM_mali_shader_binary #define GL_ARM_mali_shader_binary 1 #endif /* GL_ARM_rgba8 */ #ifndef GL_ARM_rgba8 #define GL_ARM_rgba8 1 #endif /*------------------------------------------------------------------------* * EXT extension functions *------------------------------------------------------------------------*/ /* GL_EXT_blend_minmax */ #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 #endif /* GL_EXT_color_buffer_half_float */ #ifndef GL_EXT_color_buffer_half_float #define GL_EXT_color_buffer_half_float 1 #endif /* GL_EXT_debug_label */ #ifndef GL_EXT_debug_label #define GL_EXT_debug_label 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #endif typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #endif /* GL_EXT_debug_marker */ #ifndef GL_EXT_debug_marker #define GL_EXT_debug_marker 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); #endif typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); #endif /* GL_EXT_discard_framebuffer */ #ifndef GL_EXT_discard_framebuffer #define GL_EXT_discard_framebuffer 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif /* GL_EXT_map_buffer_range */ #ifndef GL_EXT_map_buffer_range #define GL_EXT_map_buffer_range 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); #endif typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); #endif /* GL_EXT_multisampled_render_to_texture */ #ifndef GL_EXT_multisampled_render_to_texture #define GL_EXT_multisampled_render_to_texture 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); #endif typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif /* GL_EXT_multiview_draw_buffers */ #ifndef GL_EXT_multiview_draw_buffers #define GL_EXT_multiview_draw_buffers 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); #endif typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); #endif #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); #endif /* GL_GLEXT_PROTOTYPES */ typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); #endif /* GL_EXT_occlusion_query_boolean */ #ifndef GL_EXT_occlusion_query_boolean #define GL_EXT_occlusion_query_boolean 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); #endif typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); #endif /* GL_EXT_read_format_bgra */ #ifndef GL_EXT_read_format_bgra #define GL_EXT_read_format_bgra 1 #endif /* GL_EXT_robustness */ #ifndef GL_EXT_robustness #define GL_EXT_robustness 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params); GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif /* GL_EXT_separate_shader_objects */ #ifndef GL_EXT_separate_shader_objects #define GL_EXT_separate_shader_objects 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x); GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y); GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z); GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x); GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); #endif typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); #endif /* GL_EXT_shader_framebuffer_fetch */ #ifndef GL_EXT_shader_framebuffer_fetch #define GL_EXT_shader_framebuffer_fetch 1 #endif /* GL_EXT_shader_texture_lod */ #ifndef GL_EXT_shader_texture_lod #define GL_EXT_shader_texture_lod 1 #endif /* GL_EXT_shadow_samplers */ #ifndef GL_EXT_shadow_samplers #define GL_EXT_shadow_samplers 1 #endif /* GL_EXT_sRGB */ #ifndef GL_EXT_sRGB #define GL_EXT_sRGB 1 #endif /* GL_EXT_texture_compression_dxt1 */ #ifndef GL_EXT_texture_compression_dxt1 #define GL_EXT_texture_compression_dxt1 1 #endif /* GL_EXT_texture_filter_anisotropic */ #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #endif /* GL_EXT_texture_format_BGRA8888 */ #ifndef GL_EXT_texture_format_BGRA8888 #define GL_EXT_texture_format_BGRA8888 1 #endif /* GL_EXT_texture_rg */ #ifndef GL_EXT_texture_rg #define GL_EXT_texture_rg 1 #endif /* GL_EXT_texture_storage */ #ifndef GL_EXT_texture_storage #define GL_EXT_texture_storage 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif /* GL_EXT_texture_type_2_10_10_10_REV */ #ifndef GL_EXT_texture_type_2_10_10_10_REV #define GL_EXT_texture_type_2_10_10_10_REV 1 #endif /* GL_EXT_unpack_subimage */ #ifndef GL_EXT_unpack_subimage #define GL_EXT_unpack_subimage 1 #endif /*------------------------------------------------------------------------* * DMP extension functions *------------------------------------------------------------------------*/ /* GL_DMP_shader_binary */ #ifndef GL_DMP_shader_binary #define GL_DMP_shader_binary 1 #endif /*------------------------------------------------------------------------* * FJ extension functions *------------------------------------------------------------------------*/ /* GL_FJ_shader_binary_GCCSO */ #ifndef GL_FJ_shader_binary_GCCSO #define GL_FJ_shader_binary_GCCSO 1 #endif /*------------------------------------------------------------------------* * IMG extension functions *------------------------------------------------------------------------*/ /* GL_IMG_program_binary */ #ifndef GL_IMG_program_binary #define GL_IMG_program_binary 1 #endif /* GL_IMG_read_format */ #ifndef GL_IMG_read_format #define GL_IMG_read_format 1 #endif /* GL_IMG_shader_binary */ #ifndef GL_IMG_shader_binary #define GL_IMG_shader_binary 1 #endif /* GL_IMG_texture_compression_pvrtc */ #ifndef GL_IMG_texture_compression_pvrtc #define GL_IMG_texture_compression_pvrtc 1 #endif /* GL_IMG_multisampled_render_to_texture */ #ifndef GL_IMG_multisampled_render_to_texture #define GL_IMG_multisampled_render_to_texture 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); #endif typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif /*------------------------------------------------------------------------* * NV extension functions *------------------------------------------------------------------------*/ /* GL_NV_coverage_sample */ #ifndef GL_NV_coverage_sample #define GL_NV_coverage_sample 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); #endif typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); #endif /* GL_NV_depth_nonlinear */ #ifndef GL_NV_depth_nonlinear #define GL_NV_depth_nonlinear 1 #endif /* GL_NV_draw_buffers */ #ifndef GL_NV_draw_buffers #define GL_NV_draw_buffers 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); #endif typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); #endif /* GL_NV_fbo_color_attachments */ #ifndef GL_NV_fbo_color_attachments #define GL_NV_fbo_color_attachments 1 #endif /* GL_NV_fence */ #ifndef GL_NV_fence #define GL_NV_fence 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *); GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint); GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint); GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint); GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum); #endif typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); #endif /* GL_NV_read_buffer */ #ifndef GL_NV_read_buffer #define GL_NV_read_buffer 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); #endif typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); #endif /* GL_NV_read_buffer_front */ #ifndef GL_NV_read_buffer_front #define GL_NV_read_buffer_front 1 #endif /* GL_NV_read_depth */ #ifndef GL_NV_read_depth #define GL_NV_read_depth 1 #endif /* GL_NV_read_depth_stencil */ #ifndef GL_NV_read_depth_stencil #define GL_NV_read_depth_stencil 1 #endif /* GL_NV_read_stencil */ #ifndef GL_NV_read_stencil #define GL_NV_read_stencil 1 #endif /* GL_NV_texture_compression_s3tc_update */ #ifndef GL_NV_texture_compression_s3tc_update #define GL_NV_texture_compression_s3tc_update 1 #endif /* GL_NV_texture_npot_2D_mipmap */ #ifndef GL_NV_texture_npot_2D_mipmap #define GL_NV_texture_npot_2D_mipmap 1 #endif /*------------------------------------------------------------------------* * QCOM extension functions *------------------------------------------------------------------------*/ /* GL_QCOM_alpha_test */ #ifndef GL_QCOM_alpha_test #define GL_QCOM_alpha_test 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); #endif typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); #endif /* GL_QCOM_binning_control */ #ifndef GL_QCOM_binning_control #define GL_QCOM_binning_control 1 #endif /* GL_QCOM_driver_control */ #ifndef GL_QCOM_driver_control #define GL_QCOM_driver_control 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); #endif typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); #endif /* GL_QCOM_extended_get */ #ifndef GL_QCOM_extended_get #define GL_QCOM_extended_get 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); #endif typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params); #endif /* GL_QCOM_extended_get2 */ #ifndef GL_QCOM_extended_get2 #define GL_QCOM_extended_get2 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif /* GL_QCOM_perfmon_global_mode */ #ifndef GL_QCOM_perfmon_global_mode #define GL_QCOM_perfmon_global_mode 1 #endif /* GL_QCOM_writeonly_rendering */ #ifndef GL_QCOM_writeonly_rendering #define GL_QCOM_writeonly_rendering 1 #endif /* GL_QCOM_tiled_rendering */ #ifndef GL_QCOM_tiled_rendering #define GL_QCOM_tiled_rendering 1 #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); #endif typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); #endif /*------------------------------------------------------------------------* * VIV extension tokens *------------------------------------------------------------------------*/ /* GL_VIV_shader_binary */ #ifndef GL_VIV_shader_binary #define GL_VIV_shader_binary 1 #endif #ifdef __cplusplus } #endif #endif /* __gl2ext_h_ */ |
Added jni/glshim/include/GLES/gl2platform.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #ifndef __gl2platform_h_ #define __gl2platform_h_ /* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h * * Adopters may modify khrplatform.h and this file to suit their platform. * You are encouraged to submit all modifications to the Khronos group so that * they can be included in future versions of this file. Please submit changes * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) * by filing a bug against product "OpenGL-ES" component "Registry". */ #include <KHR/khrplatform.h> #ifndef GL_APICALL #define GL_APICALL KHRONOS_APICALL #endif #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif #endif /* __gl2platform_h_ */ |
Added jni/glshim/include/GLES/gl3.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 | #ifndef __gl3_h_ #define __gl3_h_ /* * gl3.h last updated on $Date: 2012-09-12 10:13:02 -0700 (Wed, 12 Sep 2012) $ */ #include <GLES3/gl3platform.h> #ifdef __cplusplus extern "C" { #endif /* ** Copyright (c) 2007-2012 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ /*------------------------------------------------------------------------- * Data type definitions *-----------------------------------------------------------------------*/ /* OpenGL ES 2.0 */ typedef void GLvoid; typedef char GLchar; typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef khronos_int8_t GLbyte; typedef short GLshort; typedef int GLint; typedef int GLsizei; typedef khronos_uint8_t GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef khronos_float_t GLfloat; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_intptr_t GLintptr; typedef khronos_ssize_t GLsizeiptr; /* OpenGL ES 3.0 */ typedef unsigned short GLhalf; typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef struct __GLsync *GLsync; /*------------------------------------------------------------------------- * Token definitions *-----------------------------------------------------------------------*/ /* OpenGL ES core versions */ #define GL_ES_VERSION_3_0 1 #define GL_ES_VERSION_2_0 1 /* OpenGL ES 2.0 */ /* ClearBufferMask */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 /* Boolean */ #define GL_FALSE 0 #define GL_TRUE 1 /* BeginMode */ #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 /* BlendingFactorDest */ #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 /* BlendingFactorSrc */ /* GL_ZERO */ /* GL_ONE */ #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 /* GL_SRC_ALPHA */ /* GL_ONE_MINUS_SRC_ALPHA */ /* GL_DST_ALPHA */ /* GL_ONE_MINUS_DST_ALPHA */ /* BlendEquationSeparate */ #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ #define GL_BLEND_EQUATION_ALPHA 0x883D /* BlendSubtract */ #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B /* Separate Blend Functions */ #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 /* Buffer Objects */ #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 /* CullFaceMode */ #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 /* DepthFunction */ /* GL_NEVER */ /* GL_LESS */ /* GL_EQUAL */ /* GL_LEQUAL */ /* GL_GREATER */ /* GL_NOTEQUAL */ /* GL_GEQUAL */ /* GL_ALWAYS */ /* EnableCap */ #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 /* ErrorCode */ #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 /* FrontFaceDirection */ #define GL_CW 0x0900 #define GL_CCW 0x0901 /* GetPName */ #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 /* GL_SCISSOR_TEST */ #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 /* GL_POLYGON_OFFSET_FILL */ #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB /* GetTextureParameter */ /* GL_TEXTURE_MAG_FILTER */ /* GL_TEXTURE_MIN_FILTER */ /* GL_TEXTURE_WRAP_S */ /* GL_TEXTURE_WRAP_T */ #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 /* HintMode */ #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 /* HintTarget */ #define GL_GENERATE_MIPMAP_HINT 0x8192 /* DataType */ #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C /* PixelFormat */ #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A /* PixelType */ /* GL_UNSIGNED_BYTE */ #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 /* Shaders */ #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D /* StencilFunction */ #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 /* StencilOp */ /* GL_ZERO */ #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 /* StringName */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 /* TextureMagFilter */ #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 /* TextureMinFilter */ /* GL_NEAREST */ /* GL_LINEAR */ #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 /* TextureParameterName */ #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 /* TextureTarget */ /* GL_TEXTURE_2D */ #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C /* TextureUnit */ #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 /* TextureWrapMode */ #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 /* Uniform Types */ #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 /* Vertex Arrays */ #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F /* Read Format */ #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B /* Shader Source */ #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA /* Shader Binary */ #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 /* Shader Precision-Specified Types */ #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 /* Framebuffer Object. */ #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 /* OpenGL ES 3.0 */ #define GL_READ_BUFFER 0x0C02 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_RED 0x1903 #define GL_RGB8 0x8051 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_TEXTURE_BINDING_3D 0x806A #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_DEPTH_COMPONENT24 0x81A6 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_CURRENT_QUERY 0x8865 #define GL_QUERY_RESULT 0x8866 #define GL_QUERY_RESULT_AVAILABLE 0x8867 #define GL_BUFFER_MAPPED 0x88BC #define GL_BUFFER_MAP_POINTER 0x88BD #define GL_STREAM_READ 0x88E1 #define GL_STREAM_COPY 0x88E2 #define GL_STATIC_READ 0x88E5 #define GL_STATIC_COPY 0x88E6 #define GL_DYNAMIC_READ 0x88E9 #define GL_DYNAMIC_COPY 0x88EA #define GL_MAX_DRAW_BUFFERS 0x8824 #define GL_DRAW_BUFFER0 0x8825 #define GL_DRAW_BUFFER1 0x8826 #define GL_DRAW_BUFFER2 0x8827 #define GL_DRAW_BUFFER3 0x8828 #define GL_DRAW_BUFFER4 0x8829 #define GL_DRAW_BUFFER5 0x882A #define GL_DRAW_BUFFER6 0x882B #define GL_DRAW_BUFFER7 0x882C #define GL_DRAW_BUFFER8 0x882D #define GL_DRAW_BUFFER9 0x882E #define GL_DRAW_BUFFER10 0x882F #define GL_DRAW_BUFFER11 0x8830 #define GL_DRAW_BUFFER12 0x8831 #define GL_DRAW_BUFFER13 0x8832 #define GL_DRAW_BUFFER14 0x8833 #define GL_DRAW_BUFFER15 0x8834 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A #define GL_SAMPLER_3D 0x8B5F #define GL_SAMPLER_2D_SHADOW 0x8B62 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B #define GL_PIXEL_PACK_BUFFER 0x88EB #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF #define GL_FLOAT_MAT2x3 0x8B65 #define GL_FLOAT_MAT2x4 0x8B66 #define GL_FLOAT_MAT3x2 0x8B67 #define GL_FLOAT_MAT3x4 0x8B68 #define GL_FLOAT_MAT4x2 0x8B69 #define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB8_ALPHA8 0x8C43 #define GL_COMPARE_REF_TO_TEXTURE 0x884E #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C #define GL_NUM_EXTENSIONS 0x821D #define GL_RGBA32F 0x8814 #define GL_RGB32F 0x8815 #define GL_RGBA16F 0x881A #define GL_RGB16F 0x881B #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 #define GL_MAX_VARYING_COMPONENTS 0x8B4B #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D #define GL_R11F_G11F_B10F 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B #define GL_RGB9_E5 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 #define GL_RASTERIZER_DISCARD 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B #define GL_INTERLEAVED_ATTRIBS 0x8C8C #define GL_SEPARATE_ATTRIBS 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F #define GL_RGBA32UI 0x8D70 #define GL_RGB32UI 0x8D71 #define GL_RGBA16UI 0x8D76 #define GL_RGB16UI 0x8D77 #define GL_RGBA8UI 0x8D7C #define GL_RGB8UI 0x8D7D #define GL_RGBA32I 0x8D82 #define GL_RGB32I 0x8D83 #define GL_RGBA16I 0x8D88 #define GL_RGB16I 0x8D89 #define GL_RGBA8I 0x8D8E #define GL_RGB8I 0x8D8F #define GL_RED_INTEGER 0x8D94 #define GL_RGB_INTEGER 0x8D98 #define GL_RGBA_INTEGER 0x8D99 #define GL_SAMPLER_2D_ARRAY 0x8DC1 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 #define GL_UNSIGNED_INT_VEC2 0x8DC6 #define GL_UNSIGNED_INT_VEC3 0x8DC7 #define GL_UNSIGNED_INT_VEC4 0x8DC8 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB #define GL_INT_SAMPLER_CUBE 0x8DCC #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 #define GL_BUFFER_ACCESS_FLAGS 0x911F #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 #define GL_DEPTH_COMPONENT32F 0x8CAC #define GL_DEPTH32F_STENCIL8 0x8CAD #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 #define GL_FRAMEBUFFER_DEFAULT 0x8218 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_DEPTH_STENCIL 0x84F9 #define GL_UNSIGNED_INT_24_8 0x84FA #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_UNSIGNED_NORMALIZED 0x8C17 #define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA #define GL_RENDERBUFFER_SAMPLES 0x8CAB #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF #define GL_COLOR_ATTACHMENT1 0x8CE1 #define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT4 0x8CE4 #define GL_COLOR_ATTACHMENT5 0x8CE5 #define GL_COLOR_ATTACHMENT6 0x8CE6 #define GL_COLOR_ATTACHMENT7 0x8CE7 #define GL_COLOR_ATTACHMENT8 0x8CE8 #define GL_COLOR_ATTACHMENT9 0x8CE9 #define GL_COLOR_ATTACHMENT10 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 #define GL_HALF_FLOAT 0x140B #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 #define GL_RG 0x8227 #define GL_RG_INTEGER 0x8228 #define GL_R8 0x8229 #define GL_RG8 0x822B #define GL_R16F 0x822D #define GL_R32F 0x822E #define GL_RG16F 0x822F #define GL_RG32F 0x8230 #define GL_R8I 0x8231 #define GL_R8UI 0x8232 #define GL_R16I 0x8233 #define GL_R16UI 0x8234 #define GL_R32I 0x8235 #define GL_R32UI 0x8236 #define GL_RG8I 0x8237 #define GL_RG8UI 0x8238 #define GL_RG16I 0x8239 #define GL_RG16UI 0x823A #define GL_RG32I 0x823B #define GL_RG32UI 0x823C #define GL_VERTEX_ARRAY_BINDING 0x85B5 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGB8_SNORM 0x8F96 #define GL_RGBA8_SNORM 0x8F97 #define GL_SIGNED_NORMALIZED 0x8F9C #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 #define GL_COPY_READ_BUFFER_BINDING GL_COPY_READ_BUFFER #define GL_COPY_WRITE_BUFFER_BINDING GL_COPY_WRITE_BUFFER #define GL_UNIFORM_BUFFER 0x8A11 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 #define GL_UNIFORM_BUFFER_START 0x8A29 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 #define GL_UNIFORM_TYPE 0x8A37 #define GL_UNIFORM_SIZE 0x8A38 #define GL_UNIFORM_NAME_LENGTH 0x8A39 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A #define GL_UNIFORM_OFFSET 0x8A3B #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E #define GL_UNIFORM_BLOCK_BINDING 0x8A3F #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFFu #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 #define GL_OBJECT_TYPE 0x9112 #define GL_SYNC_CONDITION 0x9113 #define GL_SYNC_STATUS 0x9114 #define GL_SYNC_FLAGS 0x9115 #define GL_SYNC_FENCE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 #define GL_UNSIGNALED 0x9118 #define GL_SIGNALED 0x9119 #define GL_ALREADY_SIGNALED 0x911A #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE #define GL_ANY_SAMPLES_PASSED 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A #define GL_SAMPLER_BINDING 0x8919 #define GL_RGB10_A2UI 0x906F #define GL_TEXTURE_SWIZZLE_R 0x8E42 #define GL_TEXTURE_SWIZZLE_G 0x8E43 #define GL_TEXTURE_SWIZZLE_B 0x8E44 #define GL_TEXTURE_SWIZZLE_A 0x8E45 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_INT_2_10_10_10_REV 0x8D9F #define GL_TRANSFORM_FEEDBACK 0x8E22 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 #define GL_PROGRAM_BINARY_LENGTH 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF #define GL_COMPRESSED_R11_EAC 0x9270 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 #define GL_COMPRESSED_RG11_EAC 0x9272 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F #define GL_MAX_ELEMENT_INDEX 0x8D6B #define GL_NUM_SAMPLE_COUNTS 0x9380 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x8D63 /*------------------------------------------------------------------------- * Entrypoint definitions *-----------------------------------------------------------------------*/ /* OpenGL ES 2.0 */ GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat depth); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); /* OpenGL ES 3.0 */ GL_APICALL void GL_APIENTRY glReadBuffer (GLenum mode); GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices); GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint* ids); GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint* ids); GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params); GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid** params); GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum* bufs); GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GL_APICALL GLvoid* GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint* arrays); GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint* arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint* data); GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode); GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name); GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer); GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params); GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint* v); GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint* v); GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint* params); GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint* value); GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint* value); GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint* value); GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint* value); GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint* value); GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint* value); GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat* value); GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GL_APICALL const GLubyte* GL_APIENTRY glGetStringi (GLenum name, GLuint index); GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices); GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount); GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount); GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64* params); GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values); GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64* data); GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params); GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint* samplers); GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint* samplers); GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint* param); GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* param); GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params); GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params); GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint* ids); GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint* ids); GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary); GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length); GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments); GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); #ifdef __cplusplus } #endif #endif |
Added jni/glshim/include/GLES/gl3ext.h.
> > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #ifndef __gl3ext_h_ #define __gl3ext_h_ /* $Revision: 17809 $ on $Date:: 2012-05-14 08:03:36 -0700 #$ */ /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /* OpenGL ES 3 Extensions * * After an OES extension's interactions with OpenGl ES 3.0 have been documented, * its tokens and function definitions should be added to this file in a manner * that does not conflict with gl2ext.h or gl3.h. * * Tokens and function definitions for extensions that have become standard * features in OpenGL ES 3.0 will not be added to this file. * * Applications using OpenGL-ES-2-only extensions should include gl2ext.h */ #endif /* __gl3ext_h_ */ |
Added jni/glshim/include/GLES/gl3platform.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #ifndef __gl3platform_h_ #define __gl3platform_h_ /* $Revision: 18437 $ on $Date:: 2012-07-08 23:31:39 -0700 #$ */ /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /* Platform-specific types and definitions for OpenGL ES 3.X gl3.h * * Adopters may modify khrplatform.h and this file to suit their platform. * You are encouraged to submit all modifications to the Khronos group so that * they can be included in future versions of this file. Please submit changes * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) * by filing a bug against product "OpenGL-ES" component "Registry". */ #include <KHR/khrplatform.h> #ifndef GL_APICALL #define GL_APICALL KHRONOS_APICALL #endif #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif #endif /* __gl3platform_h_ */ |
Added jni/glshim/include/GLES/glext.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 | #ifndef __glext_h_ #define __glext_h_ /* $Revision: 19260 $ on $Date:: 2012-09-20 11:30:36 -0700 #$ */ #ifdef __cplusplus extern "C" { #endif /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ #ifndef GL_APIENTRYP # define GL_APIENTRYP GL_APIENTRY* #endif /*------------------------------------------------------------------------* * OES extension tokens *------------------------------------------------------------------------*/ /* GL_OES_blend_equation_separate */ #ifndef GL_OES_blend_equation_separate /* BLEND_EQUATION_RGB_OES same as BLEND_EQUATION_OES */ #define GL_BLEND_EQUATION_RGB_OES 0x8009 #define GL_BLEND_EQUATION_ALPHA_OES 0x883D #endif /* GL_OES_blend_func_separate */ #ifndef GL_OES_blend_func_separate #define GL_BLEND_DST_RGB_OES 0x80C8 #define GL_BLEND_SRC_RGB_OES 0x80C9 #define GL_BLEND_DST_ALPHA_OES 0x80CA #define GL_BLEND_SRC_ALPHA_OES 0x80CB #endif /* GL_OES_blend_subtract */ #ifndef GL_OES_blend_subtract #define GL_BLEND_EQUATION_OES 0x8009 #define GL_FUNC_ADD_OES 0x8006 #define GL_FUNC_SUBTRACT_OES 0x800A #define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B #endif /* GL_OES_compressed_ETC1_RGB8_texture */ #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_ETC1_RGB8_OES 0x8D64 #endif /* GL_OES_depth24 */ #ifndef GL_OES_depth24 #define GL_DEPTH_COMPONENT24_OES 0x81A6 #endif /* GL_OES_depth32 */ #ifndef GL_OES_depth32 #define GL_DEPTH_COMPONENT32_OES 0x81A7 #endif /* GL_OES_draw_texture */ #ifndef GL_OES_draw_texture #define GL_TEXTURE_CROP_RECT_OES 0x8B9D #endif /* GL_OES_EGL_image */ #ifndef GL_OES_EGL_image typedef void* GLeglImageOES; #endif /* GL_OES_EGL_image_external */ #ifndef GL_OES_EGL_image_external /* GLeglImageOES defined in GL_OES_EGL_image already. */ #define GL_TEXTURE_EXTERNAL_OES 0x8D65 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 #endif /* GL_OES_element_index_uint */ #ifndef GL_OES_element_index_uint #define GL_UNSIGNED_INT 0x1405 #endif /* GL_OES_fixed_point */ #ifndef GL_OES_fixed_point #define GL_FIXED_OES 0x140C #endif /* GL_OES_framebuffer_object */ #ifndef GL_OES_framebuffer_object #define GL_NONE_OES 0 #define GL_FRAMEBUFFER_OES 0x8D40 #define GL_RENDERBUFFER_OES 0x8D41 #define GL_RGBA4_OES 0x8056 #define GL_RGB5_A1_OES 0x8057 #define GL_RGB565_OES 0x8D62 #define GL_DEPTH_COMPONENT16_OES 0x81A5 #define GL_RENDERBUFFER_WIDTH_OES 0x8D42 #define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 #define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 #define GL_COLOR_ATTACHMENT0_OES 0x8CE0 #define GL_DEPTH_ATTACHMENT_OES 0x8D00 #define GL_STENCIL_ATTACHMENT_OES 0x8D20 #define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA #define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD #define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 #define GL_RENDERBUFFER_BINDING_OES 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 #endif /* GL_OES_mapbuffer */ #ifndef GL_OES_mapbuffer #define GL_WRITE_ONLY_OES 0x88B9 #define GL_BUFFER_ACCESS_OES 0x88BB #define GL_BUFFER_MAPPED_OES 0x88BC #define GL_BUFFER_MAP_POINTER_OES 0x88BD #endif /* GL_OES_matrix_get */ #ifndef GL_OES_matrix_get #define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D #define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E #define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F #endif /* GL_OES_matrix_palette */ #ifndef GL_OES_matrix_palette #define GL_MAX_VERTEX_UNITS_OES 0x86A4 #define GL_MAX_PALETTE_MATRICES_OES 0x8842 #define GL_MATRIX_PALETTE_OES 0x8840 #define GL_MATRIX_INDEX_ARRAY_OES 0x8844 #define GL_WEIGHT_ARRAY_OES 0x86AD #define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 #define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 #define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 #define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 #define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 #define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E #define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB #define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 #define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA #define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC #define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E #endif /* GL_OES_packed_depth_stencil */ #ifndef GL_OES_packed_depth_stencil #define GL_DEPTH_STENCIL_OES 0x84F9 #define GL_UNSIGNED_INT_24_8_OES 0x84FA #define GL_DEPTH24_STENCIL8_OES 0x88F0 #endif /* GL_OES_required_internalformat */ /* No new tokens introduced by this extension. */ /* GL_OES_rgb8_rgba8 */ #ifndef GL_OES_rgb8_rgba8 #define GL_RGB8_OES 0x8051 #define GL_RGBA8_OES 0x8058 #endif /* GL_OES_stencil1 */ #ifndef GL_OES_stencil1 #define GL_STENCIL_INDEX1_OES 0x8D46 #endif /* GL_OES_stencil4 */ #ifndef GL_OES_stencil4 #define GL_STENCIL_INDEX4_OES 0x8D47 #endif /* GL_OES_stencil8 */ #ifndef GL_OES_stencil8 #define GL_STENCIL_INDEX8_OES 0x8D48 #endif /* GL_OES_stencil_wrap */ #ifndef GL_OES_stencil_wrap #define GL_INCR_WRAP_OES 0x8507 #define GL_DECR_WRAP_OES 0x8508 #endif /* GL_OES_texture_cube_map */ #ifndef GL_OES_texture_cube_map #define GL_NORMAL_MAP_OES 0x8511 #define GL_REFLECTION_MAP_OES 0x8512 #define GL_TEXTURE_CUBE_MAP_OES 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C #define GL_TEXTURE_GEN_MODE_OES 0x2500 #define GL_TEXTURE_GEN_STR_OES 0x8D60 #endif /* GL_OES_texture_mirrored_repeat */ #ifndef GL_OES_texture_mirrored_repeat #define GL_MIRRORED_REPEAT_OES 0x8370 #endif /* GL_OES_vertex_array_object */ #ifndef GL_OES_vertex_array_object #define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 #endif /*------------------------------------------------------------------------* * AMD extension tokens *------------------------------------------------------------------------*/ /* GL_AMD_compressed_3DC_texture */ #ifndef GL_AMD_compressed_3DC_texture #define GL_3DC_X_AMD 0x87F9 #define GL_3DC_XY_AMD 0x87FA #endif /* GL_AMD_compressed_ATC_texture */ #ifndef GL_AMD_compressed_ATC_texture #define GL_ATC_RGB_AMD 0x8C92 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE #endif /*------------------------------------------------------------------------* * APPLE extension tokens *------------------------------------------------------------------------*/ /* GL_APPLE_copy_texture_levels */ /* No new tokens introduced by this extension. */ /* GL_APPLE_framebuffer_multisample */ #ifndef GL_APPLE_framebuffer_multisample #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 #define GL_MAX_SAMPLES_APPLE 0x8D57 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA #endif /* GL_APPLE_sync */ #ifndef GL_APPLE_sync /* These types are defined with reference to <inttypes.h> * in the Apple extension spec, but here we use the Khronos * portable types in khrplatform.h, and assume those types * are always defined. * If any other extensions using these types are defined, * the typedefs must move out of this block and be shared. */ typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef struct __GLsync *GLsync; #define GL_SYNC_OBJECT_APPLE 0x8A53 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 #define GL_OBJECT_TYPE_APPLE 0x9112 #define GL_SYNC_CONDITION_APPLE 0x9113 #define GL_SYNC_STATUS_APPLE 0x9114 #define GL_SYNC_FLAGS_APPLE 0x9115 #define GL_SYNC_FENCE_APPLE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 #define GL_UNSIGNALED_APPLE 0x9118 #define GL_SIGNALED_APPLE 0x9119 #define GL_ALREADY_SIGNALED_APPLE 0x911A #define GL_TIMEOUT_EXPIRED_APPLE 0x911B #define GL_CONDITION_SATISFIED_APPLE 0x911C #define GL_WAIT_FAILED_APPLE 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull #endif /* GL_APPLE_texture_2D_limited_npot */ /* No new tokens introduced by this extension. */ /* GL_APPLE_texture_format_BGRA8888 */ #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_BGRA_EXT 0x80E1 #endif /* GL_APPLE_texture_max_level */ #ifndef GL_APPLE_texture_max_level #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D #endif /*------------------------------------------------------------------------* * ARM extension tokens *------------------------------------------------------------------------*/ /* GL_ARM_rgba8 */ /* No new tokens introduced by this extension. */ /*------------------------------------------------------------------------* * EXT extension tokens *------------------------------------------------------------------------*/ /* GL_EXT_blend_minmax */ #ifndef GL_EXT_blend_minmax #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #endif /* GL_EXT_discard_framebuffer */ #ifndef GL_EXT_discard_framebuffer #define GL_COLOR_EXT 0x1800 #define GL_DEPTH_EXT 0x1801 #define GL_STENCIL_EXT 0x1802 #endif /* GL_EXT_map_buffer_range */ #ifndef GL_EXT_map_buffer_range #define GL_MAP_READ_BIT_EXT 0x0001 #define GL_MAP_WRITE_BIT_EXT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 #endif /* GL_EXT_multisampled_render_to_texture */ #ifndef GL_EXT_multisampled_render_to_texture #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C /* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 #endif /* GL_EXT_multi_draw_arrays */ /* No new tokens introduced by this extension. */ /* GL_EXT_read_format_bgra */ #ifndef GL_EXT_read_format_bgra #define GL_BGRA_EXT 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 #endif /* GL_EXT_robustness */ #ifndef GL_EXT_robustness /* reuse GL_NO_ERROR */ #define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 #define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 #define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 #define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 #define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 #define GL_NO_RESET_NOTIFICATION_EXT 0x8261 #endif /* GL_EXT_sRGB */ #ifndef GL_EXT_sRGB #define GL_SRGB_EXT 0x8C40 #define GL_SRGB_ALPHA_EXT 0x8C42 #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 #endif /* GL_EXT_texture_compression_dxt1 */ #ifndef GL_EXT_texture_compression_dxt1 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #endif /* GL_EXT_texture_filter_anisotropic */ #ifndef GL_EXT_texture_filter_anisotropic #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif /* GL_EXT_texture_format_BGRA8888 */ #ifndef GL_EXT_texture_format_BGRA8888 #define GL_BGRA_EXT 0x80E1 #endif /* GL_EXT_texture_lod_bias */ #ifndef GL_EXT_texture_lod_bias #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501 #endif /* GL_EXT_texture_storage */ #ifndef GL_EXT_texture_storage #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F #define GL_ALPHA8_EXT 0x803C #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_RGBA32F_EXT 0x8814 #define GL_RGB32F_EXT 0x8815 #define GL_ALPHA32F_EXT 0x8816 #define GL_LUMINANCE32F_EXT 0x8818 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 /* reuse GL_RGBA16F_EXT */ #define GL_RGB16F_EXT 0x881B #define GL_ALPHA16F_EXT 0x881C #define GL_LUMINANCE16F_EXT 0x881E #define GL_LUMINANCE_ALPHA16F_EXT 0x881F #define GL_RGB10_A2_EXT 0x8059 #define GL_RGB10_EXT 0x8052 #define GL_BGRA8_EXT 0x93A1 #endif /*------------------------------------------------------------------------* * IMG extension tokens *------------------------------------------------------------------------*/ /* GL_IMG_read_format */ #ifndef GL_IMG_read_format #define GL_BGRA_IMG 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 #endif /* GL_IMG_texture_compression_pvrtc */ #ifndef GL_IMG_texture_compression_pvrtc #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 #endif /* GL_IMG_texture_env_enhanced_fixed_function */ #ifndef GL_IMG_texture_env_enhanced_fixed_function #define GL_MODULATE_COLOR_IMG 0x8C04 #define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 #define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 #define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 #define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 #define GL_ADD_BLEND_IMG 0x8C09 #define GL_DOT3_RGBA_IMG 0x86AF #endif /* GL_IMG_user_clip_plane */ #ifndef GL_IMG_user_clip_plane #define GL_CLIP_PLANE0_IMG 0x3000 #define GL_CLIP_PLANE1_IMG 0x3001 #define GL_CLIP_PLANE2_IMG 0x3002 #define GL_CLIP_PLANE3_IMG 0x3003 #define GL_CLIP_PLANE4_IMG 0x3004 #define GL_CLIP_PLANE5_IMG 0x3005 #define GL_MAX_CLIP_PLANES_IMG 0x0D32 #endif /* GL_IMG_multisampled_render_to_texture */ #ifndef GL_IMG_multisampled_render_to_texture #define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 #define GL_MAX_SAMPLES_IMG 0x9135 #define GL_TEXTURE_SAMPLES_IMG 0x9136 #endif /*------------------------------------------------------------------------* * NV extension tokens *------------------------------------------------------------------------*/ /* GL_NV_fence */ #ifndef GL_NV_fence #define GL_ALL_COMPLETED_NV 0x84F2 #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 #endif /*------------------------------------------------------------------------* * QCOM extension tokens *------------------------------------------------------------------------*/ /* GL_QCOM_driver_control */ /* No new tokens introduced by this extension. */ /* GL_QCOM_extended_get */ #ifndef GL_QCOM_extended_get #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 #define GL_TEXTURE_TARGET_QCOM 0x8BDA #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB #define GL_STATE_RESTORE 0x8BDC #endif /* GL_QCOM_extended_get2 */ /* No new tokens introduced by this extension. */ /* GL_QCOM_perfmon_global_mode */ #ifndef GL_QCOM_perfmon_global_mode #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 #endif /* GL_QCOM_writeonly_rendering */ #ifndef GL_QCOM_writeonly_rendering #define GL_WRITEONLY_RENDERING_QCOM 0x8823 #endif /* GL_QCOM_tiled_rendering */ #ifndef GL_QCOM_tiled_rendering #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 #endif /*------------------------------------------------------------------------* * End of extension tokens, start of corresponding extension functions *------------------------------------------------------------------------*/ /*------------------------------------------------------------------------* * OES extension functions *------------------------------------------------------------------------*/ /* GL_OES_blend_equation_separate */ #ifndef GL_OES_blend_equation_separate #define GL_OES_blend_equation_separate 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha); #endif typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); #endif /* GL_OES_blend_func_separate */ #ifndef GL_OES_blend_func_separate #define GL_OES_blend_func_separate 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendFuncSeparateOES (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #endif typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #endif /* GL_OES_blend_subtract */ #ifndef GL_OES_blend_subtract #define GL_OES_blend_subtract 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendEquationOES (GLenum mode); #endif typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONOESPROC) (GLenum mode); #endif /* GL_OES_byte_coordinates */ #ifndef GL_OES_byte_coordinates #define GL_OES_byte_coordinates 1 #endif /* GL_OES_compressed_ETC1_RGB8_texture */ #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_OES_compressed_ETC1_RGB8_texture 1 #endif /* GL_OES_depth24 */ #ifndef GL_OES_depth24 #define GL_OES_depth24 1 #endif /* GL_OES_depth32 */ #ifndef GL_OES_depth32 #define GL_OES_depth32 1 #endif /* GL_OES_draw_texture */ #ifndef GL_OES_draw_texture #define GL_OES_draw_texture 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height); GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort *coords); GL_API void GL_APIENTRY glDrawTexivOES (const GLint *coords); GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed *coords); GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat *coords); #endif typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESPROC) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESPROC) (GLint x, GLint y, GLint z, GLint width, GLint height); typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESPROC) (const GLshort *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESPROC) (const GLint *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESPROC) (const GLfixed *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESPROC) (const GLfloat *coords); #endif /* GL_OES_EGL_image */ #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #endif /* GL_OES_EGL_image_external */ #ifndef GL_OES_EGL_image_external #define GL_OES_EGL_image_external 1 /* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */ #endif /* GL_OES_element_index_uint */ #ifndef GL_OES_element_index_uint #define GL_OES_element_index_uint 1 #endif /* GL_OES_extended_matrix_palette */ #ifndef GL_OES_extended_matrix_palette #define GL_OES_extended_matrix_palette 1 #endif /* GL_OES_fbo_render_mipmap */ #ifndef GL_OES_fbo_render_mipmap #define GL_OES_fbo_render_mipmap 1 #endif /* GL_OES_fixed_point */ #ifndef GL_OES_fixed_point #define GL_OES_fixed_point 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glAlphaFuncxOES (GLenum func, GLclampx ref); GL_API void GL_APIENTRY glClearColorxOES (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); GL_API void GL_APIENTRY glClearDepthxOES (GLclampx depth); GL_API void GL_APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); GL_API void GL_APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glDepthRangexOES (GLclampx zNear, GLclampx zFar); GL_API void GL_APIENTRY glFogxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glFogxvOES (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glFrustumxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); GL_API void GL_APIENTRY glGetClipPlanexOES (GLenum pname, GLfixed eqn[4]); GL_API void GL_APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetLightxvOES (GLenum light, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetMaterialxvOES (GLenum face, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexEnvxvOES (GLenum env, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glLightModelxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLineWidthxOES (GLfixed width); GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m); GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m); GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); GL_API void GL_APIENTRY glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); GL_API void GL_APIENTRY glPointParameterxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glPointSizexOES (GLfixed size); GL_API void GL_APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); GL_API void GL_APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glSampleCoveragexOES (GLclampx value, GLboolean invert); GL_API void GL_APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); #endif typedef void (GL_APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLclampx ref); typedef void (GL_APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLclampx depth); typedef void (GL_APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); typedef void (GL_APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLclampx zNear, GLclampx zFar); typedef void (GL_APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum pname, GLfixed eqn[4]); typedef void (GL_APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETLIGHTXVOESPROC) (GLenum light, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETMATERIALXVOESPROC) (GLenum face, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum env, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); typedef void (GL_APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); typedef void (GL_APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); typedef void (GL_APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); typedef void (GL_APIENTRYP PFNGLORTHOXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); typedef void (GL_APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXOESPROC) (GLclampx value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (GL_APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); #endif /* GL_OES_framebuffer_object */ #ifndef GL_OES_framebuffer_object #define GL_OES_framebuffer_object 1 #ifdef GL_GLEXT_PROTOTYPES GL_API GLboolean GL_APIENTRY glIsRenderbufferOES (GLuint renderbuffer); GL_API void GL_APIENTRY glBindRenderbufferOES (GLenum target, GLuint renderbuffer); GL_API void GL_APIENTRY glDeleteRenderbuffersOES (GLsizei n, const GLuint* renderbuffers); GL_API void GL_APIENTRY glGenRenderbuffersOES (GLsizei n, GLuint* renderbuffers); GL_API void GL_APIENTRY glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint* params); GL_API GLboolean GL_APIENTRY glIsFramebufferOES (GLuint framebuffer); GL_API void GL_APIENTRY glBindFramebufferOES (GLenum target, GLuint framebuffer); GL_API void GL_APIENTRY glDeleteFramebuffersOES (GLsizei n, const GLuint* framebuffers); GL_API void GL_APIENTRY glGenFramebuffersOES (GLsizei n, GLuint* framebuffers); GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOES (GLenum target); GL_API void GL_APIENTRY glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_API void GL_APIENTRY glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint* params); GL_API void GL_APIENTRY glGenerateMipmapOES (GLenum target); #endif typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESPROC) (GLenum target); #endif /* GL_OES_mapbuffer */ #ifndef GL_OES_mapbuffer #define GL_OES_mapbuffer 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); GL_API GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); GL_API void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid ** params); #endif typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid ** params); #endif /* GL_OES_matrix_get */ #ifndef GL_OES_matrix_get #define GL_OES_matrix_get 1 #endif /* GL_OES_matrix_palette */ #ifndef GL_OES_matrix_palette #define GL_OES_matrix_palette 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glCurrentPaletteMatrixOES (GLuint matrixpaletteindex); GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES (void); GL_API void GL_APIENTRY glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); GL_API void GL_APIENTRY glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); #endif typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint matrixpaletteindex); typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void); typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); #endif /* GL_OES_packed_depth_stencil */ #ifndef GL_OES_packed_depth_stencil #define GL_OES_packed_depth_stencil 1 #endif /* GL_OES_required_internalformat */ #ifndef GL_OES_required_internalformat #define GL_OES_required_internalformat 1 #endif /* GL_OES_query_matrix */ #ifndef GL_OES_query_matrix #define GL_OES_query_matrix 1 #ifdef GL_GLEXT_PROTOTYPES GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES (GLfixed mantissa[16], GLint exponent[16]); #endif typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed mantissa[16], GLint exponent[16]); #endif /* GL_OES_rgb8_rgba8 */ #ifndef GL_OES_rgb8_rgba8 #define GL_OES_rgb8_rgba8 1 #endif /* GL_OES_single_precision */ #ifndef GL_OES_single_precision #define GL_OES_single_precision 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDepthRangefOES (GLclampf zNear, GLclampf zFar); GL_API void GL_APIENTRY glFrustumfOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); GL_API void GL_APIENTRY glOrthofOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); GL_API void GL_APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); GL_API void GL_APIENTRY glGetClipPlanefOES (GLenum pname, GLfloat eqn[4]); GL_API void GL_APIENTRY glClearDepthfOES (GLclampf depth); #endif typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf zNear, GLclampf zFar); typedef void (GL_APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); typedef void (GL_APIENTRYP PFNGLORTHOFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); typedef void (GL_APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum pname, GLfloat eqn[4]); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); #endif /* GL_OES_stencil1 */ #ifndef GL_OES_stencil1 #define GL_OES_stencil1 1 #endif /* GL_OES_stencil4 */ #ifndef GL_OES_stencil4 #define GL_OES_stencil4 1 #endif /* GL_OES_stencil8 */ #ifndef GL_OES_stencil8 #define GL_OES_stencil8 1 #endif /* GL_OES_stencil_wrap */ #ifndef GL_OES_stencil_wrap #define GL_OES_stencil_wrap 1 #endif /* GL_OES_texture_cube_map */ #ifndef GL_OES_texture_cube_map #define GL_OES_texture_cube_map 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); #endif typedef void (GL_APIENTRYP PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); #endif /* GL_OES_texture_env_crossbar */ #ifndef GL_OES_texture_env_crossbar #define GL_OES_texture_env_crossbar 1 #endif /* GL_OES_texture_mirrored_repeat */ #ifndef GL_OES_texture_mirrored_repeat #define GL_OES_texture_mirrored_repeat 1 #endif /* GL_OES_vertex_array_object */ #ifndef GL_OES_vertex_array_object #define GL_OES_vertex_array_object 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBindVertexArrayOES (GLuint array); GL_API void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); GL_API void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); GL_API GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); #endif typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); #endif /*------------------------------------------------------------------------* * AMD extension functions *------------------------------------------------------------------------*/ /* GL_AMD_compressed_3DC_texture */ #ifndef GL_AMD_compressed_3DC_texture #define GL_AMD_compressed_3DC_texture 1 #endif /* GL_AMD_compressed_ATC_texture */ #ifndef GL_AMD_compressed_ATC_texture #define GL_AMD_compressed_ATC_texture 1 #endif /*------------------------------------------------------------------------* * APPLE extension functions *------------------------------------------------------------------------*/ /* GL_APPLE_copy_texture_levels */ #ifndef GL_APPLE_copy_texture_levels #define GL_APPLE_copy_texture_levels 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif /* GL_APPLE_framebuffer_multisample */ #ifndef GL_APPLE_framebuffer_multisample #define GL_APPLE_framebuffer_multisample 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_API void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); #endif /* GL_GLEXT_PROTOTYPES */ typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); #endif /* GL_APPLE_sync */ #ifndef GL_APPLE_sync #define GL_APPLE_sync 1 #ifdef GL_GLEXT_PROTOTYPES GL_API GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); GL_API GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); GL_API void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); GL_API GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_API void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_API void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); GL_API void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); #endif typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); #endif /* GL_APPLE_texture_2D_limited_npot */ #ifndef GL_APPLE_texture_2D_limited_npot #define GL_APPLE_texture_2D_limited_npot 1 #endif /* GL_APPLE_texture_format_BGRA8888 */ #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_APPLE_texture_format_BGRA8888 1 #endif /* GL_APPLE_texture_max_level */ #ifndef GL_APPLE_texture_max_level #define GL_APPLE_texture_max_level 1 #endif /*------------------------------------------------------------------------* * ARM extension functions *------------------------------------------------------------------------*/ /* GL_ARM_rgba8 */ #ifndef GL_ARM_rgba8 #define GL_ARM_rgba8 1 #endif /*------------------------------------------------------------------------* * EXT extension functions *------------------------------------------------------------------------*/ /* GL_EXT_blend_minmax */ #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 #endif /* GL_EXT_discard_framebuffer */ #ifndef GL_EXT_discard_framebuffer #define GL_EXT_discard_framebuffer 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif /* GL_EXT_map_buffer_range */ #ifndef GL_EXT_map_buffer_range #define GL_EXT_map_buffer_range 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY *glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_API void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); #endif typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); #endif /* GL_EXT_multisampled_render_to_texture */ #ifndef GL_EXT_multisampled_render_to_texture #define GL_EXT_multisampled_render_to_texture 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); #endif typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif /* GL_EXT_multi_draw_arrays */ #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); GL_API void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); #endif /* GL_GLEXT_PROTOTYPES */ typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); #endif /* GL_EXT_read_format_bgra */ #ifndef GL_EXT_read_format_bgra #define GL_EXT_read_format_bgra 1 #endif /* GL_EXT_robustness */ #ifndef GL_EXT_robustness #define GL_EXT_robustness 1 #ifdef GL_GLEXT_PROTOTYPES GL_API GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); GL_API void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_API void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params); GL_API void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif /* GL_EXT_sRGB */ #ifndef GL_EXT_sRGB #define GL_EXT_sRGB 1 #endif /* GL_EXT_texture_compression_dxt1 */ #ifndef GL_EXT_texture_compression_dxt1 #define GL_EXT_texture_compression_dxt1 1 #endif /* GL_EXT_texture_filter_anisotropic */ #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #endif /* GL_EXT_texture_format_BGRA8888 */ #ifndef GL_EXT_texture_format_BGRA8888 #define GL_EXT_texture_format_BGRA8888 1 #endif /* GL_EXT_texture_lod_bias */ #ifndef GL_EXT_texture_lod_bias #define GL_EXT_texture_lod_bias 1 #endif /* GL_EXT_texture_storage */ #ifndef GL_EXT_texture_storage #define GL_EXT_texture_storage 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_API void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_API void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_API void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif /*------------------------------------------------------------------------* * IMG extension functions *------------------------------------------------------------------------*/ /* GL_IMG_read_format */ #ifndef GL_IMG_read_format #define GL_IMG_read_format 1 #endif /* GL_IMG_texture_compression_pvrtc */ #ifndef GL_IMG_texture_compression_pvrtc #define GL_IMG_texture_compression_pvrtc 1 #endif /* GL_IMG_texture_env_enhanced_fixed_function */ #ifndef GL_IMG_texture_env_enhanced_fixed_function #define GL_IMG_texture_env_enhanced_fixed_function 1 #endif /* GL_IMG_user_clip_plane */ #ifndef GL_IMG_user_clip_plane #define GL_IMG_user_clip_plane 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glClipPlanefIMG (GLenum, const GLfloat *); GL_API void GL_APIENTRY glClipPlanexIMG (GLenum, const GLfixed *); #endif typedef void (GL_APIENTRYP PFNGLCLIPPLANEFIMGPROC) (GLenum p, const GLfloat *eqn); typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMGPROC) (GLenum p, const GLfixed *eqn); #endif /* GL_IMG_multisampled_render_to_texture */ #ifndef GL_IMG_multisampled_render_to_texture #define GL_IMG_multisampled_render_to_texture 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei); GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei); #endif typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif /*------------------------------------------------------------------------* * NV extension functions *------------------------------------------------------------------------*/ /* NV_fence */ #ifndef GL_NV_fence #define GL_NV_fence 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); GL_API void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *); GL_API GLboolean GL_APIENTRY glIsFenceNV (GLuint); GL_API GLboolean GL_APIENTRY glTestFenceNV (GLuint); GL_API void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); GL_API void GL_APIENTRY glFinishFenceNV (GLuint); GL_API void GL_APIENTRY glSetFenceNV (GLuint, GLenum); #endif typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); #endif /*------------------------------------------------------------------------* * QCOM extension functions *------------------------------------------------------------------------*/ /* GL_QCOM_driver_control */ #ifndef GL_QCOM_driver_control #define GL_QCOM_driver_control 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); GL_API void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); GL_API void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); GL_API void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); #endif typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); #endif /* GL_QCOM_extended_get */ #ifndef GL_QCOM_extended_get #define GL_QCOM_extended_get 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); GL_API void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); GL_API void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); GL_API void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); GL_API void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); GL_API void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); GL_API void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); #endif typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params); #endif /* GL_QCOM_extended_get2 */ #ifndef GL_QCOM_extended_get2 #define GL_QCOM_extended_get2 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); GL_API void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); GL_API GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); GL_API void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif /* GL_QCOM_perfmon_global_mode */ #ifndef GL_QCOM_perfmon_global_mode #define GL_QCOM_perfmon_global_mode 1 #endif /* GL_QCOM_writeonly_rendering */ #ifndef GL_QCOM_writeonly_rendering #define GL_QCOM_writeonly_rendering 1 #endif /* GL_QCOM_tiled_rendering */ #ifndef GL_QCOM_tiled_rendering #define GL_QCOM_tiled_rendering 1 #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); GL_API void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); #endif typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); #endif #ifdef __cplusplus } #endif #endif /* __glext_h_ */ |
Added jni/glshim/include/GLES/glplatform.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #ifndef __glplatform_h_ #define __glplatform_h_ /* $Revision: 10601 $ on $Date:: 2010-03-04 22:15:27 -0800 #$ */ /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /* Platform-specific types and definitions for OpenGL ES 1.X gl.h * * Adopters may modify khrplatform.h and this file to suit their platform. * You are encouraged to submit all modifications to the Khronos group so that * they can be included in future versions of this file. Please submit changes * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) * by filing a bug against product "OpenGL-ES" component "Registry". */ #include <KHR/khrplatform.h> #ifndef GL_API #define GL_API KHRONOS_APICALL #endif #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif #endif /* __glplatform_h_ */ |
Added jni/glshim/include/KHR/khrplatform.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | #ifndef __khrplatform_h_ #define __khrplatform_h_ /* ** Copyright (c) 2008-2009 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ /* Khronos platform-specific types and definitions. * * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ * * Adopters may modify this file to suit their platform. Adopters are * encouraged to submit platform specific modifications to the Khronos * group so that they can be included in future versions of this file. * Please submit changes by sending them to the public Khronos Bugzilla * (http://khronos.org/bugzilla) by filing a bug against product * "Khronos (general)" component "Registry". * * A predefined template which fills in some of the bug fields can be * reached using http://tinyurl.com/khrplatform-h-bugreport, but you * must create a Bugzilla login first. * * * See the Implementer's Guidelines for information about where this file * should be located on your system and for more details of its use: * http://www.khronos.org/registry/implementers_guide.pdf * * This file should be included as * #include <KHR/khrplatform.h> * by Khronos client API header files that use its types and defines. * * The types in khrplatform.h should only be used to define API-specific types. * * Types defined in khrplatform.h: * khronos_int8_t signed 8 bit * khronos_uint8_t unsigned 8 bit * khronos_int16_t signed 16 bit * khronos_uint16_t unsigned 16 bit * khronos_int32_t signed 32 bit * khronos_uint32_t unsigned 32 bit * khronos_int64_t signed 64 bit * khronos_uint64_t unsigned 64 bit * khronos_intptr_t signed same number of bits as a pointer * khronos_uintptr_t unsigned same number of bits as a pointer * khronos_ssize_t signed size * khronos_usize_t unsigned size * khronos_float_t signed 32 bit floating point * khronos_time_ns_t unsigned 64 bit time in nanoseconds * khronos_utime_nanoseconds_t unsigned time interval or absolute time in * nanoseconds * khronos_stime_nanoseconds_t signed time interval in nanoseconds * khronos_boolean_enum_t enumerated boolean type. This should * only be used as a base type when a client API's boolean type is * an enum. Client APIs which use an integer or other type for * booleans cannot use this as the base type for their boolean. * * Tokens defined in khrplatform.h: * * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. * * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. * * Calling convention macros defined in this file: * KHRONOS_APICALL * KHRONOS_APIENTRY * KHRONOS_APIATTRIBUTES * * These may be used in function prototypes as: * * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( * int arg1, * int arg2) KHRONOS_APIATTRIBUTES; */ /*------------------------------------------------------------------------- * Definition of KHRONOS_APICALL *------------------------------------------------------------------------- * This precedes the return type of the function in the function prototype. */ #if defined(_WIN32) && !defined(__SCITECH_SNAP__) # define KHRONOS_APICALL __declspec(dllimport) #elif defined (__SYMBIAN32__) # define KHRONOS_APICALL IMPORT_C #else # define KHRONOS_APICALL #endif /*------------------------------------------------------------------------- * Definition of KHRONOS_APIENTRY *------------------------------------------------------------------------- * This follows the return type of the function and precedes the function * name in the function prototype. */ #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) /* Win32 but not WinCE */ # define KHRONOS_APIENTRY __stdcall #else # define KHRONOS_APIENTRY #endif /*------------------------------------------------------------------------- * Definition of KHRONOS_APIATTRIBUTES *------------------------------------------------------------------------- * This follows the closing parenthesis of the function prototype arguments. */ #if defined (__ARMCC_2__) #define KHRONOS_APIATTRIBUTES __softfp #else #define KHRONOS_APIATTRIBUTES #endif /*------------------------------------------------------------------------- * basic type definitions *-----------------------------------------------------------------------*/ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) /* * Using <stdint.h> */ #include <stdint.h> typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #elif defined(__VMS ) || defined(__sgi) /* * Using <inttypes.h> */ #include <inttypes.h> typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__) /* * Win32 */ typedef __int32 khronos_int32_t; typedef unsigned __int32 khronos_uint32_t; typedef __int64 khronos_int64_t; typedef unsigned __int64 khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #elif defined(__sun__) || defined(__digital__) /* * Sun or Digital */ typedef int khronos_int32_t; typedef unsigned int khronos_uint32_t; #if defined(__arch64__) || defined(_LP64) typedef long int khronos_int64_t; typedef unsigned long int khronos_uint64_t; #else typedef long long int khronos_int64_t; typedef unsigned long long int khronos_uint64_t; #endif /* __arch64__ */ #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #elif 0 /* * Hypothetical platform with no float or int64 support */ typedef int khronos_int32_t; typedef unsigned int khronos_uint32_t; #define KHRONOS_SUPPORT_INT64 0 #define KHRONOS_SUPPORT_FLOAT 0 #else /* * Generic fallback */ #include <stdint.h> typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #endif /* * Types that are (so far) the same on all platforms */ typedef signed char khronos_int8_t; typedef unsigned char khronos_uint8_t; typedef signed short int khronos_int16_t; typedef unsigned short int khronos_uint16_t; typedef signed long int khronos_intptr_t; typedef unsigned long int khronos_uintptr_t; typedef signed long int khronos_ssize_t; typedef unsigned long int khronos_usize_t; #if KHRONOS_SUPPORT_FLOAT /* * Float type */ typedef float khronos_float_t; #endif #if KHRONOS_SUPPORT_INT64 /* Time types * * These types can be used to represent a time interval in nanoseconds or * an absolute Unadjusted System Time. Unadjusted System Time is the number * of nanoseconds since some arbitrary system event (e.g. since the last * time the system booted). The Unadjusted System Time is an unsigned * 64 bit value that wraps back to 0 every 584 years. Time intervals * may be either signed or unsigned. */ typedef khronos_uint64_t khronos_utime_nanoseconds_t; typedef khronos_int64_t khronos_stime_nanoseconds_t; #endif /* * Dummy value used to pad enum types to 32 bits. */ #ifndef KHRONOS_MAX_ENUM #define KHRONOS_MAX_ENUM 0x7FFFFFFF #endif /* * Enumerated boolean type * * Values other than zero should be considered to be true. Therefore * comparisons should not be made against KHRONOS_TRUE. */ typedef enum { KHRONOS_FALSE = 0, KHRONOS_TRUE = 1, KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM } khronos_boolean_enum_t; #endif /* __khrplatform_h_ */ |
Added jni/glshim/spec/build.
> > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/bash -ux cd "$(dirname "$0")" base=../src/ gles="yml/gles-1.1.yml,yml/oes.yml" gles2="yml/gles-2.0.yml" opengl="yml/opengl.yml" cats="VERSION_1_0,VERSION_1_1,VERSION_1_2,VERSION_1_3,VERSION_1_4,VERSION_1_5,EXT_swap_control" ./gen.py "$gles" mock.c.j2 mock.c mock.h > "$base/../test/util/mock.c" & ./gen.py "$gles" --ifndef USE_ES2 mock.h.j2 mock.h "gl_str.h" "wrap/gles.h" > "$base/../test/util/mock.h" ./gen.py "$gles" --ifndef USE_ES2 gleswrap.c.j2 gleswrap.c gles.h ../loader.h ../skip.h > "$base/gl/wrap/gles.c" & ./gen.py --deep "$opengl,$gles" --ifndef USE_ES2 glwrap.h.j2 gleswrap.h ../types.h > "$base/gl/wrap/gles.h" ./gen.py "$gles2" --ifdef USE_ES2 gleswrap.c.j2 gles2wrap.c gles2.h ../loader.h > "$base/gl/wrap/gles2.c" ./gen.py "$gles2" --ifdef USE_ES2 glwrap.h.j2 gles2wrap.h > "$base/gl/wrap/gles2.h" rm -rf "$base/../test/build" |
Added jni/glshim/spec/gen.py.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | #!/usr/bin/env python import argparse import jinja2 import re from yaml import load split_re = re.compile(r'^(?P<type>.*?)\s*(?P<name>\w+)$') env = jinja2.Environment( trim_blocks=True, loader=jinja2.FileSystemLoader('template'), ) def args(args, add_type=True): return ', '.join( '{} {}'.format(arg['type'], arg['name']) if add_type else arg['name'] for arg in args ) f = '0.2f' printf_lookup = { 'GLbitfield': 'd', 'GLboolean': 'd', 'GLbyte': 'c', 'GLubyte': 'c', 'GLchar': 'c', 'GLdouble': '0.2f', 'GLenum': '0x%04X', 'GLfloat': '0.2f', 'GLint': 'd', 'GLintptr': 'd', 'GLintptrARB': 'd', 'GLshort': 'd', 'GLsizei': 'd', 'GLsizeiptr': 'd', 'GLsizeiptrARB': 'd', 'GLuint': 'u', 'GLushort': 'u', 'GLvoid': 'p', } def printf(args): if isinstance(args, dict): args = (args,) types = [] for arg in args: typ = arg['type'] if '*' in typ: t = 'p' else: t = printf_lookup.get(typ, 'p') if not '%' in t: t = '%' + t types.append(t) return ', '.join(types) def unconst(s): split = s.split(' ') while 'const' in split: split.remove('const') return ' '.join(split) env.filters['args'] = args env.filters['printf'] = printf env.filters['unconst'] = unconst def split_arg(arg): match = split_re.match(arg) if match: return match.groupdict() else: return {'type': 'unknown', 'name': arg} def gen(files, template, guard_name, headers, deep=False, cats=(), ifdef=None, ifndef=None): funcs = {} formats = [] unique_formats = set() for data in files: if deep and not isinstance(data.values()[0], list): functions = [] for cat, f in data.items(): if not cats or cat in cats: functions.extend(f.items()) else: functions = data.items() for name, args in sorted(functions): props = {} if args: ret = args.pop(0) else: ret = 'void' args = [split_arg(arg) for arg in args if not arg == 'void'] if any(arg.get('type') == 'unknown' for arg in args): continue if args: args[0]['first'] = True args[-1]['last'] = True for i, arg in enumerate(args): arg['index'] = i types = '_'.join( arg['type'].replace(' ', '_').replace('*', '__GENPT__') for arg in [{'type': ret}] + args) props.update({ 'return': ret, 'name': name, 'args': args, 'types': types, 'void': ret == 'void', }) if not types in unique_formats: unique_formats.add(types) formats.append(props) funcs[name] = props context = { 'functions': [i[1] for i in sorted(funcs.items())], 'formats': formats, 'headers': headers, 'name': guard_name, 'ifdef': ifdef, 'ifndef': ifndef, } t = env.get_template(template) return t.render(**context).rstrip('\n') if __name__ == '__main__': parser = argparse.ArgumentParser(description='Generate code with yml/jinja.') parser.add_argument('yaml', help='spec files') parser.add_argument('template', help='jinja template to load') parser.add_argument('name', help='header guard name') parser.add_argument('headers', nargs='*', help='headers to include') parser.add_argument('--deep', help='nested definitions', action='store_true') parser.add_argument('--cats', help='deep category filter') parser.add_argument('--ifdef', help='wrap with ifdef') parser.add_argument('--ifndef', help='wrap with ifndef') args = parser.parse_args() files = [] for name in args.yaml.split(','): with open(name) as f: data = load(f) if data: files.append(data) if args.cats: cats = args.cats.split(',') else: cats = None print gen(files, args.template, args.name, args.headers, args.deep, cats, args.ifdef, args.ifndef) |
Added jni/glshim/spec/requirements.txt.
> > | 1 2 | jinja2 pyyaml |
Added jni/glshim/spec/template/base/base.j2.
> > > > > > > | 1 2 3 4 5 6 7 | {% if ifdef %}#ifdef {{ ifdef }} {% endif %} {% if ifndef %}#ifndef {{ ifndef }} {% endif %} {% block main %}{% endblock %} {% if ifdef %}#endif{% endif %} {% if ifndef %}#endif{% endif %} |
Added jni/glshim/spec/template/base/fprint.j2.
> > > > > | 1 2 3 4 5 | {% if func.args %} printf("{{ func.name }}({{ func.args|printf }});\n", {{ func.args|args(0) }}); {% else %} printf("{{ func.name }}();\n"); {% endif %} |
Added jni/glshim/spec/template/base/header.j2.
> > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 | {% extends "base/base.j2" %} {% block main %} {% include "base/headers.j2" %} {% set guard = name.upper().replace('.', '_') -%} #ifndef {{ guard }} #define {{ guard }} {% block content %}{% endblock %} #endif {% endblock %} |
Added jni/glshim/spec/template/base/headers.j2.
> > > > > > > | 1 2 3 4 5 6 7 | {% for header in headers %} {% if "<" in header %} #include {{ header }} {% else %} #include "{{ header }}" {% endif %} {% endfor %} |
Added jni/glshim/spec/template/base/indexed_call.j2.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | void glIndexedCall(const indexed_call_t *packed, void *ret_v) { switch (packed->func) { {% for f in functions %} #ifndef skip_index_{{ f.name }} case {{ f.name }}_INDEX: { INDEXED_{{ f.types }} *unpacked = (INDEXED_{{ f.types }} *)packed; {% if f.args %} ARGS_{{ f.types }} args = unpacked->args; {% endif %} {% if not f.void %} {{ f.return }} *ret = ({{ f.return }} *)ret_v; *ret = {% endif %} {{ f.name }}({% for arg in f.args -%} args.a{{ loop.index }}{% if not arg.last %}, {% endif %} {% endfor %}); break; } #endif {% endfor %} } } |
Added jni/glshim/spec/template/base/packed_call.j2.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void glPackedCall(const packed_call_t *packed) { switch (packed->format) { {% for f in formats %} case FORMAT_{{ f.types }}: { PACKED_{{ f.types }} *unpacked = (PACKED_{{ f.types }} *)packed; {% if f.args %} ARGS_{{ f.types }} args = unpacked->args; {% endif %} unpacked->func({% for arg in f.args -%} args.a{{ loop.index }}{% if not arg.last %}, {% endif %} {% endfor %}); break; } {% endfor %} } } |
Added jni/glshim/spec/template/base/wrap.c.j2.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | {% extends "base/base.j2" %} {% block main %} {% block headers %} {% include "base/headers.j2" %} {% endblock %} {% for func in functions %} {% block definition scoped %} {{ func.return }} {% block func_prefix %}{% endblock %}{{ func.name }}({{ func.args|args }}) { {% block load scoped %}{% endblock %} {% block call scoped %} {% if not func.void %}return {% endif %}{% block prefix %}wrap{% endblock %}_{{ func.name }}({{ func.args|args(0) }}); {%- endblock %} } {% endblock %} {% endfor %} {% endblock %} |
Added jni/glshim/spec/template/base/wrap.h.j2.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | {% extends "base/header.j2" %} {% block content %} enum FORMAT { {% for f in formats %} FORMAT_{{ f.types }}, {% endfor %} }; {% for f in formats %} typedef {{ f.return }} (*FUNC_{{ f.types }})({{ f.args|args }}); {% if f.args %} typedef struct { {% for arg in f.args %} {{ arg.type|unconst }} a{{ loop.index }}{% if arg.type == 'GLdouble' %} __attribute__ ((aligned(8))){% endif %}; {% endfor %} } ARGS_{{ f.types }}; {% endif %} typedef struct { int format; FUNC_{{ f.types }} func; int refs; {% if f.args %} ARGS_{{ f.types }} args; {% endif %} } PACKED_{{ f.types }}; typedef struct { int func; {% if f.args %} ARGS_{{ f.types }} args; {% endif %} } INDEXED_{{ f.types }}; {% endfor %} extern void glPushCall(void *data); void glPackedCall(const packed_call_t *packed); void glIndexedCall(const indexed_call_t *packed, void *ret_v); {% for func in functions %} #define {{ func.name }}_INDEX {{ loop.index }} #define {{ func.name }}_RETURN {{ func.return }} #define {{ func.name }}_ARG_NAMES {{ func.args|args(0) }} #define {{ func.name }}_ARG_EXPAND {{ func.args|args }} #define {{ func.name }}_PACKED PACKED_{{ func.types }} #define {{ func.name }}_INDEXED INDEXED_{{ func.types }} #define {{ func.name }}_FORMAT FORMAT_{{ func.types }} {% endfor %} {% for func in functions %} {{ func.return }} {{ func.name }}({{ func.name }}_ARG_EXPAND); typedef {{ func.return }} (*{{ func.name }}_PTR)({{ func.name }}_ARG_EXPAND); {% endfor %} {% endblock %} |
Added jni/glshim/spec/template/gleswrap.c.j2.
> > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | {% extends "base/wrap.c.j2" %} {% block headers %} {{ super() }} {% include "base/packed_call.j2" %} {% endblock %} {% block definition %} #ifndef skip_{{ func.name }} {{ super() -}} #endif {% endblock %} {% block load %} LOAD_GLES({{ func.name }}); {% endblock %} {% block call %} #ifndef direct_{{ func.name }} PUSH_IF_COMPILING({{ func.name }}); #endif {{ super() }} {% endblock %} {% block prefix %}gles{% endblock %} |
Added jni/glshim/spec/template/glwrap.h.j2.
> > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | {% extends "base/wrap.h.j2" %} {% block content %} {{ super() }} {% for func in functions %} #ifndef direct_{{ func.name }} #define push_{{ func.name }}({{ func.args|args(0) }}) { \ {{ func.name }}_PACKED *packed_data = malloc(sizeof({{ func.name }}_PACKED)); \ packed_data->format = {{ func.name }}_FORMAT; \ packed_data->func = {{ func.name }}; \ packed_data->refs = 0; \ {% if func.args %} {% for arg in func.args %} packed_data->args.a{{ loop.index }} = ({{ arg.type|unconst }}){{ arg.name }}; \ {% endfor %} {% endif %} glPushCall((void *)packed_data); \ } #endif {% endfor %} {% endblock %} |
Added jni/glshim/spec/template/mock.c.j2.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | {% extends "base/wrap.c.j2" %} {% block headers %} {{ super() }} #include <stdio.h> #include "tack.h" static tack_t mock = {0}; const char *mock_name(int func) { switch (func) { {% for f in functions %} case {{ f.name }}_INDEX: return "{{ f.name }}"; {% endfor %} } } void mock_print(const indexed_call_t *packed) { if (packed == NULL) { printf("NULL()\n"); return; } switch (packed->func) { {% for f in functions %} case {{ f.name }}_INDEX: { INDEXED_{{ f.types }} *unpacked = (INDEXED_{{ f.types }} *)packed; {% if f.args %} ARGS_{{ f.types }} args = unpacked->args; {% endif %} printf("{{ f.name }}({{ f.args|printf }});\n" {%- for arg in f.args %}, args.a{{ loop.index }}{% endfor -%}); break; } {% endfor %} } } void *mock_get(int idx) { return tack_get(&mock, idx); } void *mock_peek() { return tack_peek(&mock); } void *mock_cur() { return tack_cur(&mock); } void *mock_shift() { return tack_shift(&mock); } void *mock_slide(int func) { if (mock.pos >= mock.len) { return NULL; } indexed_call_t **stack = (indexed_call_t **)mock.data; for (int i = mock.pos; i < mock.len; i++) { if (stack[i]->func == func) { mock.pos = i + 1; return stack[i]; } } return NULL; } void mock_push(void *call) { tack_push(&mock, call); } void *mock_pop() { return tack_pop(&mock); } {% endblock %} {% block func_prefix %}gles_{% endblock %} {% block call %} emit_{{ func.name }}({{ func.args|args(0) }}); {% if not func.void %} return ({{ func.return }})0; {% endif %} {% endblock %} |
Added jni/glshim/spec/template/mock.h.j2.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | {% extends "base/header.j2" %} {% block main %} #ifdef __cplusplus extern "C" { #endif {{ super() }} #ifdef __cplusplus } // extern "C" #endif {% endblock %} {% block content %} {{ super() }} const char *mock_name(int func); void *mock_cur(); void *mock_get(int idx); void *mock_peek(); void *mock_shift(); void *mock_slide(int func); void mock_print(const indexed_call_t *packed); void mock_push(void *call); static int verbose_test = 0; static int failed_test = 0; #define verbose { verbose_test = 1; } #define mock_warningf(...) { printf("WARNING: "), printf(__VA_ARGS__); } #define mock_errorf(...) { printf("ERROR: "); printf(__VA_ARGS__); failed_test = 1; } #define mock_assert(cond, ...) { if (!(cond)) { mock_errorf(__VA_ARGS__); }} #define assert(cond) mock_assert(cond, "%s\n", #cond) #define mock_print_ptr(prefix, ptr, size) \ printf("%s ", prefix); \ if (ptr == NULL) { \ printf("NULL"); \ } else { \ for (size_t i = 0; i < size; i++) { \ if (i > 0 && i % 4 == 0) printf(" "); \ printf("%02X", *(uint8_t *)(ptr+i)); \ } \ } \ printf("\n"); #define mock_return { \ indexed_call_t *call = NULL; \ while ((call = mock_shift()) != NULL) { \ mock_warningf("extra "); \ mock_print(call); \ } \ if (state.error) { \ mock_warningf("Ended with GL error flag: %s\n", gl_str(state.error)); \ } \ return failed_test; \ } {% for func in functions %} #define pack_{{ func.name }}({{ func.args|args(0) }}) ({ \ {{ func.name }}_INDEXED *packed_data = malloc(sizeof({{ func.name }}_INDEXED)); \ packed_data->func = {{ func.name }}_INDEX; \ {% if func.args %} {% for arg in func.args %} packed_data->args.a{{ loop.index }} = ({{ arg.type|unconst }}){{ arg.name }}; \ {% endfor %} {% endif %} packed_data; \ }) #define emit_{{ func.name }}({{ func.args|args(0) }}) { \ mock_push(pack_{{ func.name }}({{ func.args|args(0) }})); \ } #define test_{{ func.name }}({{ func.args|args(0) }}) { \ {{ func.name }}_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("{{ func.name }} missing (no calls left)\n"); \ } else if (packed->func != {{ func.name }}_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide({{ func.name }}_INDEX); \ if (! packed) { \ mock_errorf("{{ func.name }} missing\n"); \ } else { \ mock_warningf("unexpected call while looking for {{ func.name }}:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1; \ void *a, *b; \ {% for arg in func.args %} {% if '*' in arg.type %} a = packed->args.a{{ loop.index }}, b = {{ arg.name }}; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof({{ arg.name }})) != 0))) { \ printf(" ERROR: arg mismatch: {{ arg.name }}\n"); \ mock_print_ptr(" expected:", b, sizeof({{ arg.name }})); \ mock_print_ptr(" found:", a, sizeof({{ arg.name }})); \ {% elif 'float' in arg.type or 'double' in arg.type %} if (packed->args.a{{ loop.index }} - {{ arg.name }} >= 0.01) { \ {% else %} if (packed->args.a{{ loop.index }} != {{ arg.name }}) { \ {% endif %} match = 0; \ } \ {% endfor %} if (! match) { \ mock_errorf("calls do not match:\n"); \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: {{ func.name }}({{ func.args|printf }});\n", {{ func.args|args(0) }}); \ } \ } \ } {% endfor %} {% for func in functions %} #define gles_{{ func.name }}_INDEX {{ loop.index }} #define gles_{{ func.name }}_RETURN {{ func.return }} #define gles_{{ func.name }}_ARG_NAMES {{ func.args|args(0) }} #define gles_{{ func.name }}_ARG_EXPAND {{ func.args|args }} #define gles_{{ func.name }}_PACKED PACKED_{{ func.types }} #define gles_{{ func.name }}_INDEXED INDEXED_{{ func.types }} #define gles_{{ func.name }}_FORMAT FORMAT_{{ func.types }} {% endfor %} {% for func in functions %} {{ func.return }} gles_{{ func.name }}({{ func.name }}_ARG_EXPAND); {% endfor %} {% endblock %} |
Added jni/glshim/spec/xml/egl.xml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 | <?xml version="1.0" encoding="UTF-8"?> <registry> <!-- source: https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/egl.xml --> <!-- Copyright (c) 2013 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. --> <!-- This file, egl.xml, is the EGL API Registry. The older ".spec" file format has been retired and will no longer be updated with new extensions and API versions. The canonical version of the registry, together with documentation, schema, and Python generator scripts used to generate C header files for EGL, can always be found in the Khronos Registry at http://www.opengl.org/registry/egl --> <!-- SECTION: EGL type definitions. Does not include GL types. --> <types> <!-- These are dependencies EGL types require to be declared legally --> <type name="khrplatform"><![CDATA[#include <KHR/khrplatform.h>]]></type> <type name="eglplatform" requires="khrplatform"><![CDATA[#include <EGL/eglplatform.h>]]></type> <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/> <type name="khronos_uint64_t" requires="khrplatform"/> <type name="khronos_ssize_t" requires="khrplatform"/> <type name="EGLNativeDisplayType" requires="eglplatform"/> <type name="EGLNativePixmapType" requires="eglplatform"/> <type name="EGLNativeWindowType" requires="eglplatform"/> <type name="NativeDisplayType" requires="eglplatform"/> <type name="NativePixmapType" requires="eglplatform"/> <type name="NativeWindowType" requires="eglplatform"/> <!-- Dummy placeholders for non-EGL types --> <type name="Bool"/> <!-- These are actual EGL types. --> <type>typedef unsigned int <name>EGLBoolean</name>;</type> <type>typedef unsigned int <name>EGLenum</name>;</type> <type>typedef void *<name>EGLConfig</name>;</type> <type>typedef void *<name>EGLContext</name>;</type> <type>typedef void *<name>EGLDisplay</name>;</type> <type>typedef void *<name>EGLSurface</name>;</type> <type>typedef void *<name>EGLClientBuffer</name>;</type> <type>typedef void (*<name>__eglMustCastToProperFunctionPointerType</name>)(void);</type> <type>typedef void *<name>EGLImageKHR</name>;</type> <type>typedef void *<name>EGLSyncKHR</name>;</type> <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeKHR</name>;</type> <type>typedef void *<name>EGLSyncNV</name>;</type> <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeNV</name>;</type> <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLuint64NV</name>;</type> <type>typedef void *<name>EGLStreamKHR</name>;</type> <type requires="khrplatform">typedef khronos_uint64_t <name>EGLuint64KHR</name>;</type> <type>typedef int <name>EGLNativeFileDescriptorKHR</name>;</type> <type requires="khrplatform">typedef khronos_ssize_t <name>EGLsizeiANDROID</name>;</type> <type requires="EGLsizeiANDROID">typedef void (*<name>EGLSetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);</type> <type requires="EGLsizeiANDROID">typedef EGLsizeiANDROID (*<name>EGLGetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);</type> <type>struct <name>EGLClientPixmapHI</name> { void *pData; EGLint iWidth; EGLint iHeight; EGLint iStride; };</type> </types> <!-- SECTION: EGL enumerant (token) definitions. --> <!-- Bitmasks each have their own namespace, as do a few other categories of enumeration --> <enums namespace="EGLSurfaceTypeMask" type="bitmask" comment="EGL_SURFACE_TYPE bits"> <enum value="0x0001" name="EGL_PBUFFER_BIT"/> <enum value="0x0002" name="EGL_PIXMAP_BIT"/> <enum value="0x0004" name="EGL_WINDOW_BIT"/> <enum value="0x0008" name="EGL_PBUFFER_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/> <enum value="0x0010" name="EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/> <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT"/> <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/> <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/> <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/> <enum value="0x0080" name="EGL_LOCK_SURFACE_BIT_KHR"/> <enum value="0x0100" name="EGL_OPTIMAL_FORMAT_BIT_KHR"/> <enum value="0x0200" name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/> <enum value="0x0400" name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/> <enum value="0x0800" name="EGL_STREAM_BIT_KHR"/> <!-- <enum value="0x0800" name="EGL_STREAM_BIT_NV" comment="Draft EGL_NV_stream_producer_eglsurface extension (bug 8064)"/> --> </enums> <enums namespace="EGLRenderableTypeMask" type="bitmask" comment="EGL_RENDERABLE_TYPE bits"> <enum value="0x0001" name="EGL_OPENGL_ES_BIT"/> <enum value="0x0002" name="EGL_OPENVG_BIT"/> <enum value="0x0004" name="EGL_OPENGL_ES2_BIT"/> <enum value="0x0008" name="EGL_OPENGL_BIT"/> <enum value="0x0010" name="EGL_INTEROP_BIT_KHR" comment="EGL_KHR_interop"/> <enum value="0x0020" name="EGL_OPENMAX_IL_BIT_KHR" comment="EGL_KHR_interop"/> <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT_KHR"/> </enums> <enums namespace="EGLLockUsageHintKHRMask" type="bitmask" comment="EGL_LOCK_USAGE_HINT_KHR bits"> <enum value="0x0001" name="EGL_READ_SURFACE_BIT_KHR"/> <enum value="0x0002" name="EGL_WRITE_SURFACE_BIT_KHR"/> </enums> <enums namespace="EGLSyncFlagsKHR" type="bitmask" comment="Fence/reusable sync wait bits"> <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/> <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/> </enums> <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits"> <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/> <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/> </enums> <!-- Should be shared with GL, but aren't aren't since the FORWARD_COMPATIBLE and DEBUG_BIT values are swapped in the corresponding GL enums. Oops :-( --> <enums namespace="EGLContextFlagMask" type="bitmask" comment="EGL_CONTEXT_FLAGS_KHR bits"> <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/> <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/> <enum value="0x00000004" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/> </enums> <enums namespace="EGLContextProfileMask" type="bitmask" comment="Shared with GL"> <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/> <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/> </enums> <!-- The default ("API") enum namespace starts here. While some assigned values may overlap, and different parts of the namespace are reserved for different purposes, it is a single namespace. The "class" attribute indicates some of the reserved purposes but is by no means complete (and cannot be, since many tokens are reused for different purposes in different extensions and API versions). --> <enums namespace="EGL" start="0x0000" end="0x2FFF" vendor="ARB"/> <enums namespace="EGL" group="Boolean" vendor="ARB"> <enum value="0" name="EGL_FALSE"/> <enum value="1" name="EGL_TRUE"/> </enums> <enums namespace="EGL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful"> <enum value="((EGLint)-1)" name="EGL_DONT_CARE"/> <enum value="((EGLint)-1)" name="EGL_UNKNOWN"/> <enum value="-1" name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/> <enum value="0" name="EGL_DEPTH_ENCODING_NONE_NV"/> <enum value="((EGLContext)0)" name="EGL_NO_CONTEXT"/> <enum value="((EGLDisplay)0)" name="EGL_NO_DISPLAY"/> <enum value="((EGLImageKHR)0)" name="EGL_NO_IMAGE_KHR"/> <enum value="((EGLNativeDisplayType)0)" name="EGL_DEFAULT_DISPLAY"/> <enum value="((EGLNativeFileDescriptorKHR)(-1))" name="EGL_NO_FILE_DESCRIPTOR_KHR"/> <enum value="((EGLStreamKHR)0)" name="EGL_NO_STREAM_KHR"/> <enum value="((EGLSurface)0)" name="EGL_NO_SURFACE"/> <enum value="((EGLSyncKHR)0)" name="EGL_NO_SYNC_KHR"/> <enum value="((EGLSyncNV)0)" name="EGL_NO_SYNC_NV"/> <enum value="10000" name="EGL_DISPLAY_SCALING"/> <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_KHR" type="ull"/> <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_NV" type="ull"/> </enums> <enums namespace="EGL" start="0x3000" end="0x305F" vendor="Khronos"> <enum value="0x3000" name="EGL_SUCCESS"/> <enum value="0x3001" name="EGL_NOT_INITIALIZED"/> <enum value="0x3002" name="EGL_BAD_ACCESS"/> <enum value="0x3003" name="EGL_BAD_ALLOC"/> <enum value="0x3004" name="EGL_BAD_ATTRIBUTE"/> <enum value="0x3005" name="EGL_BAD_CONFIG"/> <enum value="0x3006" name="EGL_BAD_CONTEXT"/> <enum value="0x3007" name="EGL_BAD_CURRENT_SURFACE"/> <enum value="0x3008" name="EGL_BAD_DISPLAY"/> <enum value="0x3009" name="EGL_BAD_MATCH"/> <enum value="0x300A" name="EGL_BAD_NATIVE_PIXMAP"/> <enum value="0x300B" name="EGL_BAD_NATIVE_WINDOW"/> <enum value="0x300C" name="EGL_BAD_PARAMETER"/> <enum value="0x300D" name="EGL_BAD_SURFACE"/> <enum value="0x300E" name="EGL_CONTEXT_LOST"/> <unused start="0x300F" end="0x301F" comment="for additional errors"/> <enum value="0x3020" name="EGL_BUFFER_SIZE"/> <enum value="0x3021" name="EGL_ALPHA_SIZE"/> <enum value="0x3022" name="EGL_BLUE_SIZE"/> <enum value="0x3023" name="EGL_GREEN_SIZE"/> <enum value="0x3024" name="EGL_RED_SIZE"/> <enum value="0x3025" name="EGL_DEPTH_SIZE"/> <enum value="0x3026" name="EGL_STENCIL_SIZE"/> <enum value="0x3027" name="EGL_CONFIG_CAVEAT"/> <enum value="0x3028" name="EGL_CONFIG_ID"/> <enum value="0x3029" name="EGL_LEVEL"/> <enum value="0x302A" name="EGL_MAX_PBUFFER_HEIGHT"/> <enum value="0x302B" name="EGL_MAX_PBUFFER_PIXELS"/> <enum value="0x302C" name="EGL_MAX_PBUFFER_WIDTH"/> <enum value="0x302D" name="EGL_NATIVE_RENDERABLE"/> <enum value="0x302E" name="EGL_NATIVE_VISUAL_ID"/> <enum value="0x302F" name="EGL_NATIVE_VISUAL_TYPE"/> <enum value="0x3031" name="EGL_SAMPLES"/> <enum value="0x3032" name="EGL_SAMPLE_BUFFERS"/> <enum value="0x3033" name="EGL_SURFACE_TYPE"/> <enum value="0x3034" name="EGL_TRANSPARENT_TYPE"/> <enum value="0x3035" name="EGL_TRANSPARENT_BLUE_VALUE"/> <enum value="0x3036" name="EGL_TRANSPARENT_GREEN_VALUE"/> <enum value="0x3037" name="EGL_TRANSPARENT_RED_VALUE"/> <enum value="0x3038" name="EGL_NONE" comment="Attribute list terminator"/> <enum value="0x3039" name="EGL_BIND_TO_TEXTURE_RGB"/> <enum value="0x303A" name="EGL_BIND_TO_TEXTURE_RGBA"/> <enum value="0x303B" name="EGL_MIN_SWAP_INTERVAL"/> <enum value="0x303C" name="EGL_MAX_SWAP_INTERVAL"/> <enum value="0x303D" name="EGL_LUMINANCE_SIZE"/> <enum value="0x303E" name="EGL_ALPHA_MASK_SIZE"/> <enum value="0x303F" name="EGL_COLOR_BUFFER_TYPE"/> <enum value="0x3040" name="EGL_RENDERABLE_TYPE"/> <enum value="0x3041" name="EGL_MATCH_NATIVE_PIXMAP"/> <enum value="0x3042" name="EGL_CONFORMANT"/> <enum value="0x3042" name="EGL_CONFORMANT_KHR"/> <enum value="0x3043" name="EGL_MATCH_FORMAT_KHR"/> <unused start="0x3044" end="0x304F" comment="for additional config attributes"/> <enum value="0x3050" name="EGL_SLOW_CONFIG"/> <enum value="0x3051" name="EGL_NON_CONFORMANT_CONFIG"/> <enum value="0x3052" name="EGL_TRANSPARENT_RGB"/> <enum value="0x3053" name="EGL_VENDOR"/> <enum value="0x3054" name="EGL_VERSION"/> <enum value="0x3055" name="EGL_EXTENSIONS"/> <enum value="0x3056" name="EGL_HEIGHT"/> <enum value="0x3057" name="EGL_WIDTH"/> <enum value="0x3058" name="EGL_LARGEST_PBUFFER"/> <enum value="0x3059" name="EGL_DRAW"/> <enum value="0x305A" name="EGL_READ"/> <enum value="0x305B" name="EGL_CORE_NATIVE_ENGINE"/> <enum value="0x305C" name="EGL_NO_TEXTURE"/> <enum value="0x305D" name="EGL_TEXTURE_RGB"/> <enum value="0x305E" name="EGL_TEXTURE_RGBA"/> <enum value="0x305F" name="EGL_TEXTURE_2D"/> </enums> <enums namespace="EGL" start="0x3060-0x306F" vendor="TAO" comment="Reserved for Phil Huxley"> <unused start="0x3060" end="0x306F"/> </enums> <enums namespace="EGL" start="0x3070-0x307F" vendor="NOK" comment="Reserved for Jani Vaarala"> <unused start="0x3070" end="0x307F"/> </enums> <enums namespace="EGL" start="0x3080-0x30AF" vendor="Khronos"> <enum value="0x3080" name="EGL_TEXTURE_FORMAT"/> <enum value="0x3081" name="EGL_TEXTURE_TARGET"/> <enum value="0x3082" name="EGL_MIPMAP_TEXTURE"/> <enum value="0x3083" name="EGL_MIPMAP_LEVEL"/> <enum value="0x3084" name="EGL_BACK_BUFFER"/> <enum value="0x3085" name="EGL_SINGLE_BUFFER"/> <enum value="0x3086" name="EGL_RENDER_BUFFER"/> <enum value="0x3087" name="EGL_COLORSPACE" alias="EGL_VG_COLORSPACE"/> <enum value="0x3087" name="EGL_VG_COLORSPACE"/> <enum value="0x3088" name="EGL_ALPHA_FORMAT" alias="EGL_VG_ALPHA_FORMAT"/> <enum value="0x3088" name="EGL_VG_ALPHA_FORMAT"/> <enum value="0x3089" name="EGL_COLORSPACE_sRGB" alias="EGL_VG_COLORSPACE_sRGB"/> <enum value="0x3089" name="EGL_VG_COLORSPACE_sRGB"/> <enum value="0x308A" name="EGL_COLORSPACE_LINEAR" alias="EGL_VG_COLORSPACE_LINEAR"/> <enum value="0x308A" name="EGL_VG_COLORSPACE_LINEAR"/> <enum value="0x308B" name="EGL_ALPHA_FORMAT_NONPRE" alias="EGL_VG_ALPHA_FORMAT_NONPRE"/> <enum value="0x308B" name="EGL_VG_ALPHA_FORMAT_NONPRE"/> <enum value="0x308C" name="EGL_ALPHA_FORMAT_PRE" alias="EGL_VG_ALPHA_FORMAT_PRE"/> <enum value="0x308C" name="EGL_VG_ALPHA_FORMAT_PRE"/> <enum value="0x308D" name="EGL_CLIENT_APIS"/> <enum value="0x308E" name="EGL_RGB_BUFFER"/> <enum value="0x308F" name="EGL_LUMINANCE_BUFFER"/> <enum value="0x3090" name="EGL_HORIZONTAL_RESOLUTION"/> <enum value="0x3091" name="EGL_VERTICAL_RESOLUTION"/> <enum value="0x3092" name="EGL_PIXEL_ASPECT_RATIO"/> <enum value="0x3093" name="EGL_SWAP_BEHAVIOR"/> <enum value="0x3094" name="EGL_BUFFER_PRESERVED"/> <enum value="0x3095" name="EGL_BUFFER_DESTROYED"/> <enum value="0x3096" name="EGL_OPENVG_IMAGE"/> <enum value="0x3097" name="EGL_CONTEXT_CLIENT_TYPE"/> <enum value="0x3098" name="EGL_CONTEXT_CLIENT_VERSION"/> <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION_KHR" alias="EGL_CONTEXT_CLIENT_VERSION"/> <enum value="0x3099" name="EGL_MULTISAMPLE_RESOLVE"/> <enum value="0x309A" name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/> <enum value="0x309B" name="EGL_MULTISAMPLE_RESOLVE_BOX"/> <unused start="0x309C" end="0x309F"/> <enum value="0x30A0" name="EGL_OPENGL_ES_API"/> <enum value="0x30A1" name="EGL_OPENVG_API"/> <enum value="0x30A2" name="EGL_OPENGL_API"/> <unused start="0x30A3" end="0x30AF" comment="for additional client API names"/> </enums> <enums namespace="EGL" start="0x30B0-0x30BF" vendor="NV" comment="Reserved for Ignacio Llamas"> <enum value="0x30B0" name="EGL_NATIVE_PIXMAP_KHR"/> <enum value="0x30B1" name="EGL_GL_TEXTURE_2D_KHR"/> <enum value="0x30B2" name="EGL_GL_TEXTURE_3D_KHR"/> <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/> <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/> <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/> <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/> <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/> <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/> <enum value="0x30B9" name="EGL_GL_RENDERBUFFER_KHR"/> <enum value="0x30BA" name="EGL_VG_PARENT_IMAGE_KHR"/> <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL_KHR"/> <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET_KHR"/> <enum value="0x30BE" name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/> <enum value="0x30BF" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/> </enums> <enums namespace="EGL" start="0x30C0-0x30CF" vendor="KHR"> <enum value="0x30C0" name="EGL_FORMAT_RGB_565_EXACT_KHR"/> <enum value="0x30C1" name="EGL_FORMAT_RGB_565_KHR"/> <enum value="0x30C2" name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/> <enum value="0x30C3" name="EGL_FORMAT_RGBA_8888_KHR"/> <enum value="0x30C4" name="EGL_MAP_PRESERVE_PIXELS_KHR"/> <enum value="0x30C5" name="EGL_LOCK_USAGE_HINT_KHR"/> <enum value="0x30C6" name="EGL_BITMAP_POINTER_KHR"/> <enum value="0x30C7" name="EGL_BITMAP_PITCH_KHR"/> <enum value="0x30C8" name="EGL_BITMAP_ORIGIN_KHR"/> <enum value="0x30C9" name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/> <enum value="0x30CA" name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/> <enum value="0x30CB" name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/> <enum value="0x30CC" name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/> <enum value="0x30CD" name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/> <enum value="0x30CE" name="EGL_LOWER_LEFT_KHR"/> <enum value="0x30CF" name="EGL_UPPER_LEFT_KHR"/> </enums> <enums namespace="EGL" start="0x30D0" end="0x30DF" vendor="Symbian" comment="Reserved for Robert Palmer (bug #2545)"> <unused start="0x30D0" end="0x30D1"/> <enum value="0x30D2" name="EGL_IMAGE_PRESERVED_KHR"/> <unused start="0x30D3" end="0x30D9"/> <enum value="0x30DA" name="EGL_SHARED_IMAGE_NOK" comment="Unreleased extension"/> <unused start="0x30DB" end="0x30DF"/> </enums> <enums namespace="EGL" start="0x30E0" end="0x30EF" vendor="NV" comment="Reserved for Russell Pflughaupt (bug #3314)"> <enum value="0x30E0" name="EGL_COVERAGE_BUFFERS_NV"/> <enum value="0x30E1" name="EGL_COVERAGE_SAMPLES_NV"/> <enum value="0x30E2" name="EGL_DEPTH_ENCODING_NV"/> <enum value="0x30E3" name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/> <unused start="0x30E4" end="0x30E5"/> <enum value="0x30E6" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/> <enum value="0x30E7" name="EGL_SYNC_STATUS_NV"/> <enum value="0x30E8" name="EGL_SIGNALED_NV"/> <enum value="0x30E9" name="EGL_UNSIGNALED_NV"/> <enum value="0x30EA" name="EGL_ALREADY_SIGNALED_NV"/> <enum value="0x30EB" name="EGL_TIMEOUT_EXPIRED_NV"/> <enum value="0x30EC" name="EGL_CONDITION_SATISFIED_NV"/> <enum value="0x30ED" name="EGL_SYNC_TYPE_NV"/> <enum value="0x30EE" name="EGL_SYNC_CONDITION_NV"/> <enum value="0x30EF" name="EGL_SYNC_FENCE_NV"/> </enums> <enums namespace="EGL" start="0x30F0" end="0x30FF" vendor="KHR"> <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/> <enum value="0x30F1" name="EGL_SYNC_STATUS_KHR"/> <enum value="0x30F2" name="EGL_SIGNALED_KHR"/> <enum value="0x30F3" name="EGL_UNSIGNALED_KHR"/> <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED_KHR"/> <enum value="0x30F6" name="EGL_CONDITION_SATISFIED_KHR"/> <enum value="0x30F7" name="EGL_SYNC_TYPE_KHR"/> <enum value="0x30F8" name="EGL_SYNC_CONDITION_KHR"/> <enum value="0x30F9" name="EGL_SYNC_FENCE_KHR"/> <enum value="0x30FA" name="EGL_SYNC_REUSABLE_KHR"/> <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION_KHR"/> <enum value="0x30FC" name="EGL_CONTEXT_FLAGS_KHR"/> <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/> <unused start="0x30FE" end="0x30FF"/> </enums> <enums namespace="EGL" start="0x3100" end="0x310F" vendor="IMG" comment="Reserved for Ben Bowman (Khronos bug 4748)"> <enum value="0x3100" name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/> <enum value="0x3101" name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/> <enum value="0x3102" name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/> <enum value="0x3103" name="EGL_CONTEXT_PRIORITY_LOW_IMG"/> <unused start="0x3104" end="0x310F"/> </enums> <enums namespace="EGL" start="0x3110" end="0x311F" vendor="ATX" comment="Reserved for Tim Renouf, Antix (Khronos bug 4949)"> <enum value="0x3110" name="EGL_BITMAP_PIXEL_SIZE_KHR"/> <unused start="0x3111" end="0x311F"/> </enums> <enums namespace="EGL" start="0x3120" end="0x312F" vendor="AMD" comment="Reserved for David Garcia (Khronos bug 5149)"> <unused start="0x3120" end="0x312F"/> </enums> <enums namespace="EGL" start="0x3130" end="0x313F" vendor="NV" comment="Reserved for Greg Prisament (Khronos bug 5166)"> <unused start="0x3130"/> <enum value="0x3131" name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/> <enum value="0x3132" name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/> <enum value="0x3133" name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/> <enum value="0x3134" name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/> <unused start="0x3135"/> <enum value="0x3136" name="EGL_AUTO_STEREO_NV"/> <unused start="0x3137"/> <enum value="0x3138" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/> <unused start="0x3139" end="0x313C"/> <enum value="0x313D" name="EGL_BUFFER_AGE_EXT"/> <unused start="0x313E" end="0x313F"/> </enums> <enums namespace="EGL" start="0x3140" end="0x314F" vendor="Google" comment="Reserved for Mathias Agopian (Khronos bug 5199)"> <enum value="0x3140" name="EGL_NATIVE_BUFFER_ANDROID"/> <unused start="0x3141"/> <enum value="0x3142" name="EGL_RECORDABLE_ANDROID"/> <unused start="0x3143"/> <enum value="0x3144" name="EGL_SYNC_NATIVE_FENCE_ANDROID"/> <enum value="0x3145" name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/> <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/> <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/> <unused start="0x3148" end="0x314F"/> </enums> <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)"> <unused start="0x3150" end="0x315F"/> </enums> <enums namespace="EGL" start="0x3160" end="0x316F" vendor="Seaweed" comment="Reserved for Sree Sridharan (Khronos public bug 198)"> <unused start="0x3160" end="0x316F"/> </enums> <enums namespace="EGL" start="0x3170" end="0x318F" vendor="QNX" comment="Reserved for Joel Pilon (Khronos bug 5834)"> <unused start="0x3170" end="0x318F"/> </enums> <enums namespace="EGL" start="0x3190" end="0x31AF" vendor="FSL" comment="Reserved for Brian Murray, Freescale (Khronos bug 5939)"> <unused start="0x3190" end="0x31AF"/> </enums> <enums namespace="EGL" start="0x31B0" end="0x31BF" vendor="KHR" comment="Reserved for Marcus Lorentzon (Khronos bug 6437)"> <unused start="0x31B0" end="0x31BC" comment="Reserved for EGL_image_stream"/> <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/> <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_EXT"/> <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_KHR"/> <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/> <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/> </enums> <enums namespace="EGL" start="0x31C0" end="0x31CF" vendor="QCOM" comment="Reserved for Maurice Ribble (Khronos bug 6644)"> <unused start="0x31C0" end="0x31CF"/> </enums> <enums namespace="EGL" start="0x31D0" end="0x31DF" vendor="MESA" comment="Reserved for Kristian Høgsberg (Khronos bug 6757)"> <enum value="0x31D0" name="EGL_DRM_BUFFER_FORMAT_MESA"/> <enum value="0x31D1" name="EGL_DRM_BUFFER_USE_MESA"/> <enum value="0x31D2" name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/> <enum value="0x31D3" name="EGL_DRM_BUFFER_MESA"/> <enum value="0x31D4" name="EGL_DRM_BUFFER_STRIDE_MESA"/> <unused start="0x31D5" end="0x31DF"/> </enums> <enums namespace="EGL" start="0x31E0" end="0x31EF" vendor="HI" comment="Reserved for Mark Callow (Khronos bug 6799)"> <unused start="0x31E0" end="0x31EF"/> </enums> <enums namespace="EGL" start="0x31F0" end="0x31FF" vendor="KHR"> <unused start="0x31F0" end="0x31FB" comment="Placeholders for draft extensions follow"/> <!-- <enum value="0x31F0" name="EGL_IMAGE_USE_AS_OPENGL_ES1_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl1_renderbuffer"/> <enum value="0x31F1" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl1_texture_2d"/> <enum value="0x31F2" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl1_texture_external"/> <enum value="0x31F3" name="EGL_IMAGE_USE_AS_OPENGL_ES2_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl2_renderbuffer"/> <enum value="0x31F4" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl2_texture_2d"/> <enum value="0x31F5" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl2_texture_external"/> <enum value="0x31F6" name="EGL_IMAGE_USE_AS_OPENVG_IMAGE_KHR" comment="Draft KHR_image_use_vg_vgimage"/> <enum value="0x31F7" name="EGL_STREAM_CONSUMER_ATTACHMENT_MESA" comment="Draft EGL_MESA_image_stream_internal"/> <enum value="0x31F8" name="EGL_NO_FORMAT_MESA" comment="Draft EGL_MESA_image_stream_internal"/> <enum value="0x31F9" name="EGL_FORMAT_RGBA8888_MESA" comment="Draft EGL_MESA_image_stream_internal"/> <enum value="0x31FA" name="EGL_FORMAT_RGB888_MESA" comment="Draft EGL_MESA_image_stream_internal"/> <enum value="0x31FB" name="EGL_FORMAT_RGB565_MESA" comment="Draft EGL_MESA_image_stream_internal"/> --> <enum value="0x31FC" name="EGL_STREAM_FIFO_LENGTH_KHR"/> <enum value="0x31FD" name="EGL_STREAM_TIME_NOW_KHR"/> <enum value="0x31FE" name="EGL_STREAM_TIME_CONSUMER_KHR"/> <enum value="0x31FF" name="EGL_STREAM_TIME_PRODUCER_KHR"/> </enums> <enums namespace="EGL" start="0x3200" end="0x320F" vendor="ANGLE" comment="Reserved for Daniel Koch, ANGLE Project (Khronos bug 7139)"> <enum value="0x3200" name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/> <unused start="0x3201" end="0x320F"/> </enums> <enums namespace="EGL" start="0x3210" end="0x321F" vendor="KHR"> <enum value="0x3210" name="EGL_CONSUMER_LATENCY_USEC_KHR"/> <unused start="0x3211"/> <enum value="0x3212" name="EGL_PRODUCER_FRAME_KHR"/> <enum value="0x3213" name="EGL_CONSUMER_FRAME_KHR"/> <enum value="0x3214" name="EGL_STREAM_STATE_KHR"/> <enum value="0x3215" name="EGL_STREAM_STATE_CREATED_KHR"/> <enum value="0x3216" name="EGL_STREAM_STATE_CONNECTING_KHR"/> <enum value="0x3217" name="EGL_STREAM_STATE_EMPTY_KHR"/> <enum value="0x3218" name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/> <enum value="0x3219" name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/> <enum value="0x321A" name="EGL_STREAM_STATE_DISCONNECTED_KHR"/> <enum value="0x321B" name="EGL_BAD_STREAM_KHR"/> <enum value="0x321C" name="EGL_BAD_STATE_KHR"/> <enum value="0x321E" name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/> </enums> <enums namespace="EGL" start="0x3220" end="0x325F" vendor="NV" comment="Reserved for Greg Roth (Bug 8220)"> <unused start="0x3220" end="0x325F"/> </enums> <enums namespace="EGL" start="0x3260" end="0x326F" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Public bug 620)"> <unused start="0x3260" end="0x326F"/> </enums> <enums namespace="EGL" start="0x3270" end="0x328F" vendor="ARM" comment="Reserved for Tom Cooksey (Bug 9963)"> <enum value="0x3270" name="EGL_LINUX_DMA_BUF_EXT"/> <enum value="0x3271" name="EGL_LINUX_DRM_FOURCC_EXT"/> <enum value="0x3272" name="EGL_DMA_BUF_PLANE0_FD_EXT"/> <enum value="0x3273" name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/> <enum value="0x3274" name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/> <enum value="0x3275" name="EGL_DMA_BUF_PLANE1_FD_EXT"/> <enum value="0x3276" name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/> <enum value="0x3277" name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/> <enum value="0x3278" name="EGL_DMA_BUF_PLANE2_FD_EXT"/> <enum value="0x3279" name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/> <enum value="0x327A" name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/> <enum value="0x327B" name="EGL_YUV_COLOR_SPACE_HINT_EXT"/> <enum value="0x327C" name="EGL_SAMPLE_RANGE_HINT_EXT"/> <enum value="0x327D" name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/> <enum value="0x327E" name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/> <enum value="0x327F" name="EGL_ITU_REC601_EXT"/> <enum value="0x3280" name="EGL_ITU_REC709_EXT"/> <enum value="0x3281" name="EGL_ITU_REC2020_EXT"/> <enum value="0x3282" name="EGL_YUV_FULL_RANGE_EXT"/> <enum value="0x3283" name="EGL_YUV_NARROW_RANGE_EXT"/> <enum value="0x3284" name="EGL_YUV_CHROMA_SITING_0_EXT"/> <enum value="0x3285" name="EGL_YUV_CHROMA_SITING_0_5_EXT"/> <enum value="0x3286" name="EGL_DISCARD_SAMPLES_ARM"/> <unused start="0x3287" end="0x328F"/> </enums> <enums namespace="EGL" start="0x3290" end="0x329F" vendor="MESA" comment="Reserved for John Kåre Alsaker (Public bug 757)"> <unused start="0x3290" end="0x329F"/> </enums> <enums namespace="EGL" start="0x32A0" end="0x32AF" vendor="Samsung" comment="Reserved for Dongyeon Kim (Public bug 880)"> <unused start="0x32A0" end="0x32AF"/> </enums> <!-- Please remember that new enumerant allocations must be obtained by request to the Khronos API registrar (see comments at the top of this file) File requests in the Khronos Bugzilla, EGL project, Registry component. Also note that some EGL enum values are shared with other Khronos APIs, and new ranges should be allocated with such overlaps in mind. --> <!-- Reservable for future use: 0x32B0-0x3FFF. To generate a new range, allocate multiples of 16 starting at the lowest available point in this block. --> <enums namespace="EGL" start="0x32B0" end="0x3FFF" vendor="Khronos"> <unused start="0x32B0" end="0x3FFF" comment="Reserved for future use"/> </enums> <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL."> <enum value="0x8F70" name="EGL_COLOR_FORMAT_HI"/> <enum value="0x8F71" name="EGL_COLOR_RGB_HI"/> <enum value="0x8F72" name="EGL_COLOR_RGBA_HI"/> <enum value="0x8F73" name="EGL_COLOR_ARGB_HI"/> <enum value="0x8F74" name="EGL_CLIENT_PIXMAP_POINTER_HI"/> </enums> <!-- SECTION: EGL command definitions. --> <commands namespace="EGL"> <command> <proto><ptype>EGLBoolean</ptype> <name>eglBindAPI</name></proto> <param><ptype>EGLenum</ptype> <name>api</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglBindTexImage</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>buffer</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglChooseConfig</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> <param><ptype>EGLConfig</ptype> *<name>configs</name></param> <param><ptype>EGLint</ptype> <name>config_size</name></param> <param><ptype>EGLint</ptype> *<name>num_config</name></param> </command> <command> <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> <param><ptype>EGLint</ptype> <name>flags</name></param> <param><ptype>EGLTimeKHR</ptype> <name>timeout</name></param> </command> <command> <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncNV</name></proto> <param><ptype>EGLSyncNV</ptype> <name>sync</name></param> <param><ptype>EGLint</ptype> <name>flags</name></param> <param><ptype>EGLTimeNV</ptype> <name>timeout</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglCopyBuffers</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLNativePixmapType</ptype> <name>target</name></param> </command> <command> <proto><ptype>EGLContext</ptype> <name>eglCreateContext</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>EGLContext</ptype> <name>share_context</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLImageKHR</ptype> <name>eglCreateDRMImageMESA</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSyncNV</ptype> <name>eglCreateFenceSyncNV</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLenum</ptype> <name>condition</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLImageKHR</ptype> <name>eglCreateImageKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLContext</ptype> <name>ctx</name></param> <param><ptype>EGLenum</ptype> <name>target</name></param> <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferFromClientBuffer</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLenum</ptype> <name>buftype</name></param> <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferSurface</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurface</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>EGLNativePixmapType</ptype> <name>pixmap</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurfaceHI</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>struct EGLClientPixmapHI</ptype> *<name>pixmap</name></param> </command> <command> <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamFromFileDescriptorKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLNativeFileDescriptorKHR</ptype> <name>file_descriptor</name></param> </command> <command> <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreateStreamProducerSurfaceKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSyncKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLenum</ptype> <name>type</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglCreateWindowSurface</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>EGLNativeWindowType</ptype> <name>win</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroyContext</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLContext</ptype> <name>ctx</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImageKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLImageKHR</ptype> <name>image</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroyStreamKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroySurface</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncNV</name></proto> <param><ptype>EGLSyncNV</ptype> <name>sync</name></param> </command> <command> <proto><ptype>EGLint</ptype> <name>eglDupNativeFenceFDANDROID</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglExportDRMImageMESA</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLImageKHR</ptype> <name>image</name></param> <param><ptype>EGLint</ptype> *<name>name</name></param> <param><ptype>EGLint</ptype> *<name>handle</name></param> <param><ptype>EGLint</ptype> *<name>stride</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglFenceNV</name></proto> <param><ptype>EGLSyncNV</ptype> <name>sync</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigAttrib</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> <name>config</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigs</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLConfig</ptype> *<name>configs</name></param> <param><ptype>EGLint</ptype> <name>config_size</name></param> <param><ptype>EGLint</ptype> *<name>num_config</name></param> </command> <command> <proto><ptype>EGLContext</ptype> <name>eglGetCurrentContext</name></proto> </command> <command> <proto><ptype>EGLDisplay</ptype> <name>eglGetCurrentDisplay</name></proto> </command> <command> <proto><ptype>EGLSurface</ptype> <name>eglGetCurrentSurface</name></proto> <param><ptype>EGLint</ptype> <name>readdraw</name></param> </command> <command> <proto><ptype>EGLDisplay</ptype> <name>eglGetDisplay</name></proto> <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param> </command> <command> <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto> </command> <command> <proto><ptype>__eglMustCastToProperFunctionPointerType</ptype> <name>eglGetProcAddress</name></proto> <param>const char *<name>procname</name></param> </command> <command> <proto><ptype>EGLNativeFileDescriptorKHR</ptype> <name>eglGetStreamFileDescriptorKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribNV</name></proto> <param><ptype>EGLSyncNV</ptype> <name>sync</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeFrequencyNV</name></proto> </command> <command> <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeNV</name></proto> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglInitialize</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLint</ptype> *<name>major</name></param> <param><ptype>EGLint</ptype> *<name>minor</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglLockSurfaceKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>display</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglMakeCurrent</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>draw</name></param> <param><ptype>EGLSurface</ptype> <name>read</name></param> <param><ptype>EGLContext</ptype> <name>ctx</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglPostSubBufferNV</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>x</name></param> <param><ptype>EGLint</ptype> <name>y</name></param> <param><ptype>EGLint</ptype> <name>width</name></param> <param><ptype>EGLint</ptype> <name>height</name></param> </command> <command> <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryContext</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLContext</ptype> <name>ctx</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLNativeDisplayType</ptype> *<name>display_id</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativePixmapNV</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surf</name></param> <param><ptype>EGLNativePixmapType</ptype> *<name>pixmap</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeWindowNV</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surf</name></param> <param><ptype>EGLNativeWindowType</ptype> *<name>window</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> <param><ptype>EGLenum</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamTimeKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> <param><ptype>EGLenum</ptype> <name>attribute</name></param> <param><ptype>EGLTimeKHR</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamu64KHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> <param><ptype>EGLenum</ptype> <name>attribute</name></param> <param><ptype>EGLuint64KHR</ptype> *<name>value</name></param> </command> <command> <proto>const char *<name>eglQueryString</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLint</ptype> <name>name</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> *<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurfacePointerANGLE</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param>void **<name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglReleaseTexImage</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>buffer</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglReleaseThread</name></proto> </command> <command> <proto>void <name>eglSetBlobCacheFuncsANDROID</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSetBlobFuncANDROID</ptype> <name>set</name></param> <param><ptype>EGLGetBlobFuncANDROID</ptype> <name>get</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> <param><ptype>EGLenum</ptype> <name>mode</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncNV</name></proto> <param><ptype>EGLSyncNV</ptype> <name>sync</name></param> <param><ptype>EGLenum</ptype> <name>mode</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglStreamAttribKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> <param><ptype>EGLenum</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> <name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> <name>attribute</name></param> <param><ptype>EGLint</ptype> <name>value</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageEXT</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> <param><ptype>EGLint</ptype> *<name>rects</name></param> <param><ptype>EGLint</ptype> <name>n_rects</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglSwapInterval</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLint</ptype> <name>interval</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglTerminate</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglUnlockSurfaceKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>display</name></param> <param><ptype>EGLSurface</ptype> <name>surface</name></param> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglWaitGL</name></proto> </command> <command> <proto><ptype>EGLBoolean</ptype> <name>eglWaitNative</name></proto> <param><ptype>EGLint</ptype> <name>engine</name></param> </command> <command> <proto><ptype>EGLint</ptype> <name>eglWaitSyncKHR</name></proto> <param><ptype>EGLDisplay</ptype> <name>dpy</name></param> <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param> <param><ptype>EGLint</ptype> <name>flags</name></param> </command> </commands> <!-- SECTION: EGL API interface definitions. --> <feature api="egl" name="EGL_VERSION_1_0" number="1.0"> <require> <enum name="EGL_ALPHA_SIZE"/> <enum name="EGL_BAD_ACCESS"/> <enum name="EGL_BAD_ALLOC"/> <enum name="EGL_BAD_ATTRIBUTE"/> <enum name="EGL_BAD_CONFIG"/> <enum name="EGL_BAD_CONTEXT"/> <enum name="EGL_BAD_CURRENT_SURFACE"/> <enum name="EGL_BAD_DISPLAY"/> <enum name="EGL_BAD_MATCH"/> <enum name="EGL_BAD_NATIVE_PIXMAP"/> <enum name="EGL_BAD_NATIVE_WINDOW"/> <enum name="EGL_BAD_PARAMETER"/> <enum name="EGL_BAD_SURFACE"/> <enum name="EGL_BLUE_SIZE"/> <enum name="EGL_BUFFER_SIZE"/> <enum name="EGL_CONFIG_CAVEAT"/> <enum name="EGL_CONFIG_ID"/> <enum name="EGL_CORE_NATIVE_ENGINE"/> <enum name="EGL_DEPTH_SIZE"/> <enum name="EGL_DONT_CARE"/> <enum name="EGL_DRAW"/> <enum name="EGL_EXTENSIONS"/> <enum name="EGL_FALSE"/> <enum name="EGL_GREEN_SIZE"/> <enum name="EGL_HEIGHT"/> <enum name="EGL_LARGEST_PBUFFER"/> <enum name="EGL_LEVEL"/> <enum name="EGL_MAX_PBUFFER_HEIGHT"/> <enum name="EGL_MAX_PBUFFER_PIXELS"/> <enum name="EGL_MAX_PBUFFER_WIDTH"/> <enum name="EGL_NATIVE_RENDERABLE"/> <enum name="EGL_NATIVE_VISUAL_ID"/> <enum name="EGL_NATIVE_VISUAL_TYPE"/> <enum name="EGL_NONE"/> <enum name="EGL_NON_CONFORMANT_CONFIG"/> <enum name="EGL_NOT_INITIALIZED"/> <enum name="EGL_NO_CONTEXT"/> <enum name="EGL_NO_DISPLAY"/> <enum name="EGL_NO_SURFACE"/> <enum name="EGL_PBUFFER_BIT"/> <enum name="EGL_PIXMAP_BIT"/> <enum name="EGL_READ"/> <enum name="EGL_RED_SIZE"/> <enum name="EGL_SAMPLES"/> <enum name="EGL_SAMPLE_BUFFERS"/> <enum name="EGL_SLOW_CONFIG"/> <enum name="EGL_STENCIL_SIZE"/> <enum name="EGL_SUCCESS"/> <enum name="EGL_SURFACE_TYPE"/> <enum name="EGL_TRANSPARENT_BLUE_VALUE"/> <enum name="EGL_TRANSPARENT_GREEN_VALUE"/> <enum name="EGL_TRANSPARENT_RED_VALUE"/> <enum name="EGL_TRANSPARENT_RGB"/> <enum name="EGL_TRANSPARENT_TYPE"/> <enum name="EGL_TRUE"/> <enum name="EGL_VENDOR"/> <enum name="EGL_VERSION"/> <enum name="EGL_WIDTH"/> <enum name="EGL_WINDOW_BIT"/> <command name="eglChooseConfig"/> <command name="eglCopyBuffers"/> <command name="eglCreateContext"/> <command name="eglCreatePbufferSurface"/> <command name="eglCreatePixmapSurface"/> <command name="eglCreateWindowSurface"/> <command name="eglDestroyContext"/> <command name="eglDestroySurface"/> <command name="eglGetConfigAttrib"/> <command name="eglGetConfigs"/> <command name="eglGetCurrentDisplay"/> <command name="eglGetCurrentSurface"/> <command name="eglGetDisplay"/> <command name="eglGetError"/> <command name="eglGetProcAddress"/> <command name="eglInitialize"/> <command name="eglMakeCurrent"/> <command name="eglQueryContext"/> <command name="eglQueryString"/> <command name="eglQuerySurface"/> <command name="eglSwapBuffers"/> <command name="eglTerminate"/> <command name="eglWaitGL"/> <command name="eglWaitNative"/> </require> </feature> <feature api="egl" name="EGL_VERSION_1_1" number="1.1"> <require> <enum name="EGL_BACK_BUFFER"/> <enum name="EGL_BIND_TO_TEXTURE_RGB"/> <enum name="EGL_BIND_TO_TEXTURE_RGBA"/> <enum name="EGL_CONTEXT_LOST"/> <enum name="EGL_MIN_SWAP_INTERVAL"/> <enum name="EGL_MAX_SWAP_INTERVAL"/> <enum name="EGL_MIPMAP_TEXTURE"/> <enum name="EGL_MIPMAP_LEVEL"/> <enum name="EGL_NO_TEXTURE"/> <enum name="EGL_TEXTURE_2D"/> <enum name="EGL_TEXTURE_FORMAT"/> <enum name="EGL_TEXTURE_RGB"/> <enum name="EGL_TEXTURE_RGBA"/> <enum name="EGL_TEXTURE_TARGET"/> <command name="eglBindTexImage"/> <command name="eglReleaseTexImage"/> <command name="eglSurfaceAttrib"/> <command name="eglSwapInterval"/> </require> </feature> <feature api="egl" name="EGL_VERSION_1_2" number="1.2"> <require> <enum name="EGL_ALPHA_FORMAT" /> <enum name="EGL_ALPHA_FORMAT_NONPRE"/> <enum name="EGL_ALPHA_FORMAT_PRE" /> <enum name="EGL_ALPHA_MASK_SIZE"/> <enum name="EGL_BUFFER_PRESERVED"/> <enum name="EGL_BUFFER_DESTROYED"/> <enum name="EGL_CLIENT_APIS"/> <enum name="EGL_COLORSPACE"/> <enum name="EGL_COLORSPACE_sRGB" /> <enum name="EGL_COLORSPACE_LINEAR" /> <enum name="EGL_COLOR_BUFFER_TYPE"/> <enum name="EGL_CONTEXT_CLIENT_TYPE"/> <enum name="EGL_DISPLAY_SCALING"/> <enum name="EGL_HORIZONTAL_RESOLUTION"/> <enum name="EGL_LUMINANCE_BUFFER"/> <enum name="EGL_LUMINANCE_SIZE"/> <enum name="EGL_OPENGL_ES_BIT"/> <enum name="EGL_OPENVG_BIT"/> <enum name="EGL_OPENGL_ES_API"/> <enum name="EGL_OPENVG_API"/> <enum name="EGL_OPENVG_IMAGE"/> <enum name="EGL_PIXEL_ASPECT_RATIO"/> <enum name="EGL_RENDERABLE_TYPE"/> <enum name="EGL_RENDER_BUFFER"/> <enum name="EGL_RGB_BUFFER"/> <enum name="EGL_SINGLE_BUFFER"/> <enum name="EGL_SWAP_BEHAVIOR"/> <enum name="EGL_UNKNOWN"/> <enum name="EGL_VERTICAL_RESOLUTION"/> <command name="eglBindAPI"/> <command name="eglQueryAPI"/> <command name="eglCreatePbufferFromClientBuffer"/> <command name="eglReleaseThread"/> <command name="eglWaitClient"/> </require> </feature> <feature api="egl" name="EGL_VERSION_1_3" number="1.3"> <require> <enum name="EGL_CONFORMANT"/> <enum name="EGL_CONTEXT_CLIENT_VERSION"/> <enum name="EGL_MATCH_NATIVE_PIXMAP"/> <enum name="EGL_OPENGL_ES2_BIT"/> <enum name="EGL_VG_ALPHA_FORMAT"/> <enum name="EGL_VG_ALPHA_FORMAT_NONPRE"/> <enum name="EGL_VG_ALPHA_FORMAT_PRE"/> <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/> <enum name="EGL_VG_COLORSPACE"/> <enum name="EGL_VG_COLORSPACE_sRGB"/> <enum name="EGL_VG_COLORSPACE_LINEAR"/> <enum name="EGL_VG_COLORSPACE_LINEAR_BIT"/> </require> </feature> <feature api="egl" name="EGL_VERSION_1_4" number="1.4"> <require> <enum name="EGL_DEFAULT_DISPLAY"/> <enum name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/> <enum name="EGL_MULTISAMPLE_RESOLVE"/> <enum name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/> <enum name="EGL_MULTISAMPLE_RESOLVE_BOX"/> <enum name="EGL_OPENGL_API"/> <enum name="EGL_OPENGL_BIT"/> <enum name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/> <command name="eglGetCurrentContext"/> </require> </feature> <!-- SECTION: EGL extension interface definitions --> <extensions> <extension name="EGL_ANDROID_blob_cache" supported="egl"> <require> <command name="eglSetBlobCacheFuncsANDROID"/> </require> </extension> <extension name="EGL_ANDROID_framebuffer_target" supported="egl"> <require> <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/> </require> </extension> <extension name="EGL_ANDROID_image_native_buffer" supported="egl"> <require> <enum name="EGL_NATIVE_BUFFER_ANDROID"/> </require> </extension> <extension name="EGL_ANDROID_native_fence_sync" supported="egl"> <require> <enum name="EGL_SYNC_NATIVE_FENCE_ANDROID"/> <enum name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/> <enum name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/> <enum name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/> <command name="eglDupNativeFenceFDANDROID"/> </require> </extension> <extension name="EGL_ANDROID_recordable" supported="egl"> <require> <enum name="EGL_RECORDABLE_ANDROID"/> </require> </extension> <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl"> <require> <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/> </require> </extension> <extension name="EGL_ANGLE_query_surface_pointer" supported="egl"> <require> <command name="eglQuerySurfacePointerANGLE"/> </require> </extension> <extension name="EGL_ANGLE_surface_d3d_texture_2d_share_handle" supported="egl"> <require> <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/> </require> </extension> <extension name="EGL_ARM_pixmap_multisample_discard" supported="egl"> <require> <enum name="EGL_DISCARD_SAMPLES_ARM"/> </require> </extension> <extension name="EGL_EXT_buffer_age" supported="egl"> <require> <enum name="EGL_BUFFER_AGE_EXT"/> </require> </extension> <extension name="EGL_EXT_create_context_robustness" supported="egl"> <require> <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/> <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/> <enum name="EGL_NO_RESET_NOTIFICATION_EXT"/> <enum name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/> </require> </extension> <extension name="EGL_EXT_image_dma_buf_import" supported="egl"> <require> <enum name="EGL_LINUX_DMA_BUF_EXT"/> <enum name="EGL_LINUX_DRM_FOURCC_EXT"/> <enum name="EGL_DMA_BUF_PLANE0_FD_EXT"/> <enum name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/> <enum name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/> <enum name="EGL_DMA_BUF_PLANE1_FD_EXT"/> <enum name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/> <enum name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/> <enum name="EGL_DMA_BUF_PLANE2_FD_EXT"/> <enum name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/> <enum name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/> <enum name="EGL_YUV_COLOR_SPACE_HINT_EXT"/> <enum name="EGL_SAMPLE_RANGE_HINT_EXT"/> <enum name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/> <enum name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/> <enum name="EGL_ITU_REC601_EXT"/> <enum name="EGL_ITU_REC709_EXT"/> <enum name="EGL_ITU_REC2020_EXT"/> <enum name="EGL_YUV_FULL_RANGE_EXT"/> <enum name="EGL_YUV_NARROW_RANGE_EXT"/> <enum name="EGL_YUV_CHROMA_SITING_0_EXT"/> <enum name="EGL_YUV_CHROMA_SITING_0_5_EXT"/> </require> </extension> <extension name="EGL_EXT_multiview_window" supported="egl"> <require> <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/> </require> </extension> <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl"> <require> <command name="eglSwapBuffersWithDamageEXT"/> </require> </extension> <extension name="EGL_HI_clientpixmap" supported="egl"> <require> <enum name="EGL_CLIENT_PIXMAP_POINTER_HI"/> <command name="eglCreatePixmapSurfaceHI"/> </require> </extension> <extension name="EGL_HI_colorformats" supported="egl"> <require> <enum name="EGL_COLOR_FORMAT_HI"/> <enum name="EGL_COLOR_RGB_HI"/> <enum name="EGL_COLOR_RGBA_HI"/> <enum name="EGL_COLOR_ARGB_HI"/> </require> </extension> <extension name="EGL_IMG_context_priority" supported="egl"> <require> <enum name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/> <enum name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/> <enum name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/> <enum name="EGL_CONTEXT_PRIORITY_LOW_IMG"/> </require> </extension> <extension name="EGL_KHR_config_attribs" supported="egl"> <require> <enum name="EGL_CONFORMANT_KHR"/> <enum name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/> <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/> </require> </extension> <extension name="EGL_KHR_create_context" supported="egl"> <require> <enum name="EGL_CONTEXT_MAJOR_VERSION_KHR"/> <enum name="EGL_CONTEXT_MINOR_VERSION_KHR"/> <enum name="EGL_CONTEXT_FLAGS_KHR"/> <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/> <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/> <enum name="EGL_NO_RESET_NOTIFICATION_KHR"/> <enum name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/> <enum name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/> <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/> <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/> <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/> <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/> <enum name="EGL_OPENGL_ES3_BIT_KHR"/> </require> </extension> <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl"> <require> <!-- @ Most interfaces defined by EGL_KHR_reusable sync --> <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/> <enum name="EGL_SYNC_CONDITION_KHR"/> <enum name="EGL_SYNC_FENCE_KHR"/> </require> </extension> <extension name="EGL_KHR_gl_renderbuffer_image" supported="egl"> <require> <enum name="EGL_GL_RENDERBUFFER_KHR"/> </require> </extension> <extension name="EGL_KHR_gl_texture_2D_image" supported="egl"> <require> <enum name="EGL_GL_TEXTURE_2D_KHR"/> <enum name="EGL_GL_TEXTURE_LEVEL_KHR"/> </require> </extension> <extension name="EGL_KHR_gl_texture_3D_image" supported="egl"> <require> <enum name="EGL_GL_TEXTURE_3D_KHR"/> <enum name="EGL_GL_TEXTURE_ZOFFSET_KHR"/> </require> </extension> <extension name="EGL_KHR_gl_texture_cubemap_image" supported="egl"> <require> <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/> <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/> <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/> <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/> <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/> <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/> </require> </extension> <extension name="EGL_KHR_image" supported="egl"> <require> <enum name="EGL_NATIVE_PIXMAP_KHR"/> <enum name="EGL_NO_IMAGE_KHR"/> <command name="eglCreateImageKHR"/> <command name="eglDestroyImageKHR"/> </require> </extension> <extension name="EGL_KHR_image_base" supported="egl"> <require> <!-- @ Most interfaces defined by EGL_KHR_image above --> <enum name="EGL_IMAGE_PRESERVED_KHR"/> </require> </extension> <extension name="EGL_KHR_image_pixmap" supported="egl"> <require> <!-- @ Most interfaces defined by EGL_KHR_image above --> </require> </extension> <extension name="EGL_KHR_lock_surface" supported="egl"> <require> <enum name="EGL_READ_SURFACE_BIT_KHR"/> <enum name="EGL_WRITE_SURFACE_BIT_KHR"/> <enum name="EGL_LOCK_SURFACE_BIT_KHR"/> <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/> <enum name="EGL_MATCH_FORMAT_KHR"/> <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/> <enum name="EGL_FORMAT_RGB_565_KHR"/> <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/> <enum name="EGL_FORMAT_RGBA_8888_KHR"/> <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/> <enum name="EGL_LOCK_USAGE_HINT_KHR"/> <enum name="EGL_BITMAP_POINTER_KHR"/> <enum name="EGL_BITMAP_PITCH_KHR"/> <enum name="EGL_BITMAP_ORIGIN_KHR"/> <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/> <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/> <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/> <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/> <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/> <enum name="EGL_LOWER_LEFT_KHR"/> <enum name="EGL_UPPER_LEFT_KHR"/> <command name="eglLockSurfaceKHR"/> <command name="eglUnlockSurfaceKHR"/> </require> </extension> <extension name="EGL_KHR_lock_surface2" supported="egl"> <require> <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/> </require> </extension> <extension name="EGL_KHR_reusable_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl"> <require> <enum name="EGL_SYNC_STATUS_KHR"/> <enum name="EGL_SIGNALED_KHR"/> <enum name="EGL_UNSIGNALED_KHR"/> <enum name="EGL_TIMEOUT_EXPIRED_KHR"/> <enum name="EGL_CONDITION_SATISFIED_KHR"/> <enum name="EGL_SYNC_TYPE_KHR"/> <enum name="EGL_SYNC_REUSABLE_KHR"/> <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/> <enum name="EGL_FOREVER_KHR"/> <enum name="EGL_NO_SYNC_KHR"/> <command name="eglCreateSyncKHR"/> <command name="eglDestroySyncKHR"/> <command name="eglClientWaitSyncKHR"/> <command name="eglSignalSyncKHR"/> <command name="eglGetSyncAttribKHR"/> </require> </extension> <extension name="EGL_KHR_stream" protect="KHRONOS_SUPPORT_INT64" supported="egl"> <require> <enum name="EGL_NO_STREAM_KHR"/> <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/> <enum name="EGL_PRODUCER_FRAME_KHR"/> <enum name="EGL_CONSUMER_FRAME_KHR"/> <enum name="EGL_STREAM_STATE_KHR"/> <enum name="EGL_STREAM_STATE_CREATED_KHR"/> <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/> <enum name="EGL_STREAM_STATE_EMPTY_KHR"/> <enum name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/> <enum name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/> <enum name="EGL_STREAM_STATE_DISCONNECTED_KHR"/> <enum name="EGL_BAD_STREAM_KHR"/> <enum name="EGL_BAD_STATE_KHR"/> <command name="eglCreateStreamKHR"/> <command name="eglDestroyStreamKHR"/> <command name="eglStreamAttribKHR"/> <command name="eglQueryStreamKHR"/> <command name="eglQueryStreamu64KHR"/> </require> </extension> <extension name="EGL_KHR_stream_consumer_gltexture" protect="EGL_KHR_stream" supported="egl"> <require> <enum name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/> <command name="eglStreamConsumerGLTextureExternalKHR"/> <command name="eglStreamConsumerAcquireKHR"/> <command name="eglStreamConsumerReleaseKHR"/> </require> </extension> <extension name="EGL_KHR_stream_cross_process_fd" protect="EGL_KHR_stream" supported="egl"> <require> <enum name="EGL_NO_FILE_DESCRIPTOR_KHR"/> <command name="eglGetStreamFileDescriptorKHR"/> <command name="eglCreateStreamFromFileDescriptorKHR"/> </require> </extension> <extension name="EGL_KHR_stream_fifo" protect="EGL_KHR_stream" supported="egl"> <require> <enum name="EGL_STREAM_FIFO_LENGTH_KHR"/> <enum name="EGL_STREAM_TIME_NOW_KHR"/> <enum name="EGL_STREAM_TIME_CONSUMER_KHR"/> <enum name="EGL_STREAM_TIME_PRODUCER_KHR"/> <command name="eglQueryStreamTimeKHR"/> </require> </extension> <extension name="EGL_KHR_stream_producer_aldatalocator" protect="EGL_KHR_stream" supported="egl"> <require> </require> </extension> <extension name="EGL_KHR_stream_producer_eglsurface" protect="EGL_KHR_stream" supported="egl"> <require> <enum name="EGL_STREAM_BIT_KHR"/> <command name="eglCreateStreamProducerSurfaceKHR"/> </require> </extension> <extension name="EGL_KHR_surfaceless_context" supported="egl"> <require> <!-- No tokens/entry points, just relaxes an error condition --> </require> </extension> <extension name="EGL_KHR_vg_parent_image" supported="egl"> <require> <enum name="EGL_VG_PARENT_IMAGE_KHR"/> </require> </extension> <extension name="EGL_KHR_wait_sync" supported="egl"> <require> <command name="eglWaitSyncKHR"/> </require> </extension> <extension name="EGL_MESA_drm_image" supported="egl"> <require> <enum name="EGL_DRM_BUFFER_FORMAT_MESA"/> <enum name="EGL_DRM_BUFFER_USE_MESA"/> <enum name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/> <enum name="EGL_DRM_BUFFER_MESA"/> <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/> <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/> <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/> <command name="eglCreateDRMImageMESA"/> <command name="eglExportDRMImageMESA"/> </require> </extension> <extension name="EGL_NV_3dvision_surface" supported="egl"> <require> <enum name="EGL_AUTO_STEREO_NV"/> </require> </extension> <extension name="EGL_NV_coverage_sample" supported="egl"> <require> <enum name="EGL_COVERAGE_BUFFERS_NV"/> <enum name="EGL_COVERAGE_SAMPLES_NV"/> </require> </extension> <extension name="EGL_NV_coverage_sample_resolve" supported="egl"> <require> <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/> <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/> <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/> </require> </extension> <extension name="EGL_NV_depth_nonlinear" supported="egl"> <require> <enum name="EGL_DEPTH_ENCODING_NV"/> <enum name="EGL_DEPTH_ENCODING_NONE_NV"/> <enum name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/> </require> </extension> <extension name="EGL_NV_native_query" supported="egl"> <require> <command name="eglQueryNativeDisplayNV"/> <command name="eglQueryNativeWindowNV"/> <command name="eglQueryNativePixmapNV"/> </require> </extension> <extension name="EGL_NV_post_convert_rounding" supported="egl"> <require> </require> </extension> <extension name="EGL_NV_post_sub_buffer" supported="egl"> <require> <enum name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/> <command name="eglPostSubBufferNV"/> </require> </extension> <extension name="EGL_NV_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl"> <require> <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/> <enum name="EGL_SYNC_STATUS_NV"/> <enum name="EGL_SIGNALED_NV"/> <enum name="EGL_UNSIGNALED_NV"/> <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/> <enum name="EGL_FOREVER_NV"/> <enum name="EGL_ALREADY_SIGNALED_NV"/> <enum name="EGL_TIMEOUT_EXPIRED_NV"/> <enum name="EGL_CONDITION_SATISFIED_NV"/> <enum name="EGL_SYNC_TYPE_NV"/> <enum name="EGL_SYNC_CONDITION_NV"/> <enum name="EGL_SYNC_FENCE_NV"/> <enum name="EGL_NO_SYNC_NV"/> <command name="eglCreateFenceSyncNV"/> <command name="eglDestroySyncNV"/> <command name="eglFenceNV"/> <command name="eglClientWaitSyncNV"/> <command name="eglSignalSyncNV"/> <command name="eglGetSyncAttribNV"/> </require> </extension> <extension name="EGL_NV_system_time" protect="KHRONOS_SUPPORT_INT64" supported="egl"> <require> <command name="eglGetSystemTimeFrequencyNV"/> <command name="eglGetSystemTimeNV"/> </require> </extension> </extensions> </registry> |
Added jni/glshim/spec/xml/gles-2.0.xml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 | <?xml version="1.0" encoding="UTF-8"?> <!-- Source: https://raw.github.com/laanwj/etna_viv/master/tools/data/gles2.xml --> <!-- Copyright (c) 2012-2013 Wladimir J. van der Laan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> <!-- List of OpenGL ES 2.0 functions with parameters. GLES2 specification in machine-parseable format for state probing. --> <root> <!-- format roughly based on rnndb --> <!-- should be extendable by extensions (later work) values are not important here and would only cause clutter, as the values of state bits depend on the hw, also the same tokens can (and should) be part of multiple enumerations without any harm, they could be mapped with another map (tokens.xml) if important, ie to build hash tables --> <enum name="Boolean"> <value name="FALSE"/> <value name="TRUE"/> </enum> <bitset name="ClearBufferMask"> <bitfield name="DEPTH_BUFFER_BIT"/> <bitfield name="STENCIL_BUFFER_BIT"/> <bitfield name="COLOR_BUFFER_BIT"/> </bitset> <enum name="BeginMode"> <!-- primitive type --> <value name="POINTS"/> <value name="LINES"/> <value name="LINE_LOOP"/> <value name="LINE_STRIP"/> <value name="TRIANGLES"/> <value name="TRIANGLE_STRIP"/> <value name="TRIANGLE_FAN"/> <!-- XXX QUADS also supported by Vivante blob, not in GLES2 --> </enum> <enum name="BlendingFactorDest"> <value name="ZERO"/> <value name="ONE"/> <value name="SRC_COLOR"/> <value name="ONE_MINUS_SRC_COLOR"/> <value name="DST_COLOR"/> <value name="ONE_MINUS_DST_COLOR"/> <value name="SRC_ALPHA"/> <value name="ONE_MINUS_SRC_ALPHA"/> <value name="DST_ALPHA"/> <value name="ONE_MINUS_DST_ALPHA"/> <value name="CONSTANT_COLOR"/> <value name="ONE_MINUS_CONSTANT_COLOR"/> <value name="CONSTANT_ALPHA"/> <value name="ONE_MINUS_CONSTANT_ALPHA"/> </enum> <enum name="BlendingFactorSrc"> <value name="ZERO"/> <value name="ONE"/> <value name="SRC_COLOR"/> <value name="ONE_MINUS_SRC_COLOR"/> <value name="DST_COLOR"/> <value name="ONE_MINUS_DST_COLOR"/> <value name="SRC_ALPHA"/> <value name="ONE_MINUS_SRC_ALPHA"/> <value name="DST_ALPHA"/> <value name="ONE_MINUS_DST_ALPHA"/> <value name="CONSTANT_COLOR"/> <value name="ONE_MINUS_CONSTANT_COLOR"/> <value name="CONSTANT_ALPHA"/> <value name="ONE_MINUS_CONSTANT_ALPHA"/> <value name="SRC_ALPHA_SATURATE"/> </enum> <enum name="BlendEquation"> <value name="FUNC_ADD"/> <value name="FUNC_SUBTRACT"/> <value name="FUNC_REVERSE_SUBTRACT"/> <!-- MIN --> <!-- MAX --> </enum> <enum name="CullFaceMode"> <!-- Used by CullFace and XXXSeparate to specify face --> <value name="FRONT"/> <value name="BACK"/> <value name="FRONT_AND_BACK"/> </enum> <enum name="EnableCap"> <!-- Enable/Disable/IsEnabled --> <value name="BLEND"/> <value name="CULL_FACE"/> <value name="DEPTH_TEST"/> <value name="DITHER"/> <value name="POLYGON_OFFSET_FILL"/> <value name="SAMPLE_ALPHA_TO_COVERAGE"/> <value name="SAMPLE_COVERAGE"/> <value name="SCISSOR_TEST"/> <value name="STENCIL_TEST"/> </enum> <enum name="DepthFunction"> <value name="NEVER"/> <value name="LESS"/> <value name="EQUAL"/> <value name="LEQUAL"/> <value name="GREATER"/> <value name="NOTEQUAL"/> <value name="GEQUAL"/> <value name="ALWAYS"/> </enum> <enum name="ErrorCode"> <value name="NO_ERROR"/> <value name="INVALID_ENUM"/> <value name="INVALID_VALUE"/> <value name="INVALID_OPERATION"/> <value name="INVALID_FRAMEBUFFER_OPERATION"/> <value name="OUT_OF_MEMORY"/> </enum> <enum name="FrontFaceDirection"> <value name="CW"/> <value name="CCW"/> </enum> <enum name="HintMode"> <value name="DONT_CARE"/> <value name="FASTEST"/> <value name="NICEST"/> </enum> <enum name="HintTarget"> <value name="GENERATE_MIPMAP_HINT"/> </enum> <enum name="DataType"> <value name="BYTE"/> <value name="UNSIGNED_BYTE"/> <value name="SHORT"/> <value name="UNSIGNED_SHORT"/> <value name="INT"/> <value name="UNSIGNED_INT"/> <value name="FLOAT"/> <value name="FIXED"/> </enum> <enum name="PixelFormat"> <!-- XXX split up? used by various functions; ReadPixels only accepts ALPHA, RGB, RGBA TexImage2D only accepts ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA See also TextureInternalFormat --> <value name="DEPTH_COMPONENT"/> <value name="ALPHA"/> <value name="RGB"/> <value name="RGBA"/> <value name="LUMINANCE"/> <value name="LUMINANCE_ALPHA"/> </enum> <enum name="PixelType"> <value name="UNSIGNED_BYTE"/> <value name="UNSIGNED_SHORT_4_4_4_4"/> <value name="UNSIGNED_SHORT_5_5_5_1"/> <value name="UNSIGNED_SHORT_5_6_5"/> </enum> <enum name="StencilFunction"> <value name="NEVER"/> <value name="LESS"/> <value name="EQUAL"/> <value name="LEQUAL"/> <value name="GREATER"/> <value name="NOTEQUAL"/> <value name="GEQUAL"/> <value name="ALWAYS"/> </enum> <enum name="StencilOp"> <value name="ZERO"/> <value name="KEEP"/> <value name="REPLACE"/> <value name="INCR"/> <value name="DECR"/> <value name="INVERT"/> <value name="INCR_WRAP"/> <value name="DECR_WRAP"/> </enum> <enum name="StringName"> <value name="VENDOR"/> <value name="RENDERER"/> <value name="VERSION"/> <value name="SHADING_LANGUAGE_VERSION"/> <value name="EXTENSIONS"/> </enum> <enum name="TextureMagFilter"> <value name="NEAREST"/> <value name="LINEAR"/> </enum> <enum name="TextureMinFilter"> <value name="NEAREST"/> <value name="LINEAR"/> <value name="NEAREST_MIPMAP_NEAREST"/> <value name="LINEAR_MIPMAP_NEAREST"/> <value name="NEAREST_MIPMAP_LINEAR"/> <value name="LINEAR_MIPMAP_LINEAR"/> </enum> <enum name="TextureParameterName"> <value name="TEXTURE_MAG_FILTER"/> <value name="TEXTURE_MIN_FILTER"/> <value name="TEXTURE_WRAP_S"/> <value name="TEXTURE_WRAP_T"/> </enum> <enum name="TextureTarget"> <!-- general texture target --> <value name="TEXTURE_2D"/> <value name="TEXTURE_CUBE_MAP"/> </enum> <enum name="TextureTargetFace"> <!-- used when a specific face is to be specified, ie when uploading or binding framebuffer texture --> <value name="TEXTURE_2D"/> <value name="TEXTURE_CUBE_MAP_POSITIVE_X"/> <value name="TEXTURE_CUBE_MAP_NEGATIVE_X"/> <value name="TEXTURE_CUBE_MAP_POSITIVE_Y"/> <value name="TEXTURE_CUBE_MAP_NEGATIVE_Y"/> <value name="TEXTURE_CUBE_MAP_POSITIVE_Z"/> <value name="TEXTURE_CUBE_MAP_NEGATIVE_Z"/> </enum> <enum name="TextureUnit"> <value name="TEXTURE0"/> <value name="TEXTURE1"/> <value name="TEXTURE2"/> <value name="TEXTURE3"/> <value name="TEXTURE4"/> <value name="TEXTURE5"/> <value name="TEXTURE6"/> <value name="TEXTURE7"/> <value name="TEXTURE8"/> <value name="TEXTURE9"/> <value name="TEXTURE10"/> <value name="TEXTURE11"/> <value name="TEXTURE12"/> <value name="TEXTURE13"/> <value name="TEXTURE14"/> <value name="TEXTURE15"/> <value name="TEXTURE16"/> <value name="TEXTURE17"/> <value name="TEXTURE18"/> <value name="TEXTURE19"/> <value name="TEXTURE20"/> <value name="TEXTURE21"/> <value name="TEXTURE22"/> <value name="TEXTURE23"/> <value name="TEXTURE24"/> <value name="TEXTURE25"/> <value name="TEXTURE26"/> <value name="TEXTURE27"/> <value name="TEXTURE28"/> <value name="TEXTURE29"/> <value name="TEXTURE30"/> <value name="TEXTURE31"/> </enum> <enum name="TextureWrapMode"> <value name="REPEAT"/> <value name="CLAMP_TO_EDGE"/> <value name="MIRRORED_REPEAT"/> </enum> <enum name="TextureInternalFormat"> <!-- (Copy)TexImage2D --> <value name="ALPHA"/> <value name="LUMINANCE"/> <value name="LUMINANCE_ALPHA"/> <value name="RGB"/> <value name="RGBA"/> </enum> <enum name="RenderbufferInternalFormat"> <!-- RenderbufferStorage / GetRenderbufferParameter --> <value name="RGBA4"/> <value name="RGB565"/> <value name="RGB5_A1"/> <value name="DEPTH_COMPONENT16"/> <value name="STENCIL_INDEX8"/> </enum> <enum name="UniformType"> <!-- GetActiveAttrib/GetActiveUniform --> <value name="FLOAT"/> <value name="FLOAT_VEC2"/> <value name="FLOAT_VEC3"/> <value name="FLOAT_VEC4"/> <value name="INT"/> <value name="INT_VEC2"/> <value name="INT_VEC3"/> <value name="INT_VEC4"/> <value name="BOOL"/> <value name="BOOL_VEC2"/> <value name="BOOL_VEC3"/> <value name="BOOL_VEC4"/> <value name="FLOAT_MAT2"/> <value name="FLOAT_MAT3"/> <value name="FLOAT_MAT4"/> <value name="SAMPLER_2D"/> <value name="SAMPLER_CUBE"/> </enum> <enum name="FramebufferAttachment"> <value name="COLOR_ATTACHMENT0"/> <value name="DEPTH_ATTACHMENT"/> <value name="STENCIL_ATTACHMENT"/> </enum> <enum name="FramebufferStatus"> <!-- as returned by CheckFramebufferStatus --> <value name="FRAMEBUFFER_COMPLETE"/> <value name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/> <value name="FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/> <value name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/> <value name="FRAMEBUFFER_UNSUPPORTED"/> </enum> <enum name="FramebufferTarget"> <value name="FRAMEBUFFER"/> </enum> <enum name="RenderbufferTarget"> <value name="RENDERBUFFER"/> </enum> <enum name="GetVertexAttribParameterPName"> <value name="VERTEX_ATTRIB_ARRAY_ENABLED"/> <value name="VERTEX_ATTRIB_ARRAY_SIZE"/> <value name="VERTEX_ATTRIB_ARRAY_STRIDE"/> <value name="VERTEX_ATTRIB_ARRAY_TYPE"/> <value name="VERTEX_ATTRIB_ARRAY_NORMALIZED"/> <value name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/> <value name="CURRENT_VERTEX_ATTRIB"/> </enum> <enum name="GetBufferParameterPName"> <value name="BUFFER_SIZE"/> <value name="BUFFER_USAGE"/> </enum> <enum name="BufferTarget"> <value name="ARRAY_BUFFER"/> <value name="ELEMENT_ARRAY_BUFFER"/> </enum> <enum name="BufferUsage"> <value name="STREAM_DRAW"/> <value name="STATIC_DRAW"/> <value name="DYNAMIC_DRAW"/> </enum> <enum name="ShaderType"> <value name="VERTEX_SHADER"/> <value name="FRAGMENT_SHADER"/> </enum> <enum name="PrecisionType"> <!-- GetShaderPrecisionFormat --> <value name="LOW_FLOAT"/> <value name="MEDIUM_FLOAT"/> <value name="HIGH_FLOAT"/> <value name="LOW_INT"/> <value name="MEDIUM_INT"/> <value name="HIGH_INT"/> </enum> <enum name="IndexType"> <!-- glDrawElephants type --> <value name="UNSIGNED_SHORT" brief="16 bit indices"/> <value name="UNSIGNED_BYTE" brief="32 bit indices"/> </enum> <enum name="GetPName"> <value name="ACTIVE_TEXTURE"/> <value name="ALIASED_LINE_WIDTH_RANGE"/> <value name="ALIASED_POINT_SIZE_RANGE"/> <value name="ALPHA_BITS"/> <value name="ARRAY_BUFFER_BINDING"/> <value name="BLEND"/> <value name="BLEND_COLOR"/> <value name="BLEND_DST_ALPHA"/> <value name="BLEND_DST_RGB"/> <value name="BLEND_EQUATION_ALPHA"/> <value name="BLEND_EQUATION_RGB"/> <value name="BLEND_SRC_ALPHA"/> <value name="BLEND_SRC_RGB"/> <value name="BLUE_BITS"/> <value name="COLOR_CLEAR_VALUE"/> <value name="COLOR_WRITEMASK"/> <value name="COMPRESSED_TEXTURE_FORMATS"/> <value name="CULL_FACE"/> <value name="CULL_FACE_MODE"/> <value name="CURRENT_PROGRAM"/> <value name="DEPTH_BITS"/> <value name="DEPTH_CLEAR_VALUE"/> <value name="DEPTH_FUNC"/> <value name="DEPTH_RANGE"/> <value name="DEPTH_TEST"/> <value name="DEPTH_WRITEMASK"/> <value name="DITHER"/> <value name="ELEMENT_ARRAY_BUFFER_BINDING"/> <value name="FRAMEBUFFER_BINDING"/> <value name="FRONT_FACE"/> <value name="GENERATE_MIPMAP_HINT"/> <value name="GREEN_BITS"/> <value name="IMPLEMENTATION_COLOR_READ_FORMAT"/> <value name="IMPLEMENTATION_COLOR_READ_TYPE"/> <value name="LINE_WIDTH"/> <value name="MAX_COMBINED_TEXTURE_IMAGE_UNITS"/> <value name="MAX_CUBE_MAP_TEXTURE_SIZE"/> <value name="MAX_FRAGMENT_UNIFORM_VECTORS"/> <value name="MAX_RENDERBUFFER_SIZE"/> <value name="MAX_TEXTURE_IMAGE_UNITS"/> <value name="MAX_TEXTURE_SIZE"/> <value name="MAX_VARYING_VECTORS"/> <value name="MAX_VERTEX_ATTRIBS"/> <value name="MAX_VERTEX_TEXTURE_IMAGE_UNITS"/> <value name="MAX_VERTEX_UNIFORM_VECTORS"/> <value name="MAX_VIEWPORT_DIMS"/> <value name="NUM_COMPRESSED_TEXTURE_FORMATS"/> <value name="NUM_SHADER_BINARY_FORMATS"/> <value name="PACK_ALIGNMENT"/> <value name="POLYGON_OFFSET_FACTOR"/> <value name="POLYGON_OFFSET_FILL"/> <value name="POLYGON_OFFSET_UNITS"/> <value name="RED_BITS"/> <value name="RENDERBUFFER_BINDING"/> <value name="SAMPLE_TO_ALPHA_COVERAGE"/> <value name="SAMPLE_BUFFERS"/> <value name="SAMPLE_COVERAGE"/> <value name="SAMPLE_COVERAGE_INVERT"/> <value name="SAMPLE_COVERAGE_VALUE"/> <value name="SAMPLES"/> <value name="SCISSOR_BOX"/> <value name="SCISSOR_TEST"/> <value name="SHADER_BINARY_FORMATS"/> <value name="SHADER_COMPILER"/> <value name="STENCIL_BACK_FAIL"/> <value name="STENCIL_BACK_FUNC"/> <value name="STENCIL_BACK_PASS_DEPTH_FAIL"/> <value name="STENCIL_BACK_PASS_DEPTH_PASS"/> <value name="STENCIL_BACK_REF"/> <value name="STENCIL_BACK_VALUE_MASK"/> <value name="STENCIL_BACK_WRITEMASK"/> <value name="STENCIL_BITS"/> <value name="STENCIL_CLEAR_VALUE"/> <value name="STENCIL_FAIL"/> <value name="STENCIL_FUNC"/> <value name="STENCIL_PASS_DEPTH_FAIL"/> <value name="STENCIL_PASS_DEPTH_PASS"/> <value name="STENCIL_REF"/> <value name="STENCIL_TEST"/> <value name="STENCIL_VALUE_MASK"/> <value name="STENCIL_WRITEMASK"/> <value name="SUBPIXEL_BITS"/> <value name="TEXTURE_BINDING_2D"/> <value name="TEXTURE_BINDING_CUBE_MAP"/> <value name="UNPACK_ALIGNMENT"/> <value name="VIEWPORT"/> </enum> <enum name="FramebufferAttachmentParameter"> <value name="ATTACHMENT_OBJECT_TYPE"/> <value name="ATTACHMENT_OBJECT_NAME"/> <value name="ATTACHMENT_TEXTURE_LEVEL"/> <value name="ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/> </enum> <enum name="FramebufferAttachmentObjectType"> <!-- returned by GetFrameBufferAttachmentParameteriv --> <value name="RENDERBUFFER"/> <value name="TEXTURE"/> <value name="NONE"/> </enum> <enum name="GetProgramPName"> <value name="DELETE_STATUS"/> <value name="LINK_STATUS"/> <value name="VALIDATE_STATUS"/> <value name="INFO_LOG_LENGTH"/> <value name="ATTACHED_SHADERS"/> <value name="ACTIVE_ATTRIBUTES"/> <value name="ACTIVE_ATTRIBUTE_MAX_LENGTH"/> <value name="ACTIVE_UNIFORMS"/> <value name="ACTIVE_UNIFORM_MAX_LENGTH"/> </enum> <enum name="GetRenderbufferParameterPName"> <value name="RENDERBUFFER_WIDTH"/> <value name="RENDERBUFFER_HEIGHT"/> <value name="RENDERBUFFER_INTERNAL_FORMAT"/> <value name="RENDERBUFFER_RED_SIZE"/> <value name="RENDERBUFFER_GREEN_SIZE"/> <value name="RENDERBUFFER_BLUE_SIZE"/> <value name="RENDERBUFFER_ALPHA_SIZE"/> <value name="RENDERBUFFER_DEPTH_SIZE"/> <value name="RENDERBUFFER_STENCIL_SIZE"/> </enum> <enum name="GetVertexAttribPointerPName"> <value name="VERTEX_ATTRIB_ARRAY_POINTER"/> </enum> <enum name="PixelStorePName"> <value name="PACK_ALIGNMENT"/> <value name="UNPACK_ALIGNMENT"/> </enum> <enum name="ShaderBinaryFormat"> <!-- None by default, provided by extensions --> </enum> <enum name="CompressedTextureFormat"> <!-- None by default, provided by extensions --> </enum> <enum name="VertexAttribType"> <!-- subset of DataType --> <!-- VertexAttribPointer only needs BYTE, UNSIGNED_BYTE, SHORT, UNSIGNED_SHORT, FIXED, FLOAT What about (UNSIGNED_)INT? Are these part of an extension? --> <value name="BYTE"/> <value name="UNSIGNED_BYTE"/> <value name="SHORT"/> <value name="UNSIGNED_SHORT"/> <!-- <value name="INT"/> --> <!-- <value name="UNSIGNED_INT"/> --> <value name="FLOAT"/> <value name="FIXED"/> </enum> <enum name="GetFramebufferAttachmentParameterPName"> <value name="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/> <value name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/> <value name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/> <value name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/> </enum> <enum name="GetShaderPName"> <value name="SHADER_TYPE"/> <value name="DELETE_STATUS"/> <value name="COMPILE_STATUS"/> <value name="INFO_LOG_LENGTH"/> <value name="SHADER_SOURCE_LENGTH"/> </enum> <functions> <!-- based on mesa/src/mapi/glapi/gen/*.xml --> <function name="glActiveTexture"> <param name="texture" type="GLenum" enum="TextureUnit"/> </function> <function name="glAttachShader"> <param name="program" type="GLuint"/> <param name="shader" type="GLuint"/> </function> <function name="glBindAttribLocation"> <param name="program" type="GLuint"/> <param name="index" type="GLuint"/> <param name="name" type="const GLchar *"/> </function> <function name="glBindBuffer"> <param name="target" type="GLenum" enum="BufferTarget"/> <param name="buffer" type="GLuint"/> </function> <function name="glBindFramebuffer"> <param name="target" type="GLenum" enum="FramebufferTarget"/> <param name="framebuffer" type="GLuint"/> </function> <function name="glBindRenderbuffer"> <param name="target" type="GLenum" enum="RenderbufferTarget"/> <param name="renderbuffer" type="GLuint"/> </function> <function name="glBindTexture"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="texture" type="GLuint"/> </function> <function name="glBlendColor"> <param name="red" type="GLclampf"/> <param name="green" type="GLclampf"/> <param name="blue" type="GLclampf"/> <param name="alpha" type="GLclampf"/> </function> <function name="glBlendEquation"> <param name="mode" type="GLenum" enum="BlendEquation"/> </function> <function name="glBlendEquationSeparate"> <param name="modeRGB" type="GLenum" enum="BlendEquation"/> <param name="modeA" type="GLenum" enum="BlendEquation"/> </function> <function name="glBlendFunc"> <param name="sfactor" type="GLenum" enum="BlendingFactorSrc"/> <param name="dfactor" type="GLenum" enum="BlendingFactorDest"/> </function> <function name="glBlendFuncSeparate"> <param name="sfactorRGB" type="GLenum" enum="BlendingFactorSrc"/> <param name="dfactorRGB" type="GLenum" enum="BlendingFactorDest"/> <param name="sfactorAlpha" type="GLenum" enum="BlendingFactorSrc"/> <param name="dfactorAlpha" type="GLenum" enum="BlendingFactorDest"/> </function> <function name="glBufferData"> <param name="target" type="GLenum" enum="BufferTarget"/> <param name="size" type="GLsizeiptr" counter="true"/> <param name="data" type="const GLvoid *" count="size" img_null_flag="true"/> <param name="usage" type="GLenum" enum="BufferUsage"/> </function> <function name="glBufferSubData"> <param name="target" type="GLenum" enum="BufferTarget"/> <param name="offset" type="GLintptr"/> <param name="size" type="GLsizeiptr" counter="true"/> <param name="data" type="const GLvoid *" count="size"/> </function> <function name="glCheckFramebufferStatus"> <param name="target" type="GLenum" enum="FramebufferTarget"/> <return type="GLenum" enum="FramebufferStatus"/> </function> <function name="glClear"> <param name="mask" type="GLbitfield" bitfield="ClearBufferMask"/> </function> <function name="glClearColor"> <param name="red" type="GLclampf"/> <param name="green" type="GLclampf"/> <param name="blue" type="GLclampf"/> <param name="alpha" type="GLclampf"/> </function> <function name="glClearDepthf"> <param name="depth" type="GLclampf"/> </function> <function name="glClearStencil"> <param name="s" type="GLint"/> </function> <function name="glColorMask"> <param name="red" type="GLboolean"/> <param name="green" type="GLboolean"/> <param name="blue" type="GLboolean"/> <param name="alpha" type="GLboolean"/> </function> <function name="glCompileShader"> <param name="shader" type="GLuint"/> </function> <function name="glCompressedTexImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLenum" enum="CompressedTextureFormat"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="border" type="GLint"/> <param name="imageSize" type="GLsizei" counter="true"/> <param name="data" type="const GLvoid *" count="imageSize"/> </function> <function name="glCompressedTexSubImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="xoffset" type="GLint"/> <param name="yoffset" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="format" type="GLenum" enum="CompressedTextureFormat"/> <param name="imageSize" type="GLsizei" counter="true"/> <param name="data" type="const GLvoid *" count="imageSize"/> </function> <function name="glCopyTexImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLenum" enum="TextureInternalFormat"/> <param name="x" type="GLint"/> <param name="y" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="border" type="GLint"/> </function> <function name="glCopyTexSubImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="xoffset" type="GLint"/> <param name="yoffset" type="GLint"/> <param name="x" type="GLint"/> <param name="y" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> </function> <function name="glCreateProgram"> <return type="GLuint"/> </function> <function name="glCreateShader"> <param name="type" type="GLenum" enum="ShaderType"/> <return type="GLuint"/> </function> <function name="glCullFace"> <param name="mode" type="GLenum" enum="CullFaceMode"/> </function> <function name="glDeleteBuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="buffer" type="const GLuint *" count="n"/> </function> <function name="glDeleteFramebuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="framebuffers" type="const GLuint *" count="n"/> </function> <function name="glDeleteProgram"> <param name="program" type="GLuint"/> </function> <function name="glDeleteRenderbuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="renderbuffers" type="const GLuint *" count="n"/> </function> <function name="glDeleteShader"> <param name="program" type="GLuint"/> </function> <function name="glDeleteTextures"> <param name="n" type="GLsizei" counter="true"/> <param name="textures" type="const GLuint *" count="n"/> </function> <function name="glDepthFunc"> <param name="func" type="GLenum" enum="DepthFunction"/> </function> <function name="glDepthMask"> <param name="flag" type="GLboolean"/> </function> <function name="glDepthRangef"> <param name="zNear" type="GLclampf"/> <param name="zFar" type="GLclampf"/> </function> <function name="glDetachShader"> <param name="program" type="GLuint"/> <param name="shader" type="GLuint"/> </function> <function name="glDisable"> <param name="cap" type="GLenum" enum="EnableCap"/> </function> <function name="glDisableVertexAttribArray"> <param name="index" type="GLuint"/> </function> <function name="glDrawArrays"> <param name="mode" type="GLenum" enum="BeginMode"/> <param name="first" type="GLint"/> <param name="count" type="GLsizei"/> </function> <function name="glDrawElements"> <param name="mode" type="GLenum" enum="BeginMode"/> <param name="count" type="GLsizei"/> <param name="type" type="GLenum" enum="IndexType"/> <param name="indices" type="const GLvoid *"/> </function> <function name="glEnable"> <param name="cap" type="GLenum" enum="EnableCap"/> </function> <function name="glEnableVertexAttribArray"> <param name="index" type="GLuint"/> </function> <function name="glFinish"> </function> <function name="glFlush"> </function> <function name="glFramebufferRenderbuffer"> <param name="target" type="GLenum" enum="FramebufferTarget"/> <param name="attachment" type="GLenum" enum="FramebufferAttachment"/> <param name="renderbuffertarget" type="GLenum" enum="RenderbufferTarget"/> <param name="renderbuffer" type="GLuint"/> </function> <function name="glFramebufferTexture2D"> <param name="target" type="GLenum" enum="FramebufferTarget"/> <param name="attachment" type="GLenum" enum="FramebufferAttachment"/> <param name="textarget" type="GLenum" enum="TextureTargetFace"/> <param name="texture" type="GLuint"/> <param name="level" type="GLint"/> </function> <function name="glFrontFace"> <param name="mode" type="GLenum" enum="FrontFaceDirection"/> </function> <function name="glGenBuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="buffer" type="GLuint *" output="true" count="n"/> </function> <function name="glGenerateMipmap"> <param name="target" type="GLenum" enum="TextureTarget"/> </function> <function name="glGenFramebuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="framebuffers" type="GLuint *" count="n" output="true"/> </function> <function name="glGenRenderbuffers"> <param name="n" type="GLsizei" counter="true"/> <param name="renderbuffers" type="GLuint *" count="n" output="true"/> </function> <function name="glGenTextures"> <param name="n" type="GLsizei" counter="true"/> <param name="textures" type="GLuint *" output="true" count="n"/> </function> <function name="glGetActiveAttrib"> <param name="program" type="GLuint"/> <param name="index" type="GLuint"/> <param name="bufSize" type="GLsizei"/> <param name="length" type="GLsizei *" output="true"/> <param name="size" type="GLint *" output="true"/> <param name="type" type="GLenum *" output="true" enum="UniformType"/> <param name="name" type="GLchar *" output="true"/> </function> <function name="glGetActiveUniform"> <param name="program" type="GLuint"/> <param name="index" type="GLuint"/> <param name="bufSize" type="GLsizei"/> <param name="length" type="GLsizei *" output="true"/> <param name="size" type="GLint *" output="true"/> <param name="type" type="GLenum *" output="true" enum="UniformType"/> <param name="name" type="GLchar *" output="true"/> </function> <function name="glGetAttachedShaders"> <param name="program" type="GLuint"/> <param name="maxCount" type="GLsizei"/> <param name="count" type="GLsizei *" output="true"/> <param name="obj" type="GLuint *" output="true"/> </function> <function name="glGetAttribLocation"> <param name="program" type="GLuint"/> <param name="name" type="const GLchar *"/> <return type="GLint"/> </function> <function name="glGetBooleanv"> <param name="pname" type="GLenum" enum="GetPName"/> <param name="params" type="GLboolean *" output="true" variable_param="pname"/> </function> <function name="glGetBufferParameteriv"> <param name="target" type="GLenum" enum="BufferTarget"/> <param name="pname" type="GLenum" enum="GetBufferParameterPName"/> <param name="params" type="GLint *" output="true" variable_param="pname"/> </function> <function name="glGetError"> <return type="GLenum" enum="ErrorCode"/> </function> <function name="glGetFloatv"> <param name="pname" type="GLenum" enum="GetPName"/> <param name="params" type="GLfloat *" output="true" variable_param="pname"/> </function> <function name="glGetFramebufferAttachmentParameteriv"> <param name="target" type="GLenum" enum="FramebufferTarget"/> <param name="attachment" type="GLenum" enum="FramebufferAttachment"/> <param name="pname" type="GLenum" enum="GetFramebufferAttachmentParameterPName"/> <param name="params" type="GLint *" output="true"/> </function> <function name="glGetIntegerv"> <param name="pname" type="GLenum" enum="GetPName"/> <param name="params" type="GLint *" output="true" variable_param="pname"/> </function> <function name="glGetProgramiv"> <param name="program" type="GLuint"/> <param name="pname" type="GLenum" enum="GetProgramPName"/> <param name="params" type="GLint *"/> </function> <function name="glGetProgramInfoLog"> <param name="program" type="GLuint"/> <param name="bufSize" type="GLsizei"/> <param name="length" type="GLsizei *"/> <param name="infoLog" type="GLchar *"/> </function> <function name="glGetRenderbufferParameteriv"> <param name="target" type="GLenum" enum="RenderbufferTarget"/> <param name="pname" type="GLenum" enum="GetRenderbufferParameterPName"/> <param name="params" type="GLint *" output="true"/> </function> <function name="glGetShaderiv"> <param name="shader" type="GLuint"/> <param name="pname" type="GLenum" enum="GetShaderPName"/> <param name="params" type="GLint *"/> </function> <function name="glGetShaderInfoLog"> <param name="shader" type="GLuint"/> <param name="bufSize" type="GLsizei"/> <param name="length" type="GLsizei *"/> <param name="infoLog" type="GLchar *"/> </function> <function name="glGetShaderPrecisionFormat"> <param name="shadertype" type="GLenum" enum="ShaderType"/> <param name="precisiontype" type="GLenum" enum="PrecisionType"/> <param name="range" type="GLint *"/> <param name="precision" type="GLint *"/> </function> <function name="glGetShaderSource"> <param name="shader" type="GLuint"/> <param name="bufSize" type="GLsizei"/> <param name="length" type="GLsizei *" output="true"/> <param name="source" type="GLchar *" output="true"/> </function> <function name="glGetString"> <param name="name" type="GLenum" enum="StringName"/> <return type="const GLubyte *"/> </function> <function name="glGetTexParameterfv"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="params" type="GLfloat *" output="true" variable_param="pname"/> </function> <function name="glGetTexParameteriv"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="params" type="GLint *" output="true" variable_param="pname"/> </function> <function name="glGetUniformfv"> <param name="program" type="GLuint"/> <param name="location" type="GLint"/> <param name="params" type="GLfloat *" output="true"/> </function> <function name="glGetUniformiv"> <param name="program" type="GLuint"/> <param name="location" type="GLint"/> <param name="params" type="GLint *" output="true"/> </function> <function name="glGetUniformLocation"> <param name="program" type="GLuint"/> <param name="name" type="const GLchar *"/> <return type="GLint"/> </function> <function name="glGetVertexAttribfv"> <param name="index" type="GLuint"/> <param name="pname" type="GLenum" enum="GetVertexAttribParameterPName"/> <param name="params" type="GLfloat *" output="true" variable_param="pname"/> </function> <function name="glGetVertexAttribiv"> <param name="index" type="GLuint"/> <param name="pname" type="GLenum" enum="GetVertexAttribParameterPName"/> <param name="params" type="GLint *" output="true" variable_param="pname"/> </function> <function name="glGetVertexAttribPointerv"> <param name="index" type="GLuint"/> <param name="pname" type="GLenum" enum="GetVertexAttribPointerPName"/> <param name="pointer" type="GLvoid **" output="true"/> </function> <function name="glHint"> <param name="target" type="GLenum" enum="HintTarget"/> <param name="mode" type="GLenum" enum="HintMode"/> </function> <function name="glIsBuffer"> <param name="buffer" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glIsEnabled"> <param name="cap" type="GLenum" enum="EnableCap"/> <return type="GLboolean"/> </function> <function name="glIsFramebuffer"> <param name="framebuffer" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glIsProgram"> <param name="program" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glIsRenderbuffer"> <param name="renderbuffer" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glIsShader"> <param name="shader" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glIsTexture"> <param name="texture" type="GLuint"/> <return type="GLboolean"/> </function> <function name="glLineWidth"> <param name="width" type="GLfloat"/> </function> <function name="glLinkProgram"> <param name="program" type="GLuint"/> </function> <function name="glPixelStorei"> <param name="pname" type="GLenum" enum="PixelStorePName"/> <param name="param" type="GLint"/> </function> <function name="glPolygonOffset"> <param name="factor" type="GLfloat"/> <param name="units" type="GLfloat"/> </function> <function name="glReadPixels"> <param name="x" type="GLint"/> <param name="y" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="format" type="GLenum" enum="PixelFormat"/> <param name="type" type="GLenum" enum="PixelType"/> <param name="pixels" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type" img_target="0"/> </function> <function name="glReleaseShaderCompiler"> </function> <function name="glRenderbufferStorage"> <param name="target" type="GLenum" enum="RenderbufferTarget"/> <param name="internalformat" type="GLenum" enum="RenderbufferInternalFormat"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> </function> <function name="glSampleCoverage"> <param name="value" type="GLclampf"/> <param name="invert" type="GLboolean"/> </function> <function name="glScissor"> <param name="x" type="GLint"/> <param name="y" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> </function> <function name="glShaderBinary"> <param name="n" type="GLsizei"/> <param name="shaders" type="const GLuint *"/> <param name="binaryformat" type="GLenum" enum="ShaderBinaryFormat"/> <param name="binary" type="const GLvoid *"/> <param name="length" type="GLsizei"/> </function> <function name="glShaderSource"> <param name="shader" type="GLuint"/> <param name="count" type="GLsizei"/> <param name="string" type="const GLchar * const *"/> <param name="length" type="const GLint *"/> </function> <function name="glStencilFunc"> <param name="func" type="GLenum" enum="StencilFunction"/> <param name="ref" type="GLint"/> <param name="mask" type="GLuint"/> </function> <function name="glStencilFuncSeparate"> <param name="face" type="GLenum" enum="CullFaceMode"/> <param name="func" type="GLenum" enum="StencilFunction"/> <param name="ref" type="GLint"/> <param name="mask" type="GLuint"/> </function> <function name="glStencilMask"> <param name="mask" type="GLuint"/> </function> <function name="glStencilMaskSeparate"> <param name="face" type="GLenum" enum="CullFaceMode"/> <param name="mask" type="GLuint"/> </function> <function name="glStencilOp"> <param name="fail" type="GLenum" enum="StencilOp"/> <param name="zfail" type="GLenum" enum="StencilOp"/> <param name="zpass" type="GLenum" enum="StencilOp"/> </function> <function name="glStencilOpSeparate"> <param name="face" type="GLenum" enum="CullFaceMode"/> <param name="sfail" type="GLenum" enum="StencilOp"/> <param name="zfail" type="GLenum" enum="StencilOp"/> <param name="zpass" type="GLenum" enum="StencilOp"/> </function> <function name="glTexImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="internalformat" type="GLint" enum="TextureInternalFormat"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="border" type="GLint"/> <param name="format" type="GLenum" enum="PixelFormat"/> <param name="type" type="GLenum" enum="PixelType"/> <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/> </function> <function name="glTexParameterf"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="param" type="GLfloat"/> </function> <function name="glTexParameterfv"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="params" type="const GLfloat *" variable_param="pname"/> </function> <function name="glTexParameteri"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="param" type="GLint"/> </function> <function name="glTexParameteriv"> <param name="target" type="GLenum" enum="TextureTarget"/> <param name="pname" type="GLenum" enum="TextureParameterName"/> <param name="params" type="const GLint *" variable_param="pname"/> </function> <function name="glTexSubImage2D"> <param name="target" type="GLenum" enum="TextureTargetFace"/> <param name="level" type="GLint"/> <param name="xoffset" type="GLint"/> <param name="yoffset" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> <param name="format" type="GLenum" enum="PixelFormat"/> <param name="type" type="GLenum" enum="PixelType"/> <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_xoff="xoffset" img_yoff="yoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> </function> <function name="glUniform1f"> <param name="location" type="GLint"/> <param name="v0" type="GLfloat"/> </function> <function name="glUniform1fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniform1i"> <param name="location" type="GLint"/> <param name="v0" type="GLint"/> </function> <function name="glUniform1iv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLint *"/> </function> <function name="glUniform2f"> <param name="location" type="GLint"/> <param name="v0" type="GLfloat"/> <param name="v1" type="GLfloat"/> </function> <function name="glUniform2fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniform2i"> <param name="location" type="GLint"/> <param name="v0" type="GLint"/> <param name="v1" type="GLint"/> </function> <function name="glUniform2iv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLint *"/> </function> <function name="glUniform3f"> <param name="location" type="GLint"/> <param name="v0" type="GLfloat"/> <param name="v1" type="GLfloat"/> <param name="v2" type="GLfloat"/> </function> <function name="glUniform3fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniform3i"> <param name="location" type="GLint"/> <param name="v0" type="GLint"/> <param name="v1" type="GLint"/> <param name="v2" type="GLint"/> </function> <function name="glUniform3iv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLint *"/> </function> <function name="glUniform4f"> <param name="location" type="GLint"/> <param name="v0" type="GLfloat"/> <param name="v1" type="GLfloat"/> <param name="v2" type="GLfloat"/> <param name="v3" type="GLfloat"/> </function> <function name="glUniform4fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniform4i"> <param name="location" type="GLint"/> <param name="v0" type="GLint"/> <param name="v1" type="GLint"/> <param name="v2" type="GLint"/> <param name="v3" type="GLint"/> </function> <function name="glUniform4iv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="value" type="const GLint *"/> </function> <function name="glUniformMatrix2fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="transpose" type="GLboolean"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniformMatrix3fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="transpose" type="GLboolean"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUniformMatrix4fv"> <param name="location" type="GLint"/> <param name="count" type="GLsizei"/> <param name="transpose" type="GLboolean"/> <param name="value" type="const GLfloat *"/> </function> <function name="glUseProgram"> <param name="program" type="GLuint"/> </function> <function name="glValidateProgram"> <param name="program" type="GLuint"/> </function> <function name="glVertexAttrib1f"> <param name="index" type="GLuint"/> <param name="x" type="GLfloat"/> </function> <function name="glVertexAttrib1fv"> <param name="index" type="GLuint"/> <param name="v" type="const GLfloat *"/> </function> <function name="glVertexAttrib2f"> <param name="index" type="GLuint"/> <param name="x" type="GLfloat"/> <param name="y" type="GLfloat"/> </function> <function name="glVertexAttrib2fv"> <param name="index" type="GLuint"/> <param name="v" type="const GLfloat *"/> </function> <function name="glVertexAttrib3f"> <param name="index" type="GLuint"/> <param name="x" type="GLfloat"/> <param name="y" type="GLfloat"/> <param name="z" type="GLfloat"/> </function> <function name="glVertexAttrib3fv"> <param name="index" type="GLuint"/> <param name="v" type="const GLfloat *"/> </function> <function name="glVertexAttrib4f"> <param name="index" type="GLuint"/> <param name="x" type="GLfloat"/> <param name="y" type="GLfloat"/> <param name="z" type="GLfloat"/> <param name="w" type="GLfloat"/> </function> <function name="glVertexAttrib4fv"> <param name="index" type="GLuint"/> <param name="v" type="const GLfloat *"/> </function> <function name="glVertexAttribPointer"> <param name="index" type="GLuint"/> <param name="size" type="GLint"/> <param name="type" type="GLenum" enum="VertexAttribType"/> <param name="normalized" type="GLboolean"/> <param name="stride" type="GLsizei"/> <param name="pointer" type="const GLvoid *"/> </function> <function name="glViewport"> <param name="x" type="GLint"/> <param name="y" type="GLint"/> <param name="width" type="GLsizei"/> <param name="height" type="GLsizei"/> </function> </functions> </root> |
Added jni/glshim/spec/xml/glx.xml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 | <?xml version="1.0" encoding="UTF-8"?> <specification xmlns="http://www.opengl.org/registry/" name="GLX" specversion="1.3" fileversion="0.0.1" > <typemap > <type-def typename="Int32" C-lang="uint32_t" /> <type-def typename="GLXPixmap" C-lang="GLXPixmap" /> <type-def typename="FunctionPointer" C-lang="__GLXextFuncPtr" /> <type-def typename="GLXPbufferSGIX" C-lang="GLXPbufferSGIX" /> <type-def typename="long" C-lang="long" /> <type-def typename="DMbuffer" C-lang="DMbuffer" /> <type-def typename="GLXFBConfig" C-lang="GLXFBConfig" /> <type-def typename="VLServer" C-lang="VLServer" /> <type-def typename="GLXPbuffer" C-lang="GLXPbuffer" /> <type-def typename="int64_t" C-lang="int64_t" /> <type-def typename="GLXFBConfigSGIX" C-lang="GLXFBConfigSGIX" /> <type-def typename="GLubyte" C-lang="GLubyte" /> <type-def typename="GLenum" C-lang="GLenum" /> <type-def typename="VLPath" C-lang="VLPath" /> <type-def typename="GLXHyperpipeConfigSGIXPointer" C-lang="GLXHyperpipeConfigSGIX *" /> <type-def typename="constGLXContext" C-lang="const GLXContext" /> <type-def typename="GLXDrawable" C-lang="GLXDrawable" /> <type-def typename="Pixmap" C-lang="Pixmap" /> <type-def typename="Colormap" C-lang="Colormap" /> <type-def typename="GLXFBConfigPointer" C-lang="GLXFBConfig *" /> <type-def typename="Uint" C-lang="unsigned int" /> <type-def typename="int32_t" C-lang="int32_t" /> <type-def typename="GLint" C-lang="GLint" /> <type-def typename="uintPointer" C-lang="unsigned int *" /> <type-def typename="GLXVideoDeviceNV" C-lang="GLXVideoDeviceNV" /> <type-def typename="Window" C-lang="Window" /> <type-def typename="GLfunction" C-lang="GLfunction" /> <type-def typename="GLXVideoCaptureDeviceNVPointer" C-lang="GLXVideoCaptureDeviceNV *" /> <type-def typename="GLXVideoSourceSGIX" C-lang="GLXVideoSourceSGIX" /> <type-def typename="Display" C-lang="Display" /> <type-def typename="GLXFBConfigSGIXPointer" C-lang="GLXFBConfigSGIX *" /> <type-def typename="XVisualInfoPointer" C-lang="XVisualInfo *" /> <type-def typename="Status" C-lang="Status" /> <type-def typename="GLboolean" C-lang="GLboolean" /> <type-def typename="Bool" C-lang="Bool" /> <type-def typename="GLXVideoCaptureDeviceNV" C-lang="GLXVideoCaptureDeviceNV" /> <type-def typename="GLXHyperpipeNetworkSGIXPointer" C-lang="GLXHyperpipeNetworkSGIX *" /> <type-def typename="DisplayPointer" C-lang="Display *" /> <type-def typename="VLNode" C-lang="VLNode" /> <type-def typename="GLuint" C-lang="GLuint" /> <type-def typename="GLXContext" C-lang="GLXContext" /> <type-def typename="GLXContextID" C-lang="GLXContextID" /> <type-def typename="GLsizei" C-lang="GLsizei" /> <type-def typename="DMparams" C-lang="DMparams" /> <type-def typename="GLXHyperpipeConfigSGIX" C-lang="GLXHyperpipeConfigSGIX" /> <type-def typename="GLXWindow" C-lang="GLXWindow" /> <type-def typename="XVisualInfo" C-lang="XVisualInfo" /> <type-def typename="float" C-lang="float" /> <type-def typename="void" C-lang="void" /> <type-def typename="int" C-lang="int" /> <type-def typename="uint" C-lang="unsigned int" /> <type-def typename="ulong" C-lang="unsigned long" /> </typemap> <extensions > <ext name="GLXStringName" /> <ext name="GLXErrorCode" /> <ext name="GLXDrawableTypeMask" /> <ext name="GLXRenderTypeMask" /> <ext name="GLXSyncType" /> <ext name="GLXEventMask" /> <ext name="GLXPbufferClobberMask" /> <ext name="GLXHyperpipeTypeMask" /> <ext name="GLXHyperpipeAttrib" /> <ext name="GLXHyperpipeMisc" /> <ext name="GLXBindToTextureTargetMask" /> <ext name="GLXContextFlags" /> <ext name="GLXContextProfileMask" /> <ext name="GLXAttribute" /> <ext name="NV_present_video" /> <ext name="EXT_swap_control" /> <ext name="EXT_swap_control_tear" /> <ext name="EXT_buffer_age" /> <ext name="GLX_AMD_gpu_association" /> <ext name="GLX_ARB_create_context_robustness" /> <ext name="ARB_create_context_profile" /> </extensions> <enumerations > <enum name="VENDOR" value="0x1" > <ext name="GLXStringName" /> </enum> <enum name="VERSION" value="0x2" > <ext name="GLXStringName" /> </enum> <enum name="EXTENSIONS" value="0x3" > <ext name="GLXStringName" /> </enum> <enum name="BAD_SCREEN" value="1" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_ATTRIBUTE" value="2" > <ext name="GLXErrorCode" /> </enum> <enum name="NO_EXTENSION" value="3" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_VISUAL" value="4" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_CONTEXT" value="5" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_VALUE" value="6" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_ENUM" value="7" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_HYPERPIPE_CONFIG_SGIX" value="91" > <ext name="GLXErrorCode" /> </enum> <enum name="BAD_HYPERPIPE_SGIX" value="92" > <ext name="GLXErrorCode" /> </enum> <enum name="WINDOW_BIT" value="0x00000001" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="PIXMAP_BIT" value="0x00000002" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="PBUFFER_BIT" value="0x00000004" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="WINDOW_BIT_SGIX" value="0x00000001" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="PIXMAP_BIT_SGIX" value="0x00000002" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="PBUFFER_BIT_SGIX" value="0x00000004" > <ext name="GLXDrawableTypeMask" /> </enum> <enum name="RGBA_BIT" value="0x00000001" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="COLOR_INDEX_BIT" value="0x00000002" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="RGBA_BIT_SGIX" value="0x00000001" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="COLOR_INDEX_BIT_SGIX" value="0x00000002" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="RGBA_FLOAT_BIT_ARB" value="0x00000004" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="RGBA_UNSIGNED_FLOAT_BIT_EXT" value="0x00000008" > <ext name="GLXRenderTypeMask" /> </enum> <enum name="SYNC_FRAME_SGIX" value="0x00000000" > <ext name="GLXSyncType" /> </enum> <enum name="SYNC_SWAP_SGIX" value="0x00000001" > <ext name="GLXSyncType" /> </enum> <enum name="PBUFFER_CLOBBER_MASK" value="0x08000000" > <ext name="GLXEventMask" /> </enum> <enum name="BUFFER_CLOBBER_MASK_SGIX" value="0x08000000" > <ext name="GLXEventMask" /> </enum> <enum name="BUFFER_SWAP_COMPLETE_INTEL_MASK" value="0x04000000" > <ext name="GLXEventMask" /> </enum> <enum name="FRONT_LEFT_BUFFER_BIT" value="0x00000001" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="FRONT_RIGHT_BUFFER_BIT" value="0x00000002" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="BACK_LEFT_BUFFER_BIT" value="0x00000004" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="BACK_RIGHT_BUFFER_BIT" value="0x00000008" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="AUX_BUFFERS_BIT" value="0x00000010" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="DEPTH_BUFFER_BIT" value="0x00000020" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="STENCIL_BUFFER_BIT" value="0x00000040" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="ACCUM_BUFFER_BIT" value="0x00000080" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="FRONT_LEFT_BUFFER_BIT_SGIX" value="0x00000001" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="FRONT_RIGHT_BUFFER_BIT_SGIX" value="0x00000002" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="BACK_LEFT_BUFFER_BIT_SGIX" value="0x00000004" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="BACK_RIGHT_BUFFER_BIT_SGIX" value="0x00000008" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="AUX_BUFFERS_BIT_SGIX" value="0x00000010" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="DEPTH_BUFFER_BIT_SGIX" value="0x00000020" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="STENCIL_BUFFER_BIT_SGIX" value="0x00000040" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="ACCUM_BUFFER_BIT_SGIX" value="0x00000080" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="SAMPLE_BUFFERS_BIT_SGIX" value="0x00000100" > <ext name="GLXPbufferClobberMask" /> </enum> <enum name="HYPERPIPE_DISPLAY_PIPE_SGIX" value="0x00000001" > <ext name="GLXHyperpipeTypeMask" /> </enum> <enum name="HYPERPIPE_RENDER_PIPE_SGIX" value="0x00000002" > <ext name="GLXHyperpipeTypeMask" /> </enum> <enum name="PIPE_RECT_SGIX" value="0x00000001" > <ext name="GLXHyperpipeAttrib" /> </enum> <enum name="PIPE_RECT_LIMITS_SGIX" value="0x00000002" > <ext name="GLXHyperpipeAttrib" /> </enum> <enum name="HYPERPIPE_STEREO_SGIX" value="0x00000003" > <ext name="GLXHyperpipeAttrib" /> </enum> <enum name="HYPERPIPE_PIXEL_AVERAGE_SGIX" value="0x00000004" > <ext name="GLXHyperpipeAttrib" /> </enum> <enum name="HYPERPIPE_PIPE_NAME_LENGTH_SGIX" value="80" > <ext name="GLXHyperpipeMisc" /> </enum> <enum name="TEXTURE_1D_BIT_EXT" value="0x00000001" > <ext name="GLXBindToTextureTargetMask" /> </enum> <enum name="TEXTURE_2D_BIT_EXT" value="0x00000002" > <ext name="GLXBindToTextureTargetMask" /> </enum> <enum name="TEXTURE_RECTANGLE_BIT_EXT" value="0x00000004" > <ext name="GLXBindToTextureTargetMask" /> </enum> <enum name="CONTEXT_DEBUG_BIT_ARB" value="0x00000001" > <ext name="GLXContextFlags" /> </enum> <enum name="CONTEXT_FORWARD_COMPATIBLE_BIT_ARB" value="0x00000002" > <ext name="GLXContextFlags" /> </enum> <enum name="CONTEXT_ROBUST_ACCESS_BIT_ARB" value="0x00000004" > <ext name="GLXContextFlags" /> </enum> <enum name="CONTEXT_RESET_ISOLATION_BIT_ARB" value="0x00000008" > <ext name="GLXContextFlags" /> </enum> <enum name="CONTEXT_CORE_PROFILE_BIT_ARB" value="0x00000001" > <ext name="GLXContextProfileMask" /> </enum> <enum name="CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB" value="0x00000002" > <ext name="GLXContextProfileMask" /> </enum> <enum name="CONTEXT_ES_PROFILE_BIT_EXT" value="0x00000004" > <ext name="GLXContextProfileMask" /> </enum> <enum name="CONTEXT_ES2_PROFILE_BIT_EXT" value="0x00000004" > <ext name="GLXContextProfileMask" /> </enum> <enum name="USE_GL" value="1" > <ext name="GLXAttribute" /> </enum> <enum name="BUFFER_SIZE" value="2" > <ext name="GLXAttribute" /> </enum> <enum name="LEVEL" value="3" > <ext name="GLXAttribute" /> </enum> <enum name="RGBA" value="4" > <ext name="GLXAttribute" /> </enum> <enum name="DOUBLEBUFFER" value="5" > <ext name="GLXAttribute" /> </enum> <enum name="STEREO" value="6" > <ext name="GLXAttribute" /> </enum> <enum name="AUX_BUFFERS" value="7" > <ext name="GLXAttribute" /> </enum> <enum name="RED_SIZE" value="8" > <ext name="GLXAttribute" /> </enum> <enum name="GREEN_SIZE" value="9" > <ext name="GLXAttribute" /> </enum> <enum name="BLUE_SIZE" value="10" > <ext name="GLXAttribute" /> </enum> <enum name="ALPHA_SIZE" value="11" > <ext name="GLXAttribute" /> </enum> <enum name="DEPTH_SIZE" value="12" > <ext name="GLXAttribute" /> </enum> <enum name="STENCIL_SIZE" value="13" > <ext name="GLXAttribute" /> </enum> <enum name="ACCUM_RED_SIZE" value="14" > <ext name="GLXAttribute" /> </enum> <enum name="ACCUM_GREEN_SIZE" value="15" > <ext name="GLXAttribute" /> </enum> <enum name="ACCUM_BLUE_SIZE" value="16" > <ext name="GLXAttribute" /> </enum> <enum name="ACCUM_ALPHA_SIZE" value="17" > <ext name="GLXAttribute" /> </enum> <enum name="CONFIG_CAVEAT" value="0x20" > <ext name="GLXAttribute" /> </enum> <enum name="X_VISUAL_TYPE" value="0x22" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_TYPE" value="0x23" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_INDEX_VALUE" value="0x24" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_RED_VALUE" value="0x25" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_GREEN_VALUE" value="0x26" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_BLUE_VALUE" value="0x27" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_ALPHA_VALUE" value="0x28" > <ext name="GLXAttribute" /> </enum> <enum name="DONT_CARE" value="0xFFFFFFFF" > <ext name="GLXAttribute" /> </enum> <enum name="NONE" value="0x8000" > <ext name="GLXAttribute" /> </enum> <enum name="SLOW_CONFIG" value="0x8001" > <ext name="GLXAttribute" /> </enum> <enum name="TRUE_COLOR" value="0x8002" > <ext name="GLXAttribute" /> </enum> <enum name="DIRECT_COLOR" value="0x8003" > <ext name="GLXAttribute" /> </enum> <enum name="PSEUDO_COLOR" value="0x8004" > <ext name="GLXAttribute" /> </enum> <enum name="STATIC_COLOR" value="0x8005" > <ext name="GLXAttribute" /> </enum> <enum name="GRAY_SCALE" value="0x8006" > <ext name="GLXAttribute" /> </enum> <enum name="STATIC_GRAY" value="0x8007" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_RGB" value="0x8008" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_INDEX" value="0x8009" > <ext name="GLXAttribute" /> </enum> <enum name="VISUAL_ID" value="0x800B" > <ext name="GLXAttribute" /> </enum> <enum name="SCREEN" value="0x800C" > <ext name="GLXAttribute" /> </enum> <enum name="NON_CONFORMANT_CONFIG" value="0x800D" > <ext name="GLXAttribute" /> </enum> <enum name="DRAWABLE_TYPE" value="0x8010" > <ext name="GLXAttribute" /> </enum> <enum name="RENDER_TYPE" value="0x8011" > <ext name="GLXAttribute" /> </enum> <enum name="X_RENDERABLE" value="0x8012" > <ext name="GLXAttribute" /> </enum> <enum name="FBCONFIG_ID" value="0x8013" > <ext name="GLXAttribute" /> </enum> <enum name="RGBA_TYPE" value="0x8014" > <ext name="GLXAttribute" /> </enum> <enum name="COLOR_INDEX_TYPE" value="0x8015" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_WIDTH" value="0x8016" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_HEIGHT" value="0x8017" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_PIXELS" value="0x8018" > <ext name="GLXAttribute" /> </enum> <enum name="PRESERVED_CONTENTS" value="0x801B" > <ext name="GLXAttribute" /> </enum> <enum name="LARGEST_PBUFFER" value="0x801C" > <ext name="GLXAttribute" /> </enum> <enum name="WIDTH" value="0x801D" > <ext name="GLXAttribute" /> </enum> <enum name="HEIGHT" value="0x801E" > <ext name="GLXAttribute" /> </enum> <enum name="EVENT_MASK" value="0x801F" > <ext name="GLXAttribute" /> </enum> <enum name="DAMAGED" value="0x8020" > <ext name="GLXAttribute" /> </enum> <enum name="SAVED" value="0x8021" > <ext name="GLXAttribute" /> </enum> <enum name="WINDOW" value="0x8022" > <ext name="GLXAttribute" /> </enum> <enum name="PBUFFER" value="0x8023" > <ext name="GLXAttribute" /> </enum> <enum name="PBUFFER_HEIGHT" value="0x8040" > <ext name="GLXAttribute" /> </enum> <enum name="PBUFFER_WIDTH" value="0x8041" > <ext name="GLXAttribute" /> </enum> <enum name="VISUAL_CAVEAT_EXT" value="0x20" > <ext name="GLXAttribute" /> </enum> <enum name="X_VISUAL_TYPE_EXT" value="0x22" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_TYPE_EXT" value="0x23" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_INDEX_VALUE_EXT" value="0x24" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_RED_VALUE_EXT" value="0x25" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_GREEN_VALUE_EXT" value="0x26" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_BLUE_VALUE_EXT" value="0x27" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_ALPHA_VALUE_EXT" value="0x28" > <ext name="GLXAttribute" /> </enum> <enum name="NONE_EXT" value="0x8000" > <ext name="GLXAttribute" /> </enum> <enum name="SLOW_VISUAL_EXT" value="0x8001" > <ext name="GLXAttribute" /> </enum> <enum name="TRUE_COLOR_EXT" value="0x8002" > <ext name="GLXAttribute" /> </enum> <enum name="DIRECT_COLOR_EXT" value="0x8003" > <ext name="GLXAttribute" /> </enum> <enum name="PSEUDO_COLOR_EXT" value="0x8004" > <ext name="GLXAttribute" /> </enum> <enum name="STATIC_COLOR_EXT" value="0x8005" > <ext name="GLXAttribute" /> </enum> <enum name="GRAY_SCALE_EXT" value="0x8006" > <ext name="GLXAttribute" /> </enum> <enum name="STATIC_GRAY_EXT" value="0x8007" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_RGB_EXT" value="0x8008" > <ext name="GLXAttribute" /> </enum> <enum name="TRANSPARENT_INDEX_EXT" value="0x8009" > <ext name="GLXAttribute" /> </enum> <enum name="SHARE_CONTEXT_EXT" value="0x800A" > <ext name="GLXAttribute" /> </enum> <enum name="VISUAL_ID_EXT" value="0x800B" > <ext name="GLXAttribute" /> </enum> <enum name="SCREEN_EXT" value="0x800C" > <ext name="GLXAttribute" /> </enum> <enum name="NON_CONFORMANT_VISUAL_EXT" value="0x800D" > <ext name="GLXAttribute" /> </enum> <enum name="DRAWABLE_TYPE_SGIX" value="0x8010" > <ext name="GLXAttribute" /> </enum> <enum name="RENDER_TYPE_SGIX" value="0x8011" > <ext name="GLXAttribute" /> </enum> <enum name="X_RENDERABLE_SGIX" value="0x8012" > <ext name="GLXAttribute" /> </enum> <enum name="FBCONFIG_ID_SGIX" value="0x8013" > <ext name="GLXAttribute" /> </enum> <enum name="RGBA_TYPE_SGIX" value="0x8014" > <ext name="GLXAttribute" /> </enum> <enum name="COLOR_INDEX_TYPE_SGIX" value="0x8015" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_WIDTH_SGIX" value="0x8016" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_HEIGHT_SGIX" value="0x8017" > <ext name="GLXAttribute" /> </enum> <enum name="MAX_PBUFFER_PIXELS_SGIX" value="0x8018" > <ext name="GLXAttribute" /> </enum> <enum name="OPTIMAL_PBUFFER_WIDTH_SGIX" value="0x8019" > <ext name="GLXAttribute" /> </enum> <enum name="OPTIMAL_PBUFFER_HEIGHT_SGIX" value="0x801A" > <ext name="GLXAttribute" /> </enum> <enum name="PRESERVED_CONTENTS_SGIX" value="0x801B" > <ext name="GLXAttribute" /> </enum> <enum name="LARGEST_PBUFFER_SGIX" value="0x801C" > <ext name="GLXAttribute" /> </enum> <enum name="WIDTH_SGIX" value="0x801D" > <ext name="GLXAttribute" /> </enum> <enum name="HEIGHT_SGIX" value="0x801E" > <ext name="GLXAttribute" /> </enum> <enum name="EVENT_MASK_SGIX" value="0x801F" > <ext name="GLXAttribute" /> </enum> <enum name="DAMAGED_SGIX" value="0x8020" > <ext name="GLXAttribute" /> </enum> <enum name="SAVED_SGIX" value="0x8021" > <ext name="GLXAttribute" /> </enum> <enum name="WINDOW_SGIX" value="0x8022" > <ext name="GLXAttribute" /> </enum> <enum name="PBUFFER_SGIX" value="0x8023" > <ext name="GLXAttribute" /> </enum> <enum name="DIGITAL_MEDIA_PBUFFER_SGIX" value="0x8024" > <ext name="GLXAttribute" /> </enum> <enum name="BLENDED_RGBA_SGIS" value="0x8025" > <ext name="GLXAttribute" /> </enum> <enum name="MULTISAMPLE_SUB_RECT_WIDTH_SGIS" value="0x8026" > <ext name="GLXAttribute" /> </enum> <enum name="MULTISAMPLE_SUB_RECT_HEIGHT_SGIS" value="0x8027" > <ext name="GLXAttribute" /> </enum> <enum name="VISUAL_SELECT_GROUP_SGIX" value="0x8028" > <ext name="GLXAttribute" /> </enum> <enum name="HYPERPIPE_ID_SGIX" value="0x8030" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLE_BUFFERS_SGIS" value="100000" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLES_SGIS" value="100001" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLE_BUFFERS_ARB" value="100000" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLES_ARB" value="100001" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLE_BUFFERS" value="100000" > <ext name="GLXAttribute" /> </enum> <enum name="SAMPLES" value="100001" > <ext name="GLXAttribute" /> </enum> <enum name="COVERAGE_SAMPLES_NV" value="100001" > <ext name="GLXAttribute" /> </enum> <enum name="CONTEXT_MAJOR_VERSION_ARB" value="0x2091" > <ext name="GLXAttribute" /> </enum> <enum name="CONTEXT_MINOR_VERSION_ARB" value="0x2092" > <ext name="GLXAttribute" /> </enum> <enum name="CONTEXT_FLAGS_ARB" value="0x2094" > <ext name="GLXAttribute" /> </enum> <enum name="CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB" value="0x2095" > <ext name="GLXAttribute" /> </enum> <enum name="FLOAT_COMPONENTS_NV" value="0x20B0" > <ext name="GLXAttribute" /> </enum> <enum name="RGBA_UNSIGNED_FLOAT_TYPE_EXT" value="0x20B1" > <ext name="GLXAttribute" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_ARB" value="0x20B2" > <ext name="GLXAttribute" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_EXT" value="0x20B2" > <ext name="GLXAttribute" /> </enum> <enum name="COLOR_SAMPLES_NV" value="0x20B3" > <ext name="GLXAttribute" /> </enum> <enum name="RGBA_FLOAT_TYPE_ARB" value="0x20B9" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_COLOR_NV" value="0x20C3" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_ALPHA_NV" value="0x20C4" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_DEPTH_NV" value="0x20C5" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_ALPHA_NV" value="0x20C6" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_DEPTH_NV" value="0x20C7" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_FRAME_NV" value="0x20C8" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_FIELD_1_NV" value="0x20C9" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_FIELD_2_NV" value="0x20CA" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_1_2_NV" value="0x20CB" > <ext name="GLXAttribute" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_2_1_NV" value="0x20CC" > <ext name="GLXAttribute" /> </enum> <enum name="DEVICE_ID_NV" value="0x20CD" > <ext name="GLXAttribute" /> </enum> <enum name="UNIQUE_ID_NV" value="0x20CE" > <ext name="GLXAttribute" /> </enum> <enum name="NUM_VIDEO_CAPTURE_SLOTS_NV" value="0x20CF" > <ext name="GLXAttribute" /> </enum> <enum name="BIND_TO_TEXTURE_RGB_EXT" value="0x20D0" > <ext name="GLXAttribute" /> </enum> <enum name="BIND_TO_TEXTURE_RGBA_EXT" value="0x20D1" > <ext name="GLXAttribute" /> </enum> <enum name="BIND_TO_MIPMAP_TEXTURE_EXT" value="0x20D2" > <ext name="GLXAttribute" /> </enum> <enum name="BIND_TO_TEXTURE_TARGETS_EXT" value="0x20D3" > <ext name="GLXAttribute" /> </enum> <enum name="Y_INVERTED_EXT" value="0x20D4" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_FORMAT_EXT" value="0x20D5" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_TARGET_EXT" value="0x20D6" > <ext name="GLXAttribute" /> </enum> <enum name="MIPMAP_TEXTURE_EXT" value="0x20D7" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_FORMAT_NONE_EXT" value="0x20D8" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_FORMAT_RGB_EXT" value="0x20D9" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_FORMAT_RGBA_EXT" value="0x20DA" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_1D_EXT" value="0x20DB" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_2D_EXT" value="0x20DC" > <ext name="GLXAttribute" /> </enum> <enum name="TEXTURE_RECTANGLE_EXT" value="0x20DD" > <ext name="GLXAttribute" /> </enum> <enum name="FRONT_LEFT_EXT" value="0x20DE" > <ext name="GLXAttribute" /> </enum> <enum name="FRONT_RIGHT_EXT" value="0x20DF" > <ext name="GLXAttribute" /> </enum> <enum name="BACK_LEFT_EXT" value="0x20E0" > <ext name="GLXAttribute" /> </enum> <enum name="BACK_RIGHT_EXT" value="0x20E1" > <ext name="GLXAttribute" /> </enum> <enum name="FRONT_EXT" ref="FRONT_LEFT_EXT" > <ext name="GLXAttribute" /> </enum> <enum name="BACK_EXT" ref="BACK_LEFT_EXT" > <ext name="GLXAttribute" /> </enum> <enum name="AUX0_EXT" value="0x20E2" > <ext name="GLXAttribute" /> </enum> <enum name="AUX1_EXT" value="0x20E3" > <ext name="GLXAttribute" /> </enum> <enum name="AUX2_EXT" value="0x20E4" > <ext name="GLXAttribute" /> </enum> <enum name="AUX3_EXT" value="0x20E5" > <ext name="GLXAttribute" /> </enum> <enum name="AUX4_EXT" value="0x20E6" > <ext name="GLXAttribute" /> </enum> <enum name="AUX5_EXT" value="0x20E7" > <ext name="GLXAttribute" /> </enum> <enum name="AUX6_EXT" value="0x20E8" > <ext name="GLXAttribute" /> </enum> <enum name="AUX7_EXT" value="0x20E9" > <ext name="GLXAttribute" /> </enum> <enum name="AUX8_EXT" value="0x20EA" > <ext name="GLXAttribute" /> </enum> <enum name="AUX9_EXT" value="0x20EB" > <ext name="GLXAttribute" /> </enum> <enum name="NUM_VIDEO_SLOTS_NV" value="0x20F0" > <ext name="NV_present_video" /> </enum> <enum name="SWAP_INTERVAL_EXT" value="0x20F1" > <ext name="EXT_swap_control" /> </enum> <enum name="MAX_SWAP_INTERVAL_EXT" value="0x20F2" > <ext name="EXT_swap_control" /> </enum> <enum name="LATE_SWAPS_TEAR_EXT" value="0x20F3" > <ext name="EXT_swap_control_tear" /> </enum> <enum name="BACK_BUFFER_AGE_EXT" value="0x20F4" > <ext name="EXT_buffer_age" /> </enum> <enum name="GPU_VENDOR_AMD" value="0x1F00" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_RENDERER_STRING_AMD" value="0x1F01" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_OPENGL_VERSION_STRING_AMD" value="0x1F02" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_FASTEST_TARGET_GPUS_AMD" value="0x21A2" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_RAM_AMD" value="0x21A3" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_CLOCK_AMD" value="0x21A4" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_NUM_PIPES_AMD" value="0x21A5" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SIMD_AMD" value="0x21A6" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_NUM_RB_AMD" value="0x21A7" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SPI_AMD" value="0x21A8" > <ext name="GLX_AMD_gpu_association" /> </enum> <enum name="LOSE_CONTEXT_ON_RESET_ARB" value="0x8252" > <ext name="GLX_ARB_create_context_robustness" /> </enum> <enum name="CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB" value="0x8256" > <ext name="GLX_ARB_create_context_robustness" /> </enum> <enum name="NO_RESET_NOTIFICATION_ARB" value="0x8261" > <ext name="GLX_ARB_create_context_robustness" /> </enum> <enum name="CONTEXT_PROFILE_MASK_ARB" value="0x9126" > <ext name="ARB_create_context_profile" /> </enum> </enumerations> <functions > <passthru ><![CDATA[]]></passthru> <property-defs > <property name="glxvendorglx" any="true" /> <property name="vectorequiv" any="true" /> <property name="required-props" any="true" /> <property name="category" > <value >pixel-rw</value> <value >bgn-end</value> <value >display-list</value> <value >drawing</value> <value >drawing-control</value> <value >feedback</value> <value >framebuf</value> <value >misc</value> <value >modeling</value> <value >pixel-op</value> <value >pixel-rw</value> <value >state-req</value> <value >xform</value> <value >glx</value> <value >glxopcode</value> </property> <property name="dlflags" > <value >notlistable</value> <value >handcode</value> <value >nop</value> </property> <property name="glxopcode" any="true" /> <property name="glxflags" > <value >client-handcode</value> <value >server-handcode</value> </property> <property name="param" > <value >retval</value> <value >retained</value> </property> </property-defs> <function-defs > <function name="glXRender" return="void" category="glx" dlflags="notlistable" glxopcode="1" glxflags="client-handcode" /> <function name="glXRenderLarge" return="void" category="glx" dlflags="notlistable" glxopcode="2" glxflags="client-handcode" /> <function name="glXCreateContext" return="void" glxflags="client-handcode" category="glx" glxopcode="3" dlflags="notlistable" > <param name="gc_id" kind="value" type="Int32" input="true" /> <param name="screen" kind="value" type="Int32" input="true" /> <param name="visual" kind="value" type="Int32" input="true" /> <param name="share_list" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyContext" return="void" glxflags="client-handcode" category="glx" glxopcode="4" dlflags="notlistable" > <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXMakeCurrent" return="void" glxflags="client-handcode" category="glx" glxopcode="5" dlflags="notlistable" > <param name="drawable" kind="value" type="Int32" input="true" /> <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXIsDirect" return="void" glxflags="client-handcode" category="glx" glxopcode="6" dlflags="notlistable" > <param name="dpy" kind="value" type="Int32" input="true" /> <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXQueryVersion" return="void" dlflags="notlistable" category="glx" glxopcode="7" glxflags="client-handcode" > <param name="major" kind="reference" type="Int32" input="false" /> <param name="minor" kind="reference" type="Int32" input="false" /> </function> <function name="glXWaitGL" return="void" dlflags="notlistable" category="glx" glxopcode="8" glxflags="client-handcode" > <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXWaitX" return="void" category="glx" dlflags="notlistable" glxopcode="9" glxflags="client-handcode" /> <function name="glXCopyContext" return="void" dlflags="notlistable" category="glx" glxopcode="10" glxflags="client-handcode" > <param name="source" kind="value" type="Int32" input="true" /> <param name="dest" kind="value" type="Int32" input="true" /> <param name="mask" kind="value" type="Int32" input="true" /> </function> <function name="glXSwapBuffers" return="void" dlflags="notlistable" category="glx" glxopcode="11" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> </function> <function name="glXUseXFont" return="void" dlflags="notlistable" category="glx" glxopcode="12" glxflags="client-handcode" > <param name="font" kind="value" type="Int32" input="true" /> <param name="first" kind="value" type="Int32" input="true" /> <param name="count" kind="value" type="Int32" input="true" /> <param name="list_base" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateGLXPixmap" return="void" dlflags="notlistable" category="glx" glxopcode="13" glxflags="client-handcode" > <param name="visual" kind="value" type="Int32" input="true" /> <param name="pixmap" kind="value" type="Int32" input="true" /> <param name="glxpixmap" kind="value" type="Int32" input="true" /> </function> <function name="glXGetVisualConfigs" return="void" category="glx" dlflags="notlistable" glxopcode="14" glxflags="client-handcode" /> <function name="glXDestroyGLXPixmap" return="void" glxflags="client-handcode" category="glx" glxopcode="15" dlflags="notlistable" > <param name="pixmap" kind="value" type="Int32" input="true" /> </function> <function name="glXVendorPrivate" return="void" category="glx" glxflags="client-handcode" glxopcode="16" dlflags="notlistable" /> <function name="glXVendorPrivateWithReply" return="void" category="glx" glxflags="client-handcode" glxopcode="17" dlflags="notlistable" /> <function name="glXQueryExtensionsString" return="void" glxflags="client-handcode" category="glx" glxopcode="18" dlflags="notlistable" > <param name="screen" kind="value" type="Int32" input="true" /> </function> <function name="glXQueryServerString" return="void" glxflags="client-handcode" category="glx" glxopcode="19" dlflags="notlistable" > <param name="screen" kind="value" type="Int32" input="true" /> <param name="name" kind="value" type="Int32" input="true" /> </function> <function name="glXClientInfo" return="void" category="glx" glxflags="client-handcode" glxopcode="20" dlflags="notlistable" /> <function name="glXGetFBConfigs" return="void" category="glx" dlflags="notlistable" glxopcode="21" glxflags="client-handcode" /> <function name="glXCreatePixmap" return="void" dlflags="notlistable" category="glx" glxopcode="22" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="pixmap" kind="value" type="Int32" input="true" /> <param name="glxpixmap" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyPixmap" return="void" dlflags="notlistable" category="glx" glxopcode="23" glxflags="client-handcode" > <param name="glxpixmap" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateNewContext" return="void" dlflags="notlistable" category="glx" glxopcode="24" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="render_type" kind="value" type="Int32" input="true" /> <param name="share_list" kind="value" type="Int32" input="true" /> <param name="direct" kind="value" type="Int32" input="true" /> </function> <function name="glXQueryContext" return="void" category="glx" dlflags="notlistable" glxopcode="25" glxflags="client-handcode" /> <function name="glXMakeContextCurrent" return="void" dlflags="notlistable" category="glx" glxopcode="26" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> <param name="readdrawable" kind="value" type="Int32" input="true" /> <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXCreatePbuffer" return="void" dlflags="notlistable" category="glx" glxopcode="27" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="pbuffer" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyPbuffer" return="void" dlflags="notlistable" category="glx" glxopcode="28" glxflags="client-handcode" > <param name="pbuffer" kind="value" type="Int32" input="true" /> </function> <function name="glXGetDrawableAttributes" return="void" dlflags="notlistable" category="glx" glxopcode="29" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> </function> <function name="glXChangeDrawableAttributes" return="void" dlflags="notlistable" category="glx" glxopcode="30" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateWindow" return="void" dlflags="notlistable" category="glx" glxopcode="31" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="window" kind="value" type="Int32" input="true" /> <param name="glxwindow" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyWindow" return="void" dlflags="notlistable" category="glx" glxopcode="32" glxflags="client-handcode" > <param name="glxwindow" kind="value" type="Int32" input="true" /> </function> <function name="glXSwapIntervalSGI" return="void" glxvendorglx="65536" category="glx" glxflags="client-handcode" dlflags="notlistable" /> <function name="glXMakeCurrentReadSGI" return="void" glxvendorglx="65537" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="drawable" kind="value" type="Int32" input="true" /> <param name="readdrawable" kind="value" type="Int32" input="true" /> <param name="context" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateGLXVideoSourceSGIX" return="void" glxvendorglx="65538" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="value" type="Int32" input="true" /> <param name="screen" kind="value" type="Int32" input="true" /> <param name="server" kind="value" type="Int32" input="true" /> <param name="path" kind="value" type="Int32" input="true" /> <param name="class" kind="value" type="Int32" input="true" /> <param name="node" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyGLXVideoSourceSGIX" return="void" glxvendorglx="65539" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="value" type="Int32" input="true" /> <param name="glxvideosource" kind="value" type="Int32" input="true" /> </function> <function name="glXQueryContextInfoEXT" return="void" glxvendorglx="1024" category="glx" dlflags="notlistable" glxflags="client-handcode" /> <function name="glXGetFBConfigsSGIX" return="void" glxvendorglx="65540" category="glx" dlflags="notlistable" glxflags="client-handcode" /> <function name="glXCreateContextWithConfigSGIX" return="void" glxvendorglx="65541" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="gc_id" kind="value" type="Int32" input="true" /> <param name="screen" kind="value" type="Int32" input="true" /> <param name="config" kind="value" type="Int32" input="true" /> <param name="share_list" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateGLXPixmapWithConfigSGIX" return="void" glxvendorglx="65542" dlflags="notlistable" category="glx" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="pixmap" kind="value" type="Int32" input="true" /> <param name="glxpixmap" kind="value" type="Int32" input="true" /> </function> <function name="glXCreateGLXPbufferSGIX" return="void" glxvendorglx="65543" category="glx" dlflags="notlistable" glxflags="client-handcode" > <param name="config" kind="value" type="Int32" input="true" /> <param name="pbuffer" kind="value" type="Int32" input="true" /> </function> <function name="glXDestroyGLXPbufferSGIX" return="void" glxvendorglx="65544" category="glx" dlflags="notlistable" glxflags="client-handcode" > <param name="pbuffer" kind="value" type="Int32" input="true" /> </function> <function name="glXChangeDrawableAttributesSGIX" return="void" glxvendorglx="65545" category="glx" dlflags="notlistable" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> </function> <function name="glXGetDrawableAttributesSGIX" return="void" glxvendorglx="65546" category="glx" dlflags="notlistable" glxflags="client-handcode" > <param name="drawable" kind="value" type="Int32" input="true" /> </function> <function name="glXJoinSwapGroupSGIX" return="void" glxvendorglx="65547" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="window" kind="value" type="Int32" input="true" /> <param name="group" kind="value" type="Int32" input="true" /> </function> <function name="glXBindSwapBarrierSGIX" return="void" glxvendorglx="65548" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="window" kind="value" type="Int32" input="true" /> <param name="barrier" kind="value" type="Int32" input="true" /> </function> <function name="glXQueryMaxSwapBarriersSGIX" return="void" glxvendorglx="65549" category="glx" glxflags="client-handcode" dlflags="notlistable" /> <function name="glXQueryHyperpipeNetworkSGIX" return="GLXHyperpipeNetworkSGIXPointer" glxvendorglx="65550" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="npipes" kind="reference" type="int" input="false" /> </function> <function name="glXHyperpipeConfigSGIX" return="int" glxvendorglx="65552" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="networkId" kind="value" type="int" input="true" /> <param name="npipes" kind="value" type="int" input="true" /> <param name="cfg" kind="array[npipes]" type="GLXHyperpipeConfigSGIX" input="true" /> <param name="hpId" kind="reference" type="int" input="false" /> </function> <function name="glXQueryHyperpipeConfigSGIX" return="GLXHyperpipeConfigSGIXPointer" glxvendorglx="65551" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> <param name="npipes" kind="reference" type="int" input="false" /> </function> <function name="glXDestroyHyperpipeConfigSGIX" return="int" glxvendorglx="65553" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> </function> <function name="glXBindHyperpipeSGIX" return="int" glxvendorglx="???" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> </function> <function name="glXQueryHyperpipeBestAttribSGIX" return="int" glxvendorglx="???" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="attribList" kind="array[size]" type="void" input="true" /> <param name="returnAttribList" kind="array[size]" type="void" input="false" /> </function> <function name="glXHyperpipeAttribSGIX" return="int" glxvendorglx="???" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="attribList" kind="array[size]" type="void" input="true" /> </function> <function name="glXQueryHyperpipeAttribSGIX" return="int" glxvendorglx="???" glxflags="client-handcode" category="glx" dlflags="notlistable" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="returnAttribList" kind="array[size]" type="void" input="true" /> </function> </function-defs> </functions> </specification> |
Added jni/glshim/spec/xml/glxext.xml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 | <?xml version="1.0" encoding="UTF-8"?> <specification xmlns="http://www.opengl.org/registry/" name="GLX" specversion="1.3" fileversion="0.0.1" > <typemap > <type-def typename="GLXPixmap" C-lang="GLXPixmap" /> <type-def typename="FunctionPointer" C-lang="__GLXextFuncPtr" /> <type-def typename="GLXPbufferSGIX" C-lang="GLXPbufferSGIX" /> <type-def typename="long" C-lang="long" /> <type-def typename="DMbuffer" C-lang="DMbuffer" /> <type-def typename="GLXFBConfig" C-lang="GLXFBConfig" /> <type-def typename="VLServer" C-lang="VLServer" /> <type-def typename="GLXPbuffer" C-lang="GLXPbuffer" /> <type-def typename="int64_t" C-lang="int64_t" /> <type-def typename="GLXFBConfigSGIX" C-lang="GLXFBConfigSGIX" /> <type-def typename="GLubyte" C-lang="GLubyte" /> <type-def typename="GLenum" C-lang="GLenum" /> <type-def typename="VLPath" C-lang="VLPath" /> <type-def typename="GLXHyperpipeConfigSGIXPointer" C-lang="GLXHyperpipeConfigSGIX *" /> <type-def typename="constGLXContext" C-lang="const GLXContext" /> <type-def typename="GLXDrawable" C-lang="GLXDrawable" /> <type-def typename="Pixmap" C-lang="Pixmap" /> <type-def typename="Colormap" C-lang="Colormap" /> <type-def typename="GLXFBConfigPointer" C-lang="GLXFBConfig *" /> <type-def typename="Uint" C-lang="unsigned int" /> <type-def typename="int32_t" C-lang="int32_t" /> <type-def typename="GLint" C-lang="GLint" /> <type-def typename="uintPointer" C-lang="unsigned int *" /> <type-def typename="GLXVideoDeviceNV" C-lang="GLXVideoDeviceNV" /> <type-def typename="Window" C-lang="Window" /> <type-def typename="GLfunction" C-lang="GLfunction" /> <type-def typename="GLXVideoCaptureDeviceNVPointer" C-lang="GLXVideoCaptureDeviceNV *" /> <type-def typename="GLXVideoSourceSGIX" C-lang="GLXVideoSourceSGIX" /> <type-def typename="Display" C-lang="Display" /> <type-def typename="GLXFBConfigSGIXPointer" C-lang="GLXFBConfigSGIX *" /> <type-def typename="XVisualInfoPointer" C-lang="XVisualInfo *" /> <type-def typename="Status" C-lang="Status" /> <type-def typename="GLboolean" C-lang="GLboolean" /> <type-def typename="Bool" C-lang="Bool" /> <type-def typename="GLXVideoCaptureDeviceNV" C-lang="GLXVideoCaptureDeviceNV" /> <type-def typename="GLXHyperpipeNetworkSGIXPointer" C-lang="GLXHyperpipeNetworkSGIX *" /> <type-def typename="DisplayPointer" C-lang="Display *" /> <type-def typename="VLNode" C-lang="VLNode" /> <type-def typename="GLuint" C-lang="GLuint" /> <type-def typename="GLXContext" C-lang="GLXContext" /> <type-def typename="GLXContextID" C-lang="GLXContextID" /> <type-def typename="GLsizei" C-lang="GLsizei" /> <type-def typename="DMparams" C-lang="DMparams" /> <type-def typename="GLXHyperpipeConfigSGIX" C-lang="GLXHyperpipeConfigSGIX" /> <type-def typename="GLXWindow" C-lang="GLXWindow" /> <type-def typename="XVisualInfo" C-lang="XVisualInfo" /> <type-def typename="float" C-lang="float" /> <type-def typename="void" C-lang="void" /> <type-def typename="int" C-lang="int" /> <type-def typename="uint" C-lang="unsigned int" /> <type-def typename="ulong" C-lang="unsigned long" /> </typemap> <extensions > <ext name="ARB_get_proc_address" /> <ext name="ARB_multisample" /> <ext name="ARB_vertex_buffer_object" /> <ext name="ARB_fbconfig_float" /> <ext name="ARB_framebuffer_sRGB" /> <ext name="ARB_create_context" /> <ext name="ARB_create_context_profile" /> <ext name="ARB_create_context_robustness" /> <ext name="SGIS_multisample" /> <ext name="EXT_visual_info" /> <ext name="SGI_swap_control" /> <ext name="SGI_video_sync" /> <ext name="SGI_make_current_read" /> <ext name="SGIX_video_source" /> <ext name="EXT_visual_rating" /> <ext name="EXT_import_context" /> <ext name="SGIX_fbconfig" /> <ext name="SGIX_pbuffer" /> <ext name="SGI_cushion" /> <ext name="SGIX_video_resize" /> <ext name="SGIX_dmbuffer" /> <ext name="SGIX_swap_group" /> <ext name="SGIX_swap_barrier" /> <ext name="SGIS_blended_overlay" /> <ext name="SGIS_shared_multisample" /> <ext name="SUN_get_transparent_index" /> <ext name="3DFX_multisample" /> <ext name="MESA_copy_sub_buffer" /> <ext name="MESA_pixmap_colormap" /> <ext name="MESA_release_buffers" /> <ext name="MESA_set_3dfx_mode" /> <ext name="SGIX_visual_select_group" /> <ext name="OML_swap_method" /> <ext name="OML_sync_control" /> <ext name="NV_float_buffer" /> <ext name="SGIX_hyperpipe" /> <ext name="MESA_agp_offset" /> <ext name="EXT_fbconfig_packed_float" /> <ext name="EXT_framebuffer_sRGB" /> <ext name="EXT_texture_from_pixmap" /> <ext name="NV_present_video" /> <ext name="NV_video_out" /> <ext name="NV_swap_group" /> <ext name="NV_video_capture" /> <ext name="EXT_swap_control" /> <ext name="NV_copy_image" /> <ext name="INTEL_swap_event" /> <ext name="NV_multisample_coverage" /> <ext name="AMD_gpu_association" /> <ext name="EXT_create_context_es2_profile" /> <ext name="EXT_create_context_es_profile" /> <ext name="EXT_swap_control_tear" /> <ext name="EXT_buffer_age" /> </extensions> <enumerations > <enum name="WINDOW_BIT" value="0x00000001" version="1.3" /> <enum name="PIXMAP_BIT" value="0x00000002" version="1.3" /> <enum name="PBUFFER_BIT" value="0x00000004" version="1.3" /> <enum name="RGBA_BIT" value="0x00000001" version="1.3" /> <enum name="COLOR_INDEX_BIT" value="0x00000002" version="1.3" /> <enum name="PBUFFER_CLOBBER_MASK" value="0x08000000" version="1.3" /> <enum name="FRONT_LEFT_BUFFER_BIT" value="0x00000001" version="1.3" /> <enum name="FRONT_RIGHT_BUFFER_BIT" value="0x00000002" version="1.3" /> <enum name="BACK_LEFT_BUFFER_BIT" value="0x00000004" version="1.3" /> <enum name="BACK_RIGHT_BUFFER_BIT" value="0x00000008" version="1.3" /> <enum name="AUX_BUFFERS_BIT" value="0x00000010" version="1.3" /> <enum name="DEPTH_BUFFER_BIT" value="0x00000020" version="1.3" /> <enum name="STENCIL_BUFFER_BIT" value="0x00000040" version="1.3" /> <enum name="ACCUM_BUFFER_BIT" value="0x00000080" version="1.3" /> <enum name="CONFIG_CAVEAT" value="0x20" version="1.3" /> <enum name="X_VISUAL_TYPE" value="0x22" version="1.3" /> <enum name="TRANSPARENT_TYPE" value="0x23" version="1.3" /> <enum name="TRANSPARENT_INDEX_VALUE" value="0x24" version="1.3" /> <enum name="TRANSPARENT_RED_VALUE" value="0x25" version="1.3" /> <enum name="TRANSPARENT_GREEN_VALUE" value="0x26" version="1.3" /> <enum name="TRANSPARENT_BLUE_VALUE" value="0x27" version="1.3" /> <enum name="TRANSPARENT_ALPHA_VALUE" value="0x28" version="1.3" /> <enum name="DONT_CARE" value="0xFFFFFFFF" version="1.3" /> <enum name="NONE" value="0x8000" version="1.3" /> <enum name="SLOW_CONFIG" value="0x8001" version="1.3" /> <enum name="TRUE_COLOR" value="0x8002" version="1.3" /> <enum name="DIRECT_COLOR" value="0x8003" version="1.3" /> <enum name="PSEUDO_COLOR" value="0x8004" version="1.3" /> <enum name="STATIC_COLOR" value="0x8005" version="1.3" /> <enum name="GRAY_SCALE" value="0x8006" version="1.3" /> <enum name="STATIC_GRAY" value="0x8007" version="1.3" /> <enum name="TRANSPARENT_RGB" value="0x8008" version="1.3" /> <enum name="TRANSPARENT_INDEX" value="0x8009" version="1.3" /> <enum name="VISUAL_ID" value="0x800B" version="1.3" /> <enum name="SCREEN" value="0x800C" version="1.3" /> <enum name="NON_CONFORMANT_CONFIG" value="0x800D" version="1.3" /> <enum name="DRAWABLE_TYPE" value="0x8010" version="1.3" /> <enum name="RENDER_TYPE" value="0x8011" version="1.3" /> <enum name="X_RENDERABLE" value="0x8012" version="1.3" /> <enum name="FBCONFIG_ID" value="0x8013" version="1.3" /> <enum name="RGBA_TYPE" value="0x8014" version="1.3" /> <enum name="COLOR_INDEX_TYPE" value="0x8015" version="1.3" /> <enum name="MAX_PBUFFER_WIDTH" value="0x8016" version="1.3" /> <enum name="MAX_PBUFFER_HEIGHT" value="0x8017" version="1.3" /> <enum name="MAX_PBUFFER_PIXELS" value="0x8018" version="1.3" /> <enum name="PRESERVED_CONTENTS" value="0x801B" version="1.3" /> <enum name="LARGEST_PBUFFER" value="0x801C" version="1.3" /> <enum name="WIDTH" value="0x801D" version="1.3" /> <enum name="HEIGHT" value="0x801E" version="1.3" /> <enum name="EVENT_MASK" value="0x801F" version="1.3" /> <enum name="DAMAGED" value="0x8020" version="1.3" /> <enum name="SAVED" value="0x8021" version="1.3" /> <enum name="WINDOW" value="0x8022" version="1.3" /> <enum name="PBUFFER" value="0x8023" version="1.3" /> <enum name="PBUFFER_HEIGHT" value="0x8040" version="1.3" /> <enum name="PBUFFER_WIDTH" value="0x8041" version="1.3" /> <enum name="SAMPLE_BUFFERS" value="100000" version="1.4" /> <enum name="SAMPLES" value="100001" version="1.4" /> <enum name="SAMPLE_BUFFERS_ARB" value="100000" > <ext name="ARB_multisample" /> </enum> <enum name="SAMPLES_ARB" value="100001" > <ext name="ARB_multisample" /> </enum> <enum name="CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB" value="0x2095" > <ext name="ARB_vertex_buffer_object" /> </enum> <enum name="RGBA_FLOAT_TYPE_ARB" value="0x20B9" > <ext name="ARB_fbconfig_float" /> </enum> <enum name="RGBA_FLOAT_BIT_ARB" value="0x00000004" > <ext name="ARB_fbconfig_float" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_ARB" value="0x20B2" > <ext name="ARB_framebuffer_sRGB" /> </enum> <enum name="CONTEXT_DEBUG_BIT_ARB" value="0x00000001" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_FORWARD_COMPATIBLE_BIT_ARB" value="0x00000002" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_MAJOR_VERSION_ARB" value="0x2091" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_MINOR_VERSION_ARB" value="0x2092" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_FLAGS_ARB" value="0x2094" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_CORE_PROFILE_BIT_ARB" value="0x00000001" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB" value="0x00000002" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_PROFILE_MASK_ARB" value="0x9126" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_ROBUST_ACCESS_BIT_ARB" value="0x00000004" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="LOSE_CONTEXT_ON_RESET_ARB" value="0x8252" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB" value="0x8256" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="NO_RESET_NOTIFICATION_ARB" value="0x8261" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="SAMPLE_BUFFERS_SGIS" value="100000" > <ext name="SGIS_multisample" /> </enum> <enum name="SAMPLES_SGIS" value="100001" > <ext name="SGIS_multisample" /> </enum> <enum name="X_VISUAL_TYPE_EXT" value="0x22" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_TYPE_EXT" value="0x23" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_INDEX_VALUE_EXT" value="0x24" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_RED_VALUE_EXT" value="0x25" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_GREEN_VALUE_EXT" value="0x26" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_BLUE_VALUE_EXT" value="0x27" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_ALPHA_VALUE_EXT" value="0x28" > <ext name="EXT_visual_info" /> </enum> <enum name="NONE_EXT" value="0x8000" > <ext name="EXT_visual_info" /> <ext name="EXT_visual_rating" /> </enum> <enum name="TRUE_COLOR_EXT" value="0x8002" > <ext name="EXT_visual_info" /> </enum> <enum name="DIRECT_COLOR_EXT" value="0x8003" > <ext name="EXT_visual_info" /> </enum> <enum name="PSEUDO_COLOR_EXT" value="0x8004" > <ext name="EXT_visual_info" /> </enum> <enum name="STATIC_COLOR_EXT" value="0x8005" > <ext name="EXT_visual_info" /> </enum> <enum name="GRAY_SCALE_EXT" value="0x8006" > <ext name="EXT_visual_info" /> </enum> <enum name="STATIC_GRAY_EXT" value="0x8007" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_RGB_EXT" value="0x8008" > <ext name="EXT_visual_info" /> </enum> <enum name="TRANSPARENT_INDEX_EXT" value="0x8009" > <ext name="EXT_visual_info" /> </enum> <enum name="VISUAL_CAVEAT_EXT" value="0x20" > <ext name="EXT_visual_rating" /> </enum> <enum name="SLOW_VISUAL_EXT" value="0x8001" > <ext name="EXT_visual_rating" /> </enum> <enum name="NON_CONFORMANT_VISUAL_EXT" value="0x800D" > <ext name="EXT_visual_rating" /> </enum> <enum name="SHARE_CONTEXT_EXT" value="0x800A" > <ext name="EXT_import_context" /> </enum> <enum name="VISUAL_ID_EXT" value="0x800B" > <ext name="EXT_import_context" /> </enum> <enum name="SCREEN_EXT" value="0x800C" > <ext name="EXT_import_context" /> <ext name="SGIX_fbconfig" /> </enum> <enum name="WINDOW_BIT_SGIX" value="0x00000001" > <ext name="SGIX_fbconfig" /> </enum> <enum name="PIXMAP_BIT_SGIX" value="0x00000002" > <ext name="SGIX_fbconfig" /> </enum> <enum name="RGBA_BIT_SGIX" value="0x00000001" > <ext name="SGIX_fbconfig" /> </enum> <enum name="COLOR_INDEX_BIT_SGIX" value="0x00000002" > <ext name="SGIX_fbconfig" /> </enum> <enum name="DRAWABLE_TYPE_SGIX" value="0x8010" > <ext name="SGIX_fbconfig" /> </enum> <enum name="RENDER_TYPE_SGIX" value="0x8011" > <ext name="SGIX_fbconfig" /> </enum> <enum name="X_RENDERABLE_SGIX" value="0x8012" > <ext name="SGIX_fbconfig" /> </enum> <enum name="FBCONFIG_ID_SGIX" value="0x8013" > <ext name="SGIX_fbconfig" /> </enum> <enum name="RGBA_TYPE_SGIX" value="0x8014" > <ext name="SGIX_fbconfig" /> </enum> <enum name="COLOR_INDEX_TYPE_SGIX" value="0x8015" > <ext name="SGIX_fbconfig" /> </enum> <enum name="PBUFFER_BIT_SGIX" value="0x00000004" > <ext name="SGIX_pbuffer" /> </enum> <enum name="BUFFER_CLOBBER_MASK_SGIX" value="0x08000000" > <ext name="SGIX_pbuffer" /> </enum> <enum name="FRONT_LEFT_BUFFER_BIT_SGIX" value="0x00000001" > <ext name="SGIX_pbuffer" /> </enum> <enum name="FRONT_RIGHT_BUFFER_BIT_SGIX" value="0x00000002" > <ext name="SGIX_pbuffer" /> </enum> <enum name="BACK_LEFT_BUFFER_BIT_SGIX" value="0x00000004" > <ext name="SGIX_pbuffer" /> </enum> <enum name="BACK_RIGHT_BUFFER_BIT_SGIX" value="0x00000008" > <ext name="SGIX_pbuffer" /> </enum> <enum name="AUX_BUFFERS_BIT_SGIX" value="0x00000010" > <ext name="SGIX_pbuffer" /> </enum> <enum name="DEPTH_BUFFER_BIT_SGIX" value="0x00000020" > <ext name="SGIX_pbuffer" /> </enum> <enum name="STENCIL_BUFFER_BIT_SGIX" value="0x00000040" > <ext name="SGIX_pbuffer" /> </enum> <enum name="ACCUM_BUFFER_BIT_SGIX" value="0x00000080" > <ext name="SGIX_pbuffer" /> </enum> <enum name="SAMPLE_BUFFERS_BIT_SGIX" value="0x00000100" > <ext name="SGIX_pbuffer" /> </enum> <enum name="MAX_PBUFFER_WIDTH_SGIX" value="0x8016" > <ext name="SGIX_pbuffer" /> </enum> <enum name="MAX_PBUFFER_HEIGHT_SGIX" value="0x8017" > <ext name="SGIX_pbuffer" /> </enum> <enum name="MAX_PBUFFER_PIXELS_SGIX" value="0x8018" > <ext name="SGIX_pbuffer" /> </enum> <enum name="OPTIMAL_PBUFFER_WIDTH_SGIX" value="0x8019" > <ext name="SGIX_pbuffer" /> </enum> <enum name="OPTIMAL_PBUFFER_HEIGHT_SGIX" value="0x801A" > <ext name="SGIX_pbuffer" /> </enum> <enum name="PRESERVED_CONTENTS_SGIX" value="0x801B" > <ext name="SGIX_pbuffer" /> </enum> <enum name="LARGEST_PBUFFER_SGIX" value="0x801C" > <ext name="SGIX_pbuffer" /> </enum> <enum name="WIDTH_SGIX" value="0x801D" > <ext name="SGIX_pbuffer" /> </enum> <enum name="HEIGHT_SGIX" value="0x801E" > <ext name="SGIX_pbuffer" /> </enum> <enum name="EVENT_MASK_SGIX" value="0x801F" > <ext name="SGIX_pbuffer" /> </enum> <enum name="DAMAGED_SGIX" value="0x8020" > <ext name="SGIX_pbuffer" /> </enum> <enum name="SAVED_SGIX" value="0x8021" > <ext name="SGIX_pbuffer" /> </enum> <enum name="WINDOW_SGIX" value="0x8022" > <ext name="SGIX_pbuffer" /> </enum> <enum name="PBUFFER_SGIX" value="0x8023" > <ext name="SGIX_pbuffer" /> </enum> <enum name="SYNC_FRAME_SGIX" value="0x00000000" > <ext name="SGIX_video_resize" /> </enum> <enum name="SYNC_SWAP_SGIX" value="0x00000001" > <ext name="SGIX_video_resize" /> </enum> <enum name="DIGITAL_MEDIA_PBUFFER_SGIX" value="0x8024" > <ext name="SGIX_dmbuffer" /> </enum> <enum name="BLENDED_RGBA_SGIS" value="0x8025" > <ext name="SGIS_blended_overlay" /> </enum> <enum name="MULTISAMPLE_SUB_RECT_WIDTH_SGIS" value="0x8026" > <ext name="SGIS_shared_multisample" /> </enum> <enum name="MULTISAMPLE_SUB_RECT_HEIGHT_SGIS" value="0x8027" > <ext name="SGIS_shared_multisample" /> </enum> <enum name="SAMPLE_BUFFERS_3DFX" value="0x8050" > <ext name="3DFX_multisample" /> </enum> <enum name="SAMPLES_3DFX" value="0x8051" > <ext name="3DFX_multisample" /> </enum> <enum name="3DFX_WINDOW_MODE_MESA" value="0x1" > <ext name="MESA_set_3dfx_mode" /> </enum> <enum name="3DFX_FULLSCREEN_MODE_MESA" value="0x2" > <ext name="MESA_set_3dfx_mode" /> </enum> <enum name="VISUAL_SELECT_GROUP_SGIX" value="0x8028" > <ext name="SGIX_visual_select_group" /> </enum> <enum name="SWAP_METHOD_OML" value="0x8060" > <ext name="OML_swap_method" /> </enum> <enum name="SWAP_EXCHANGE_OML" value="0x8061" > <ext name="OML_swap_method" /> </enum> <enum name="SWAP_COPY_OML" value="0x8062" > <ext name="OML_swap_method" /> </enum> <enum name="SWAP_UNDEFINED_OML" value="0x8063" > <ext name="OML_swap_method" /> </enum> <enum name="FLOAT_COMPONENTS_NV" value="0x20B0" > <ext name="NV_float_buffer" /> </enum> <enum name="HYPERPIPE_PIPE_NAME_LENGTH_SGIX" value="80" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="BAD_HYPERPIPE_CONFIG_SGIX" value="91" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="BAD_HYPERPIPE_SGIX" value="92" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="HYPERPIPE_DISPLAY_PIPE_SGIX" value="0x00000001" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="HYPERPIPE_RENDER_PIPE_SGIX" value="0x00000002" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="PIPE_RECT_SGIX" value="0x00000001" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="PIPE_RECT_LIMITS_SGIX" value="0x00000002" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="HYPERPIPE_STEREO_SGIX" value="0x00000003" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="HYPERPIPE_PIXEL_AVERAGE_SGIX" value="0x00000004" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="HYPERPIPE_ID_SGIX" value="0x8030" > <ext name="SGIX_hyperpipe" /> </enum> <enum name="RGBA_UNSIGNED_FLOAT_TYPE_EXT" value="0x20B1" > <ext name="EXT_fbconfig_packed_float" /> </enum> <enum name="RGBA_UNSIGNED_FLOAT_BIT_EXT" value="0x00000008" > <ext name="EXT_fbconfig_packed_float" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_EXT" value="0x20B2" > <ext name="EXT_framebuffer_sRGB" /> </enum> <enum name="TEXTURE_1D_BIT_EXT" value="0x00000001" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_2D_BIT_EXT" value="0x00000002" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_RECTANGLE_BIT_EXT" value="0x00000004" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BIND_TO_TEXTURE_RGB_EXT" value="0x20D0" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BIND_TO_TEXTURE_RGBA_EXT" value="0x20D1" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BIND_TO_MIPMAP_TEXTURE_EXT" value="0x20D2" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BIND_TO_TEXTURE_TARGETS_EXT" value="0x20D3" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="Y_INVERTED_EXT" value="0x20D4" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_FORMAT_EXT" value="0x20D5" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_TARGET_EXT" value="0x20D6" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="MIPMAP_TEXTURE_EXT" value="0x20D7" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_FORMAT_NONE_EXT" value="0x20D8" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_FORMAT_RGB_EXT" value="0x20D9" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_FORMAT_RGBA_EXT" value="0x20DA" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_1D_EXT" value="0x20DB" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_2D_EXT" value="0x20DC" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="TEXTURE_RECTANGLE_EXT" value="0x20DD" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="FRONT_LEFT_EXT" value="0x20DE" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="FRONT_RIGHT_EXT" value="0x20DF" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BACK_LEFT_EXT" value="0x20E0" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BACK_RIGHT_EXT" value="0x20E1" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="FRONT_EXT" ref="FRONT_LEFT_EXT" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="BACK_EXT" ref="BACK_LEFT_EXT" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX0_EXT" value="0x20E2" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX1_EXT" value="0x20E3" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX2_EXT" value="0x20E4" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX3_EXT" value="0x20E5" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX4_EXT" value="0x20E6" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX5_EXT" value="0x20E7" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX6_EXT" value="0x20E8" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX7_EXT" value="0x20E9" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX8_EXT" value="0x20EA" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="AUX9_EXT" value="0x20EB" > <ext name="EXT_texture_from_pixmap" /> </enum> <enum name="NUM_VIDEO_SLOTS_NV" value="0x20F0" > <ext name="NV_present_video" /> </enum> <enum name="VIDEO_OUT_COLOR_NV" value="0x20C3" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_ALPHA_NV" value="0x20C4" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_DEPTH_NV" value="0x20C5" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_ALPHA_NV" value="0x20C6" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_DEPTH_NV" value="0x20C7" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_FRAME_NV" value="0x20C8" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_FIELD_1_NV" value="0x20C9" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_FIELD_2_NV" value="0x20CA" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_1_2_NV" value="0x20CB" > <ext name="NV_video_out" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_2_1_NV" value="0x20CC" > <ext name="NV_video_out" /> </enum> <enum name="DEVICE_ID_NV" value="0x20CD" > <ext name="NV_video_capture" /> </enum> <enum name="UNIQUE_ID_NV" value="0x20CE" > <ext name="NV_video_capture" /> </enum> <enum name="NUM_VIDEO_CAPTURE_SLOTS_NV" value="0x20CF" > <ext name="NV_video_capture" /> </enum> <enum name="SWAP_INTERVAL_EXT" value="0x20F1" > <ext name="EXT_swap_control" /> </enum> <enum name="MAX_SWAP_INTERVAL_EXT" value="0x20F2" > <ext name="EXT_swap_control" /> </enum> <enum name="BUFFER_SWAP_COMPLETE_INTEL_MASK" value="0x04000000" > <ext name="INTEL_swap_event" /> </enum> <enum name="EXCHANGE_COMPLETE_INTEL" value="0x8180" > <ext name="INTEL_swap_event" /> </enum> <enum name="COPY_COMPLETE_INTEL" value="0x8181" > <ext name="INTEL_swap_event" /> </enum> <enum name="FLIP_COMPLETE_INTEL" value="0x8182" > <ext name="INTEL_swap_event" /> </enum> <enum name="COVERAGE_SAMPLES_NV" value="100001" > <ext name="NV_multisample_coverage" /> </enum> <enum name="COLOR_SAMPLES_NV" value="0x20B3" > <ext name="NV_multisample_coverage" /> </enum> <enum name="GPU_VENDOR_AMD" value="0x1F00" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_RENDERER_STRING_AMD" value="0x1F01" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_OPENGL_VERSION_STRING_AMD" value="0x1F02" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_FASTEST_TARGET_GPUS_AMD" value="0x21A2" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_RAM_AMD" value="0x21A3" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_CLOCK_AMD" value="0x21A4" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_PIPES_AMD" value="0x21A5" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SIMD_AMD" value="0x21A6" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_RB_AMD" value="0x21A7" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SPI_AMD" value="0x21A8" > <ext name="AMD_gpu_association" /> </enum> <enum name="CONTEXT_ES2_PROFILE_BIT_EXT" value="0x00000004" > <ext name="EXT_create_context_es2_profile" /> </enum> <enum name="CONTEXT_ES_PROFILE_BIT_EXT" value="0x00000004" > <ext name="EXT_create_context_es_profile" /> </enum> <enum name="LATE_SWAPS_TEAR_EXT" value="0x20F3" > <ext name="EXT_swap_control_tear" /> </enum> <enum name="BACK_BUFFER_AGE_EXT" value="0x20F4" > <ext name="EXT_buffer_age" /> </enum> </enumerations> <functions > <passthru ><![CDATA[#ifndef GLX_ARB_get_proc_address typedef void (*__GLXextFuncPtr)(void); #endif #ifndef GLX_SGIX_video_source typedef XID GLXVideoSourceSGIX; #endif #ifndef GLX_SGIX_fbconfig typedef XID GLXFBConfigIDSGIX; typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; #endif #ifndef GLX_SGIX_pbuffer typedef XID GLXPbufferSGIX; typedef struct { int type; unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came for SendEvent request */ Display *display; /* display the event was read from */ GLXDrawable drawable; /* i.d. of Drawable */ int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ unsigned int mask; /* mask indicating which buffers are affected*/ int x, y; int width, height; int count; /* if nonzero, at least this many more */ } GLXBufferClobberEventSGIX; #endif #ifndef GLX_NV_video_output typedef unsigned int GLXVideoDeviceNV; #endif #ifndef GLX_NV_video_capture typedef XID GLXVideoCaptureDeviceNV; #endif #ifndef GLEXT_64_TYPES_DEFINED /* This code block is duplicated in glext.h, so must be protected */ #define GLEXT_64_TYPES_DEFINED /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ /* (as used in the GLX_OML_sync_control extension). */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #include <inttypes.h> #elif defined(__sun__) || defined(__digital__) #include <inttypes.h> #if defined(__STDC__) #if defined(__arch64__) || defined(_LP64) typedef long int int64_t; typedef unsigned long int uint64_t; #else typedef long long int int64_t; typedef unsigned long long int uint64_t; #endif /* __arch64__ */ #endif /* __STDC__ */ #elif defined( __VMS ) || defined(__sgi) #include <inttypes.h> #elif defined(__SCO__) || defined(__USLC__) #include <stdint.h> #elif defined(__UNIXOS2__) || defined(__SOL64__) typedef long int int32_t; typedef long long int int64_t; typedef unsigned long long int uint64_t; #elif defined(_WIN32) && defined(__GNUC__) #include <stdint.h> #elif defined(_WIN32) typedef __int32 int32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #else #include <inttypes.h> /* Fallback option */ #endif #endif]]></passthru> <property-defs > <property name="glxvendorglx" any="true" /> <property name="vectorequiv" any="true" /> <property name="required-props" any="true" /> <property name="category" > <value >VERSION_1_3</value> <value >VERSION_1_4</value> <value >ARB_get_proc_address</value> <value >ARB_multisample</value> <value >ARB_fbconfig_float</value> <value >EXT_import_context</value> <value >SGIX_dmbuffer</value> <value >SGIX_fbconfig</value> <value >SGIX_pbuffer</value> <value >SGIX_swap_barrier</value> <value >SGIX_swap_group</value> <value >SGIX_video_resize</value> <value >SGIX_video_source</value> <value >SGI_cushion</value> <value >SGI_make_current_read</value> <value >SGI_swap_control</value> <value >SGI_video_sync</value> <value >SUN_get_transparent_index</value> <value >MESA_agp_offset</value> <value >MESA_copy_sub_buffer</value> <value >MESA_pixmap_colormap</value> <value >MESA_release_buffers</value> <value >MESA_set_3dfx_mode</value> <value >SGIX_visual_select_group</value> <value >OML_sync_control</value> <value >SGIX_hyperpipe</value> <value >EXT_texture_from_pixmap</value> <value >NV_swap_group</value> <value >NV_video_output</value> <value >NV_present_video</value> <value >ARB_create_context</value> <value >NV_video_capture</value> <value >NV_copy_image</value> <value >EXT_swap_control</value> <value >ARB_framebuffer_sRGB</value> </property> <property name="glxflags" > <value >client-handcode</value> <value >client-intercept</value> <value >server-handcode</value> </property> <property name="glxopcode" any="true" /> <property name="passthru" any="true" /> <property name="param" > <value >retval</value> <value >retained</value> </property> </property-defs> <function-defs > <function name="glXGetFBConfigs" return="GLXFBConfigPointer" category="VERSION_1_3" glxopcode="21" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="nelements" kind="reference" type="int" input="false" /> </function> <function name="glXChooseFBConfig" return="GLXFBConfigPointer" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> <param name="nelements" kind="reference" type="int" input="false" /> </function> <function name="glXGetFBConfigAttrib" return="int" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="int" input="false" /> </function> <function name="glXGetVisualFromFBConfig" return="XVisualInfoPointer" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> </function> <function name="glXCreateWindow" return="GLXWindow" category="VERSION_1_3" glxopcode="31" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="win" kind="value" type="Window" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXDestroyWindow" return="void" category="VERSION_1_3" glxopcode="32" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="win" kind="value" type="GLXWindow" input="true" /> </function> <function name="glXCreatePixmap" return="GLXPixmap" category="VERSION_1_3" glxopcode="22" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="pixmap" kind="value" type="Pixmap" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXDestroyPixmap" return="void" category="VERSION_1_3" glxopcode="23" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pixmap" kind="value" type="GLXPixmap" input="true" /> </function> <function name="glXCreatePbuffer" return="GLXPbuffer" category="VERSION_1_3" glxopcode="27" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXDestroyPbuffer" return="void" category="VERSION_1_3" glxopcode="28" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuf" kind="value" type="GLXPbuffer" input="true" /> </function> <function name="glXQueryDrawable" return="void" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="draw" kind="value" type="GLXDrawable" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="uint" input="false" /> </function> <function name="glXCreateNewContext" return="GLXContext" category="VERSION_1_3" glxopcode="24" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="render_type" kind="value" type="int" input="true" /> <param name="share_list" kind="value" type="GLXContext" input="true" /> <param name="direct" kind="value" type="Bool" input="true" /> </function> <function name="glXMakeContextCurrent" return="Bool" category="VERSION_1_3" glxopcode="26" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="draw" kind="value" type="GLXDrawable" input="true" /> <param name="read" kind="value" type="GLXDrawable" input="true" /> <param name="ctx" kind="value" type="GLXContext" input="true" /> </function> <function name="glXGetCurrentReadDrawable" return="GLXDrawable" category="VERSION_1_3" glxflags="client-handcode" /> <function name="glXGetCurrentDisplay" return="DisplayPointer" category="VERSION_1_3" glxflags="client-handcode" /> <function name="glXQueryContext" return="int" category="VERSION_1_3" glxopcode="25" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="ctx" kind="value" type="GLXContext" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="int" input="false" /> </function> <function name="glXSelectEvent" return="void" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="draw" kind="value" type="GLXDrawable" input="true" /> <param name="event_mask" kind="value" type="ulong" input="true" /> </function> <function name="glXGetSelectedEvent" return="void" category="VERSION_1_3" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="draw" kind="value" type="GLXDrawable" input="true" /> <param name="event_mask" kind="reference" type="ulong" input="false" /> </function> <function name="glXGetProcAddress" return="FunctionPointer" category="VERSION_1_4" glxflags="client-handcode" > <param name="procName" kind="reference" type="GLubyte" input="true" /> </function> <function name="glXGetProcAddressARB" return="FunctionPointer" category="ARB_get_proc_address" glxflags="client-handcode" > <param name="procName" kind="reference" type="GLubyte" input="true" /> </function> <function name="glXCreateContextAttribsARB" return="GLXContext" category="ARB_create_context" glxopcode="34" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfig" input="true" /> <param name="share_context" kind="value" type="GLXContext" input="true" /> <param name="direct" kind="value" type="Bool" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXSwapIntervalSGI" return="int" glxvendorglx="65536" category="SGI_swap_control" glxflags="client-handcode" > <param name="interval" kind="value" type="int" input="true" /> </function> <function name="glXGetVideoSyncSGI" return="int" category="SGI_video_sync" glxflags="client-handcode" > <param name="count" kind="reference" type="uint" input="false" /> </function> <function name="glXWaitVideoSyncSGI" return="int" category="SGI_video_sync" glxflags="client-handcode" > <param name="divisor" kind="value" type="int" input="true" /> <param name="remainder" kind="value" type="int" input="true" /> <param name="count" kind="reference" type="uint" input="false" /> </function> <function name="glXMakeCurrentReadSGI" return="Bool" glxvendorglx="65537" category="SGI_make_current_read" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="draw" kind="value" type="GLXDrawable" input="true" /> <param name="read" kind="value" type="GLXDrawable" input="true" /> <param name="ctx" kind="value" type="GLXContext" input="true" /> </function> <function name="glXGetCurrentReadDrawableSGI" return="GLXDrawable" category="SGI_make_current_read" glxflags="client-handcode" /> <function name="glXCreateGLXVideoSourceSGIX" return="GLXVideoSourceSGIX" glxvendorglx="65538" category="SGIX_video_source" glxflags="client-handcode" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="server" kind="value" type="VLServer" input="true" /> <param name="path" kind="value" type="VLPath" input="true" /> <param name="nodeClass" kind="value" type="int" input="true" /> <param name="drainNode" kind="value" type="VLNode" input="true" /> </function> <function name="glXDestroyGLXVideoSourceSGIX" return="void" glxvendorglx="65539" category="SGIX_video_source" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="glxvideosource" kind="value" type="GLXVideoSourceSGIX" input="true" /> </function> <function name="glXGetCurrentDisplayEXT" return="DisplayPointer" category="EXT_import_context" glxflags="client-handcode" /> <function name="glXQueryContextInfoEXT" return="int" glxvendorglx="1024" category="EXT_import_context" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="context" kind="value" type="GLXContext" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="int" input="false" /> </function> <function name="glXGetContextIDEXT" return="GLXContextID" category="EXT_import_context" glxflags="client-handcode" > <param name="context" kind="value" type="constGLXContext" input="true" /> </function> <function name="glXImportContextEXT" return="GLXContext" category="EXT_import_context" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="contextID" kind="value" type="GLXContextID" input="true" /> </function> <function name="glXFreeContextEXT" return="void" category="EXT_import_context" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="context" kind="value" type="GLXContext" input="true" /> </function> <function name="glXGetFBConfigAttribSGIX" return="int" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfigSGIX" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="int" input="false" /> </function> <function name="glXChooseFBConfigSGIX" return="GLXFBConfigSGIXPointer" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="attrib_list" kind="reference" type="int" input="false" /> <param name="nelements" kind="reference" type="int" input="false" /> </function> <function name="glXCreateGLXPixmapWithConfigSGIX" return="GLXPixmap" glxvendorglx="65542" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfigSGIX" input="true" /> <param name="pixmap" kind="value" type="Pixmap" input="true" /> </function> <function name="glXCreateContextWithConfigSGIX" return="GLXContext" glxvendorglx="65541" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfigSGIX" input="true" /> <param name="render_type" kind="value" type="int" input="true" /> <param name="share_list" kind="value" type="GLXContext" input="true" /> <param name="direct" kind="value" type="Bool" input="true" /> </function> <function name="glXGetVisualFromFBConfigSGIX" return="XVisualInfoPointer" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfigSGIX" input="true" /> </function> <function name="glXGetFBConfigFromVisualSGIX" return="GLXFBConfigSGIX" category="SGIX_fbconfig" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="vis" kind="reference" type="XVisualInfo" input="false" /> </function> <function name="glXCreateGLXPbufferSGIX" return="GLXPbufferSGIX" glxvendorglx="65543" category="SGIX_pbuffer" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="config" kind="value" type="GLXFBConfigSGIX" input="true" /> <param name="width" kind="value" type="uint" input="true" /> <param name="height" kind="value" type="uint" input="true" /> <param name="attrib_list" kind="reference" type="int" input="false" /> </function> <function name="glXDestroyGLXPbufferSGIX" return="void" glxvendorglx="65544" category="SGIX_pbuffer" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuf" kind="value" type="GLXPbufferSGIX" input="true" /> </function> <function name="glXQueryGLXPbufferSGIX" return="int" category="SGIX_pbuffer" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuf" kind="value" type="GLXPbufferSGIX" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="reference" type="uint" input="false" /> </function> <function name="glXSelectEventSGIX" return="void" category="SGIX_pbuffer" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="mask" kind="value" type="ulong" input="true" /> </function> <function name="glXGetSelectedEventSGIX" return="void" category="SGIX_pbuffer" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="mask" kind="reference" type="ulong" input="false" /> </function> <function name="glXCushionSGI" return="void" category="SGI_cushion" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="window" kind="value" type="Window" input="true" /> <param name="cushion" kind="value" type="float" input="true" /> </function> <function name="glXBindChannelToWindowSGIX" return="int" category="SGIX_video_resize" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="channel" kind="value" type="int" input="true" /> <param name="window" kind="value" type="Window" input="true" /> </function> <function name="glXChannelRectSGIX" return="int" category="SGIX_video_resize" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="channel" kind="value" type="int" input="true" /> <param name="x" kind="value" type="int" input="true" /> <param name="y" kind="value" type="int" input="true" /> <param name="w" kind="value" type="int" input="true" /> <param name="h" kind="value" type="int" input="true" /> </function> <function name="glXQueryChannelRectSGIX" return="int" category="SGIX_video_resize" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="channel" kind="value" type="int" input="true" /> <param name="dx" kind="reference" type="int" input="false" /> <param name="dy" kind="reference" type="int" input="false" /> <param name="dw" kind="reference" type="int" input="false" /> <param name="dh" kind="reference" type="int" input="false" /> </function> <function name="glXQueryChannelDeltasSGIX" return="int" category="SGIX_video_resize" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="channel" kind="value" type="int" input="true" /> <param name="x" kind="reference" type="int" input="false" /> <param name="y" kind="reference" type="int" input="false" /> <param name="w" kind="reference" type="int" input="false" /> <param name="h" kind="reference" type="int" input="false" /> </function> <function name="glXChannelRectSyncSGIX" return="int" category="SGIX_video_resize" > <param name="display" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="channel" kind="value" type="int" input="true" /> <param name="synctype" kind="value" type="GLenum" input="true" /> </function> <function name="glXAssociateDMPbufferSGIX" return="Bool" category="SGIX_dmbuffer" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuffer" kind="value" type="GLXPbufferSGIX" input="true" /> <param name="params" kind="reference" type="DMparams" input="false" /> <param name="dmbuffer" kind="value" type="DMbuffer" input="true" /> </function> <function name="glXJoinSwapGroupSGIX" return="void" glxvendorglx="65547" category="SGIX_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="member" kind="value" type="GLXDrawable" input="true" /> </function> <function name="glXBindSwapBarrierSGIX" return="void" glxvendorglx="65548" category="SGIX_swap_barrier" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="barrier" kind="value" type="int" input="true" /> </function> <function name="glXQueryMaxSwapBarriersSGIX" return="Bool" glxvendorglx="65549" category="SGIX_swap_barrier" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="max" kind="reference" type="int" input="false" /> </function> <function name="glXGetTransparentIndexSUN" return="Status" category="SUN_get_transparent_index" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="overlay" kind="value" type="Window" input="true" /> <param name="underlay" kind="value" type="Window" input="true" /> <param name="pTransparentIndex" kind="reference" type="long" input="false" /> </function> <function name="glXCopySubBufferMESA" return="void" category="MESA_copy_sub_buffer" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="x" kind="value" type="int" input="true" /> <param name="y" kind="value" type="int" input="true" /> <param name="width" kind="value" type="int" input="true" /> <param name="height" kind="value" type="int" input="true" /> </function> <function name="glXCreateGLXPixmapMESA" return="GLXPixmap" category="MESA_pixmap_colormap" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="visual" kind="reference" type="XVisualInfo" input="false" /> <param name="pixmap" kind="value" type="Pixmap" input="true" /> <param name="cmap" kind="value" type="Colormap" input="true" /> </function> <function name="glXReleaseBuffersMESA" return="Bool" category="MESA_release_buffers" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> </function> <function name="glXSet3DfxModeMESA" return="Bool" category="MESA_set_3dfx_mode" glxflags="client-handcode" > <param name="mode" kind="value" type="int" input="true" /> </function> <function name="glXGetSyncValuesOML" return="Bool" category="OML_sync_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="ust" kind="reference" type="int64_t" input="false" /> <param name="msc" kind="reference" type="int64_t" input="false" /> <param name="sbc" kind="reference" type="int64_t" input="false" /> </function> <function name="glXGetMscRateOML" return="Bool" category="OML_sync_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="numerator" kind="reference" type="int32_t" input="false" /> <param name="denominator" kind="reference" type="int32_t" input="false" /> </function> <function name="glXSwapBuffersMscOML" return="int64_t" category="OML_sync_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="target_msc" kind="value" type="int64_t" input="true" /> <param name="divisor" kind="value" type="int64_t" input="true" /> <param name="remainder" kind="value" type="int64_t" input="true" /> </function> <function name="glXWaitForMscOML" return="Bool" category="OML_sync_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="target_msc" kind="value" type="int64_t" input="true" /> <param name="divisor" kind="value" type="int64_t" input="true" /> <param name="remainder" kind="value" type="int64_t" input="true" /> <param name="ust" kind="reference" type="int64_t" input="false" /> <param name="msc" kind="reference" type="int64_t" input="false" /> <param name="sbc" kind="reference" type="int64_t" input="false" /> </function> <function name="glXWaitForSbcOML" return="Bool" category="OML_sync_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="target_sbc" kind="value" type="int64_t" input="true" /> <param name="ust" kind="reference" type="int64_t" input="false" /> <param name="msc" kind="reference" type="int64_t" input="false" /> <param name="sbc" kind="reference" type="int64_t" input="false" /> </function> <function name="glXQueryHyperpipeNetworkSGIX" return="GLXHyperpipeNetworkSGIXPointer" glxvendorglx="65550" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="npipes" kind="reference" type="int" input="false" /> </function> <function name="glXHyperpipeConfigSGIX" return="int" glxvendorglx="65552" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="networkId" kind="value" type="int" input="true" /> <param name="npipes" kind="value" type="int" input="true" /> <param name="cfg" kind="array" type="GLXHyperpipeConfigSGIX" input="false" compute="[COMPSIZE(npipes)]" /> <param name="hpId" kind="reference" type="int" input="false" /> </function> <function name="glXQueryHyperpipeConfigSGIX" return="GLXHyperpipeConfigSGIXPointer" glxvendorglx="65551" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> <param name="npipes" kind="reference" type="int" input="false" /> </function> <function name="glXDestroyHyperpipeConfigSGIX" return="int" glxvendorglx="65553" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> </function> <function name="glXBindHyperpipeSGIX" return="int" glxvendorglx="???" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="hpId" kind="value" type="int" input="true" /> </function> <function name="glXQueryHyperpipeBestAttribSGIX" return="int" glxvendorglx="???" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="attribList" kind="array" type="void" input="false" compute="[COMPSIZE(size)]" /> <param name="returnAttribList" kind="array" type="void" input="false" compute="[COMPSIZE(size)]" /> </function> <function name="glXHyperpipeAttribSGIX" return="int" glxvendorglx="???" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="attribList" kind="array" type="void" input="false" compute="[COMPSIZE(size)]" /> </function> <function name="glXQueryHyperpipeAttribSGIX" return="int" glxvendorglx="???" category="SGIX_hyperpipe" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="timeSlice" kind="value" type="int" input="true" /> <param name="attrib" kind="value" type="int" input="true" /> <param name="size" kind="value" type="int" input="true" /> <param name="returnAttribList" kind="array" type="void" input="false" compute="[COMPSIZE(size)]" /> </function> <function name="glXGetAGPOffsetMESA" return="uint" category="MESA_agp_offset" glxflags="client-handcode" > <param name="pointer" kind="reference" type="void" input="true" /> </function> <function name="glXBindTexImageEXT" return="void" glxvendorglx="1330" category="EXT_texture_from_pixmap" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="buffer" kind="value" type="int" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXReleaseTexImageEXT" return="void" glxvendorglx="1331" category="EXT_texture_from_pixmap" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="buffer" kind="value" type="int" input="true" /> </function> <function name="glXEnumerateVideoDevicesNV" return="uintPointer" category="NV_present_video" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="nelements" kind="reference" type="int" input="false" /> </function> <function name="glXBindVideoDeviceNV" return="int" category="NV_present_video" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="video_slot" kind="value" type="uint" input="true" /> <param name="video_device" kind="value" type="uint" input="true" /> <param name="attrib_list" kind="reference" type="int" input="true" /> </function> <function name="glXGetVideoDeviceNV" return="int" glxvendorglx="1313" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="numVideoDevices" kind="value" type="int" input="true" /> <param name="pVideoDevice" kind="array" type="GLXVideoDeviceNV" input="false" compute="[COMPSIZE(numVideoDevices)]" /> </function> <function name="glXReleaseVideoDeviceNV" return="int" glxvendorglx="1314" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="VideoDevice" kind="value" type="GLXVideoDeviceNV" input="true" /> </function> <function name="glXBindVideoImageNV" return="int" glxvendorglx="1315" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="VideoDevice" kind="value" type="GLXVideoDeviceNV" input="true" /> <param name="pbuf" kind="value" type="GLXPbuffer" input="true" /> <param name="iVideoBuffer" kind="value" type="int" input="true" /> </function> <function name="glXReleaseVideoImageNV" return="int" glxvendorglx="1316" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuf" kind="value" type="GLXPbuffer" input="true" /> </function> <function name="glXSendPbufferToVideoNV" return="int" glxvendorglx="1317" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="pbuf" kind="value" type="GLXPbuffer" input="true" /> <param name="iBufferType" kind="value" type="int" input="true" /> <param name="pulCounterPbuffer" kind="reference" type="ulong" input="false" /> <param name="bBlock" kind="value" type="GLboolean" input="true" /> </function> <function name="glXGetVideoInfoNV" return="int" glxvendorglx="1318" category="NV_video_output" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="VideoDevice" kind="value" type="GLXVideoDeviceNV" input="true" /> <param name="pulCounterOutputPbuffer" kind="reference" type="ulong" input="false" /> <param name="pulCounterOutputVideo" kind="reference" type="ulong" input="false" /> </function> <function name="glXJoinSwapGroupNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="group" kind="value" type="GLuint" input="true" /> </function> <function name="glXBindSwapBarrierNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="group" kind="value" type="GLuint" input="true" /> <param name="barrier" kind="value" type="GLuint" input="true" /> </function> <function name="glXQuerySwapGroupNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="group" kind="reference" type="GLuint" input="false" /> <param name="barrier" kind="reference" type="GLuint" input="false" /> </function> <function name="glXQueryMaxSwapGroupsNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="maxGroups" kind="reference" type="GLuint" input="false" /> <param name="maxBarriers" kind="reference" type="GLuint" input="false" /> </function> <function name="glXQueryFrameCountNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="count" kind="reference" type="GLuint" input="false" /> </function> <function name="glXResetFrameCountNV" return="Bool" category="NV_swap_group" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> </function> <function name="glXBindVideoCaptureDeviceNV" return="int" category="NV_video_capture" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="video_capture_slot" kind="value" type="uint" input="true" /> <param name="device" kind="value" type="GLXVideoCaptureDeviceNV" input="true" /> </function> <function name="glXEnumerateVideoCaptureDevicesNV" return="GLXVideoCaptureDeviceNVPointer" category="NV_video_capture" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="screen" kind="value" type="int" input="true" /> <param name="nelements" kind="reference" type="int" input="false" /> </function> <function name="glXLockVideoCaptureDeviceNV" return="void" category="NV_video_capture" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="device" kind="value" type="GLXVideoCaptureDeviceNV" input="true" /> </function> <function name="glXQueryVideoCaptureDeviceNV" return="int" category="NV_video_capture" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="device" kind="value" type="GLXVideoCaptureDeviceNV" input="true" /> <param name="attribute" kind="value" type="int" input="true" /> <param name="value" kind="array" type="int" input="false" compute="[COMPSIZE(attribute)]" /> </function> <function name="glXReleaseVideoCaptureDeviceNV" return="void" category="NV_video_capture" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="device" kind="value" type="GLXVideoCaptureDeviceNV" input="true" /> </function> <function name="glXSwapIntervalEXT" return="void" glxvendorglx="1416" category="EXT_swap_control" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="drawable" kind="value" type="GLXDrawable" input="true" /> <param name="interval" kind="value" type="int" input="true" /> </function> <function name="glXCopyImageSubDataNV" return="void" glxvendorglx="1360" category="NV_copy_image" glxflags="client-handcode" > <param name="dpy" kind="reference" type="Display" input="false" /> <param name="srcCtx" kind="value" type="GLXContext" input="true" /> <param name="srcName" kind="value" type="GLuint" input="true" /> <param name="srcTarget" kind="value" type="GLenum" input="true" /> <param name="srcLevel" kind="value" type="GLint" input="true" /> <param name="srcX" kind="value" type="GLint" input="true" /> <param name="srcY" kind="value" type="GLint" input="true" /> <param name="srcZ" kind="value" type="GLint" input="true" /> <param name="dstCtx" kind="value" type="GLXContext" input="true" /> <param name="dstName" kind="value" type="GLuint" input="true" /> <param name="dstTarget" kind="value" type="GLenum" input="true" /> <param name="dstLevel" kind="value" type="GLint" input="true" /> <param name="dstX" kind="value" type="GLint" input="true" /> <param name="dstY" kind="value" type="GLint" input="true" /> <param name="dstZ" kind="value" type="GLint" input="true" /> <param name="width" kind="value" type="GLsizei" input="true" /> <param name="height" kind="value" type="GLsizei" input="true" /> <param name="depth" kind="value" type="GLsizei" input="true" /> </function> </function-defs> </functions> </specification> |
Added jni/glshim/spec/xml/opengl.xml.
more than 10,000 changes
Added jni/glshim/spec/xml/toyml.py.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | #!/usr/bin/env python from collections import defaultdict import re import xml.etree.ElementTree as ET import yaml def etna_to_yml(xml): defs = xml.find('functions') functions = defaultdict(dict) for f in defs.findall('function'): name = f.get('name') ret = f.find('return') if ret is not None: ret = ret.get('type') if ret is None: ret = 'void' params = [] for p in f.findall('param'): params.append('{} {}'.format(p.get('type'), p.get('name'))) functions[name] = [ret] + params return functions def lua_to_yml(xml): typemap = xml.find('typemap') types = {} for t in typemap: name = t.get('typename') types[name] = t.get('C-lang', name) defs = xml.find('functions').find('function-defs') functions = defaultdict(dict) for f in defs.findall('function'): cat = f.get('category') ret = f.get('return') ret = types.get(ret, ret) func = f.get('name') params = [] for param in f.findall('param'): typ = param.get('type') typ = types.get(typ, typ) name = param.get('name') kind = param.get('kind') if kind in ('array', 'reference', 'array[size]'): typ = typ.rstrip() if not typ.endswith('*') or kind == 'reference': typ += ' *' if not 'const' in typ and param.get('input', 'false') == 'true': typ = 'const ' + typ p = '{} {}'.format(typ, name) p = p.replace('* ', '*') params.append(p) args = [ret] args.extend(params) functions[cat][func] = args return functions def khronos_to_yml(xml): def extract(node): return node.findtext('ptype') or node.text, node.findtext('name') def clean(s): return re.sub('\s+', ' ', s).strip() defs = xml.find('commands') functions = defaultdict(dict) for f in defs.findall('command'): proto = f.find('proto') ret, name = extract(proto) params = [] for param in f.findall('param'): params.append(clean(' '.join((param.itertext())))) functions[name] = [ret] + params return functions def to_yml(filename): with open(filename, 'r') as f: data = f.read() data = re.sub(' xmlns="[^"]+"', '', data, count=1) xml = ET.fromstring(data) if xml.tag == 'root': functions = etna_to_yml(xml) elif xml.tag == 'specification': functions = lua_to_yml(xml) elif xml.tag == 'registry': functions = khronos_to_yml(xml) else: print 'unrecognized root tag:', xml.tag yml = yaml.dump(dict(functions)) with open(filename.replace('xml', 'yml'), 'w') as o: o.write(yml) if __name__ == '__main__': import sys if len(sys.argv) < 2: print 'Usage: {} <file.xml> [file.xml...]'.format(sys.argv[0]) sys.exit(1) for name in sys.argv[1:]: to_yml(name) |
Added jni/glshim/spec/xml/wgl.xml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 | <?xml version="1.0" encoding="UTF-8"?> <specification xmlns="http://www.opengl.org/registry/" name="WGL" specversion="4.3" fileversion="0.0.1" > <typemap > <type-def typename="LPVOID" C-lang="LPVOID" /> <type-def typename="HPBUFFERARB" C-lang="HPBUFFERARB" /> <type-def typename="GLfloat" C-lang="GLfloat" /> <type-def typename="HVIDEOOUTPUTDEVICENV" C-lang="HVIDEOOUTPUTDEVICENV" /> <type-def typename="HGLRC" C-lang="HGLRC" /> <type-def typename="GLbitfield" C-lang="GLbitfield" /> <type-def typename="INT64" C-lang="INT64" /> <type-def typename="BOOL" C-lang="BOOL" /> <type-def typename="HPGPUNV" C-lang="HPGPUNV" /> <type-def typename="PGPU_DEVICE" C-lang="PGPU_DEVICE" /> <type-def typename="PROC" C-lang="PROC" /> <type-def typename="USHORT" C-lang="USHORT" /> <type-def typename="String" C-lang="const char *" /> <type-def typename="GLint" C-lang="GLint" /> <type-def typename="GLuint" C-lang="GLuint" /> <type-def typename="INT" C-lang="INT" /> <type-def typename="DWORD" C-lang="DWORD" /> <type-def typename="GLushort" C-lang="GLushort" /> <type-def typename="float" C-lang="float" /> <type-def typename="FLOAT" C-lang="FLOAT" /> <type-def typename="HVIDEOINPUTDEVICENV" C-lang="HVIDEOINPUTDEVICENV" /> <type-def typename="GLboolean" C-lang="GLboolean" /> <type-def typename="HPVIDEODEV" C-lang="HPVIDEODEV" /> <type-def typename="UINT" C-lang="UINT" /> <type-def typename="int" C-lang="int" /> <type-def typename="GLsizei" C-lang="GLsizei" /> <type-def typename="HGPUNV" C-lang="HGPUNV" /> <type-def typename="uint" C-lang="unsigned int" /> <type-def typename="HDC" C-lang="HDC" /> <type-def typename="VOID" C-lang="VOID" /> <type-def typename="GLenum" C-lang="GLenum" /> <type-def typename="HANDLE" C-lang="HANDLE" /> <type-def typename="VoidPointer" C-lang="void *" /> <type-def typename="void" C-lang="void *" /> <type-def typename="HPBUFFEREXT" C-lang="HPBUFFEREXT" /> <type-def typename="INT32" C-lang="INT32" /> <type-def typename="ulong" C-lang="unsigned long" /> </typemap> <extensions > <ext name="ARB_buffer_region" /> <ext name="ARB_multisample" /> <ext name="ARB_extensions_string" /> <ext name="ARB_pixel_format" /> <ext name="ARB_make_current_read" /> <ext name="ARB_pbuffer" /> <ext name="ARB_render_texture" /> <ext name="ARB_pixel_format_float" /> <ext name="ARB_framebuffer_sRGB" /> <ext name="ARB_create_context" /> <ext name="ARB_create_context_profile" /> <ext name="ARB_create_context_robustness" /> <ext name="EXT_make_current_read" /> <ext name="EXT_pixel_format" /> <ext name="EXT_pbuffer" /> <ext name="EXT_swap_control" /> <ext name="EXT_depth_float" /> <ext name="3DFX_multisample" /> <ext name="EXT_multisample" /> <ext name="I3D_digital_video_control" /> <ext name="I3D_gamma" /> <ext name="I3D_genlock" /> <ext name="I3D_image_buffer" /> <ext name="I3D_swap_frame_lock" /> <ext name="NV_render_depth_texture" /> <ext name="NV_render_texture_rectangle" /> <ext name="ATI_pixel_format_float" /> <ext name="NV_float_buffer" /> <ext name="3DL_stereo_control" /> <ext name="EXT_pixel_format_packed_float" /> <ext name="EXT_framebuffer_sRGB" /> <ext name="NV_present_video" /> <ext name="NV_video_output" /> <ext name="NV_swap_group" /> <ext name="NV_gpu_affinity" /> <ext name="AMD_gpu_association" /> <ext name="NV_video_capture" /> <ext name="NV_copy_image" /> <ext name="NV_multisample_coverage" /> <ext name="EXT_create_context_es2_profile" /> <ext name="NV_DX_interop" /> <ext name="NV_DX_interop2" /> <ext name="EXT_swap_control_tear" /> </extensions> <enumerations > <enum name="FRONT_COLOR_BUFFER_BIT_ARB" value="0x00000001" > <ext name="ARB_buffer_region" /> </enum> <enum name="BACK_COLOR_BUFFER_BIT_ARB" value="0x00000002" > <ext name="ARB_buffer_region" /> </enum> <enum name="DEPTH_BUFFER_BIT_ARB" value="0x00000004" > <ext name="ARB_buffer_region" /> </enum> <enum name="STENCIL_BUFFER_BIT_ARB" value="0x00000008" > <ext name="ARB_buffer_region" /> </enum> <enum name="SAMPLE_BUFFERS_ARB" value="0x2041" > <ext name="ARB_multisample" /> </enum> <enum name="SAMPLES_ARB" value="0x2042" > <ext name="ARB_multisample" /> </enum> <enum name="NUMBER_PIXEL_FORMATS_ARB" value="0x2000" > <ext name="ARB_pixel_format" /> </enum> <enum name="DRAW_TO_WINDOW_ARB" value="0x2001" > <ext name="ARB_pixel_format" /> </enum> <enum name="DRAW_TO_BITMAP_ARB" value="0x2002" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCELERATION_ARB" value="0x2003" > <ext name="ARB_pixel_format" /> </enum> <enum name="NEED_PALETTE_ARB" value="0x2004" > <ext name="ARB_pixel_format" /> </enum> <enum name="NEED_SYSTEM_PALETTE_ARB" value="0x2005" > <ext name="ARB_pixel_format" /> </enum> <enum name="SWAP_LAYER_BUFFERS_ARB" value="0x2006" > <ext name="ARB_pixel_format" /> </enum> <enum name="SWAP_METHOD_ARB" value="0x2007" > <ext name="ARB_pixel_format" /> </enum> <enum name="NUMBER_OVERLAYS_ARB" value="0x2008" > <ext name="ARB_pixel_format" /> </enum> <enum name="NUMBER_UNDERLAYS_ARB" value="0x2009" > <ext name="ARB_pixel_format" /> </enum> <enum name="TRANSPARENT_ARB" value="0x200A" > <ext name="ARB_pixel_format" /> </enum> <enum name="TRANSPARENT_RED_VALUE_ARB" value="0x2037" > <ext name="ARB_pixel_format" /> <ext name="ARB_pbuffer" /> </enum> <enum name="TRANSPARENT_GREEN_VALUE_ARB" value="0x2038" > <ext name="ARB_pixel_format" /> <ext name="ARB_pbuffer" /> </enum> <enum name="TRANSPARENT_BLUE_VALUE_ARB" value="0x2039" > <ext name="ARB_pixel_format" /> <ext name="ARB_pbuffer" /> </enum> <enum name="TRANSPARENT_ALPHA_VALUE_ARB" value="0x203A" > <ext name="ARB_pixel_format" /> <ext name="ARB_pbuffer" /> </enum> <enum name="TRANSPARENT_INDEX_VALUE_ARB" value="0x203B" > <ext name="ARB_pixel_format" /> <ext name="ARB_pbuffer" /> </enum> <enum name="SHARE_DEPTH_ARB" value="0x200C" > <ext name="ARB_pixel_format" /> </enum> <enum name="SHARE_STENCIL_ARB" value="0x200D" > <ext name="ARB_pixel_format" /> </enum> <enum name="SHARE_ACCUM_ARB" value="0x200E" > <ext name="ARB_pixel_format" /> </enum> <enum name="SUPPORT_GDI_ARB" value="0x200F" > <ext name="ARB_pixel_format" /> </enum> <enum name="SUPPORT_OPENGL_ARB" value="0x2010" > <ext name="ARB_pixel_format" /> </enum> <enum name="DOUBLE_BUFFER_ARB" value="0x2011" > <ext name="ARB_pixel_format" /> </enum> <enum name="STEREO_ARB" value="0x2012" > <ext name="ARB_pixel_format" /> </enum> <enum name="PIXEL_TYPE_ARB" value="0x2013" > <ext name="ARB_pixel_format" /> </enum> <enum name="COLOR_BITS_ARB" value="0x2014" > <ext name="ARB_pixel_format" /> </enum> <enum name="RED_BITS_ARB" value="0x2015" > <ext name="ARB_pixel_format" /> </enum> <enum name="RED_SHIFT_ARB" value="0x2016" > <ext name="ARB_pixel_format" /> </enum> <enum name="GREEN_BITS_ARB" value="0x2017" > <ext name="ARB_pixel_format" /> </enum> <enum name="GREEN_SHIFT_ARB" value="0x2018" > <ext name="ARB_pixel_format" /> </enum> <enum name="BLUE_BITS_ARB" value="0x2019" > <ext name="ARB_pixel_format" /> </enum> <enum name="BLUE_SHIFT_ARB" value="0x201A" > <ext name="ARB_pixel_format" /> </enum> <enum name="ALPHA_BITS_ARB" value="0x201B" > <ext name="ARB_pixel_format" /> </enum> <enum name="ALPHA_SHIFT_ARB" value="0x201C" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCUM_BITS_ARB" value="0x201D" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCUM_RED_BITS_ARB" value="0x201E" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCUM_GREEN_BITS_ARB" value="0x201F" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCUM_BLUE_BITS_ARB" value="0x2020" > <ext name="ARB_pixel_format" /> </enum> <enum name="ACCUM_ALPHA_BITS_ARB" value="0x2021" > <ext name="ARB_pixel_format" /> </enum> <enum name="DEPTH_BITS_ARB" value="0x2022" > <ext name="ARB_pixel_format" /> </enum> <enum name="STENCIL_BITS_ARB" value="0x2023" > <ext name="ARB_pixel_format" /> </enum> <enum name="AUX_BUFFERS_ARB" value="0x2024" > <ext name="ARB_pixel_format" /> </enum> <enum name="NO_ACCELERATION_ARB" value="0x2025" > <ext name="ARB_pixel_format" /> </enum> <enum name="GENERIC_ACCELERATION_ARB" value="0x2026" > <ext name="ARB_pixel_format" /> </enum> <enum name="FULL_ACCELERATION_ARB" value="0x2027" > <ext name="ARB_pixel_format" /> </enum> <enum name="SWAP_EXCHANGE_ARB" value="0x2028" > <ext name="ARB_pixel_format" /> </enum> <enum name="SWAP_COPY_ARB" value="0x2029" > <ext name="ARB_pixel_format" /> </enum> <enum name="SWAP_UNDEFINED_ARB" value="0x202A" > <ext name="ARB_pixel_format" /> </enum> <enum name="TYPE_RGBA_ARB" value="0x202B" > <ext name="ARB_pixel_format" /> </enum> <enum name="TYPE_COLORINDEX_ARB" value="0x202C" > <ext name="ARB_pixel_format" /> </enum> <enum name="ERROR_INVALID_PIXEL_TYPE_ARB" value="0x2043" > <ext name="ARB_make_current_read" /> </enum> <enum name="ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB" value="0x2054" > <ext name="ARB_make_current_read" /> </enum> <enum name="DRAW_TO_PBUFFER_ARB" value="0x202D" > <ext name="ARB_pbuffer" /> </enum> <enum name="MAX_PBUFFER_PIXELS_ARB" value="0x202E" > <ext name="ARB_pbuffer" /> </enum> <enum name="MAX_PBUFFER_WIDTH_ARB" value="0x202F" > <ext name="ARB_pbuffer" /> </enum> <enum name="MAX_PBUFFER_HEIGHT_ARB" value="0x2030" > <ext name="ARB_pbuffer" /> </enum> <enum name="PBUFFER_LARGEST_ARB" value="0x2033" > <ext name="ARB_pbuffer" /> </enum> <enum name="PBUFFER_WIDTH_ARB" value="0x2034" > <ext name="ARB_pbuffer" /> </enum> <enum name="PBUFFER_HEIGHT_ARB" value="0x2035" > <ext name="ARB_pbuffer" /> </enum> <enum name="PBUFFER_LOST_ARB" value="0x2036" > <ext name="ARB_pbuffer" /> </enum> <enum name="BIND_TO_TEXTURE_RGB_ARB" value="0x2070" > <ext name="ARB_render_texture" /> </enum> <enum name="BIND_TO_TEXTURE_RGBA_ARB" value="0x2071" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_FORMAT_ARB" value="0x2072" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_TARGET_ARB" value="0x2073" > <ext name="ARB_render_texture" /> </enum> <enum name="MIPMAP_TEXTURE_ARB" value="0x2074" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_RGB_ARB" value="0x2075" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_RGBA_ARB" value="0x2076" > <ext name="ARB_render_texture" /> </enum> <enum name="NO_TEXTURE_ARB" value="0x2077" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_ARB" value="0x2078" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_1D_ARB" value="0x2079" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_2D_ARB" value="0x207A" > <ext name="ARB_render_texture" /> </enum> <enum name="MIPMAP_LEVEL_ARB" value="0x207B" > <ext name="ARB_render_texture" /> </enum> <enum name="CUBE_MAP_FACE_ARB" value="0x207C" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_POSITIVE_X_ARB" value="0x207D" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X_ARB" value="0x207E" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y_ARB" value="0x207F" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB" value="0x2080" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z_ARB" value="0x2081" > <ext name="ARB_render_texture" /> </enum> <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB" value="0x2082" > <ext name="ARB_render_texture" /> </enum> <enum name="FRONT_LEFT_ARB" value="0x2083" > <ext name="ARB_render_texture" /> </enum> <enum name="FRONT_RIGHT_ARB" value="0x2084" > <ext name="ARB_render_texture" /> </enum> <enum name="BACK_LEFT_ARB" value="0x2085" > <ext name="ARB_render_texture" /> </enum> <enum name="BACK_RIGHT_ARB" value="0x2086" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX0_ARB" value="0x2087" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX1_ARB" value="0x2088" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX2_ARB" value="0x2089" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX3_ARB" value="0x208A" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX4_ARB" value="0x208B" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX5_ARB" value="0x208C" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX6_ARB" value="0x208D" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX7_ARB" value="0x208E" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX8_ARB" value="0x208F" > <ext name="ARB_render_texture" /> </enum> <enum name="AUX9_ARB" value="0x2090" > <ext name="ARB_render_texture" /> </enum> <enum name="TYPE_RGBA_FLOAT_ARB" value="0x21A0" > <ext name="ARB_pixel_format_float" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_ARB" value="0x20A9" > <ext name="ARB_framebuffer_sRGB" /> </enum> <enum name="CONTEXT_DEBUG_BIT_ARB" value="0x00000001" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_FORWARD_COMPATIBLE_BIT_ARB" value="0x00000002" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_MAJOR_VERSION_ARB" value="0x2091" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_MINOR_VERSION_ARB" value="0x2092" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_LAYER_PLANE_ARB" value="0x2093" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_FLAGS_ARB" value="0x2094" > <ext name="ARB_create_context" /> </enum> <enum name="ERROR_INVALID_VERSION_ARB" value="0x2095" > <ext name="ARB_create_context" /> </enum> <enum name="CONTEXT_PROFILE_MASK_ARB" value="0x9126" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_CORE_PROFILE_BIT_ARB" value="0x00000001" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB" value="0x00000002" > <ext name="ARB_create_context_profile" /> </enum> <enum name="ERROR_INVALID_PROFILE_ARB" value="0x2096" > <ext name="ARB_create_context_profile" /> </enum> <enum name="CONTEXT_ROBUST_ACCESS_BIT_ARB" value="0x00000004" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="LOSE_CONTEXT_ON_RESET_ARB" value="0x8252" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB" value="0x8256" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="NO_RESET_NOTIFICATION_ARB" value="0x8261" > <ext name="ARB_create_context_robustness" /> </enum> <enum name="ERROR_INVALID_PIXEL_TYPE_EXT" value="0x2043" > <ext name="EXT_make_current_read" /> </enum> <enum name="NUMBER_PIXEL_FORMATS_EXT" value="0x2000" > <ext name="EXT_pixel_format" /> </enum> <enum name="DRAW_TO_WINDOW_EXT" value="0x2001" > <ext name="EXT_pixel_format" /> </enum> <enum name="DRAW_TO_BITMAP_EXT" value="0x2002" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCELERATION_EXT" value="0x2003" > <ext name="EXT_pixel_format" /> </enum> <enum name="NEED_PALETTE_EXT" value="0x2004" > <ext name="EXT_pixel_format" /> </enum> <enum name="NEED_SYSTEM_PALETTE_EXT" value="0x2005" > <ext name="EXT_pixel_format" /> </enum> <enum name="SWAP_LAYER_BUFFERS_EXT" value="0x2006" > <ext name="EXT_pixel_format" /> </enum> <enum name="SWAP_METHOD_EXT" value="0x2007" > <ext name="EXT_pixel_format" /> </enum> <enum name="NUMBER_OVERLAYS_EXT" value="0x2008" > <ext name="EXT_pixel_format" /> </enum> <enum name="NUMBER_UNDERLAYS_EXT" value="0x2009" > <ext name="EXT_pixel_format" /> </enum> <enum name="TRANSPARENT_EXT" value="0x200A" > <ext name="EXT_pixel_format" /> </enum> <enum name="TRANSPARENT_VALUE_EXT" value="0x200B" > <ext name="EXT_pixel_format" /> </enum> <enum name="SHARE_DEPTH_EXT" value="0x200C" > <ext name="EXT_pixel_format" /> </enum> <enum name="SHARE_STENCIL_EXT" value="0x200D" > <ext name="EXT_pixel_format" /> </enum> <enum name="SHARE_ACCUM_EXT" value="0x200E" > <ext name="EXT_pixel_format" /> </enum> <enum name="SUPPORT_GDI_EXT" value="0x200F" > <ext name="EXT_pixel_format" /> </enum> <enum name="SUPPORT_OPENGL_EXT" value="0x2010" > <ext name="EXT_pixel_format" /> </enum> <enum name="DOUBLE_BUFFER_EXT" value="0x2011" > <ext name="EXT_pixel_format" /> </enum> <enum name="STEREO_EXT" value="0x2012" > <ext name="EXT_pixel_format" /> </enum> <enum name="PIXEL_TYPE_EXT" value="0x2013" > <ext name="EXT_pixel_format" /> </enum> <enum name="COLOR_BITS_EXT" value="0x2014" > <ext name="EXT_pixel_format" /> </enum> <enum name="RED_BITS_EXT" value="0x2015" > <ext name="EXT_pixel_format" /> </enum> <enum name="RED_SHIFT_EXT" value="0x2016" > <ext name="EXT_pixel_format" /> </enum> <enum name="GREEN_BITS_EXT" value="0x2017" > <ext name="EXT_pixel_format" /> </enum> <enum name="GREEN_SHIFT_EXT" value="0x2018" > <ext name="EXT_pixel_format" /> </enum> <enum name="BLUE_BITS_EXT" value="0x2019" > <ext name="EXT_pixel_format" /> </enum> <enum name="BLUE_SHIFT_EXT" value="0x201A" > <ext name="EXT_pixel_format" /> </enum> <enum name="ALPHA_BITS_EXT" value="0x201B" > <ext name="EXT_pixel_format" /> </enum> <enum name="ALPHA_SHIFT_EXT" value="0x201C" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCUM_BITS_EXT" value="0x201D" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCUM_RED_BITS_EXT" value="0x201E" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCUM_GREEN_BITS_EXT" value="0x201F" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCUM_BLUE_BITS_EXT" value="0x2020" > <ext name="EXT_pixel_format" /> </enum> <enum name="ACCUM_ALPHA_BITS_EXT" value="0x2021" > <ext name="EXT_pixel_format" /> </enum> <enum name="DEPTH_BITS_EXT" value="0x2022" > <ext name="EXT_pixel_format" /> </enum> <enum name="STENCIL_BITS_EXT" value="0x2023" > <ext name="EXT_pixel_format" /> </enum> <enum name="AUX_BUFFERS_EXT" value="0x2024" > <ext name="EXT_pixel_format" /> </enum> <enum name="NO_ACCELERATION_EXT" value="0x2025" > <ext name="EXT_pixel_format" /> </enum> <enum name="GENERIC_ACCELERATION_EXT" value="0x2026" > <ext name="EXT_pixel_format" /> </enum> <enum name="FULL_ACCELERATION_EXT" value="0x2027" > <ext name="EXT_pixel_format" /> </enum> <enum name="SWAP_EXCHANGE_EXT" value="0x2028" > <ext name="EXT_pixel_format" /> </enum> <enum name="SWAP_COPY_EXT" value="0x2029" > <ext name="EXT_pixel_format" /> </enum> <enum name="SWAP_UNDEFINED_EXT" value="0x202A" > <ext name="EXT_pixel_format" /> </enum> <enum name="TYPE_RGBA_EXT" value="0x202B" > <ext name="EXT_pixel_format" /> </enum> <enum name="TYPE_COLORINDEX_EXT" value="0x202C" > <ext name="EXT_pixel_format" /> </enum> <enum name="DRAW_TO_PBUFFER_EXT" value="0x202D" > <ext name="EXT_pbuffer" /> </enum> <enum name="MAX_PBUFFER_PIXELS_EXT" value="0x202E" > <ext name="EXT_pbuffer" /> </enum> <enum name="MAX_PBUFFER_WIDTH_EXT" value="0x202F" > <ext name="EXT_pbuffer" /> </enum> <enum name="MAX_PBUFFER_HEIGHT_EXT" value="0x2030" > <ext name="EXT_pbuffer" /> </enum> <enum name="OPTIMAL_PBUFFER_WIDTH_EXT" value="0x2031" > <ext name="EXT_pbuffer" /> </enum> <enum name="OPTIMAL_PBUFFER_HEIGHT_EXT" value="0x2032" > <ext name="EXT_pbuffer" /> </enum> <enum name="PBUFFER_LARGEST_EXT" value="0x2033" > <ext name="EXT_pbuffer" /> </enum> <enum name="PBUFFER_WIDTH_EXT" value="0x2034" > <ext name="EXT_pbuffer" /> </enum> <enum name="PBUFFER_HEIGHT_EXT" value="0x2035" > <ext name="EXT_pbuffer" /> </enum> <enum name="DEPTH_FLOAT_EXT" value="0x2040" > <ext name="EXT_depth_float" /> </enum> <enum name="SAMPLE_BUFFERS_3DFX" value="0x2060" > <ext name="3DFX_multisample" /> </enum> <enum name="SAMPLES_3DFX" value="0x2061" > <ext name="3DFX_multisample" /> </enum> <enum name="SAMPLE_BUFFERS_EXT" value="0x2041" > <ext name="EXT_multisample" /> </enum> <enum name="SAMPLES_EXT" value="0x2042" > <ext name="EXT_multisample" /> </enum> <enum name="DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D" value="0x2050" > <ext name="I3D_digital_video_control" /> </enum> <enum name="DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D" value="0x2051" > <ext name="I3D_digital_video_control" /> </enum> <enum name="DIGITAL_VIDEO_CURSOR_INCLUDED_I3D" value="0x2052" > <ext name="I3D_digital_video_control" /> </enum> <enum name="DIGITAL_VIDEO_GAMMA_CORRECTED_I3D" value="0x2053" > <ext name="I3D_digital_video_control" /> </enum> <enum name="GAMMA_TABLE_SIZE_I3D" value="0x204E" > <ext name="I3D_gamma" /> </enum> <enum name="GAMMA_EXCLUDE_DESKTOP_I3D" value="0x204F" > <ext name="I3D_gamma" /> </enum> <enum name="GENLOCK_SOURCE_MULTIVIEW_I3D" value="0x2044" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EXTERNAL_SYNC_I3D" value="0x2045" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EXTERNAL_FIELD_I3D" value="0x2046" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EXTERNAL_TTL_I3D" value="0x2047" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_DIGITAL_SYNC_I3D" value="0x2048" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_DIGITAL_FIELD_I3D" value="0x2049" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EDGE_FALLING_I3D" value="0x204A" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EDGE_RISING_I3D" value="0x204B" > <ext name="I3D_genlock" /> </enum> <enum name="GENLOCK_SOURCE_EDGE_BOTH_I3D" value="0x204C" > <ext name="I3D_genlock" /> </enum> <enum name="IMAGE_BUFFER_MIN_ACCESS_I3D" value="0x00000001" > <ext name="I3D_image_buffer" /> </enum> <enum name="IMAGE_BUFFER_LOCK_I3D" value="0x00000002" > <ext name="I3D_image_buffer" /> </enum> <enum name="BIND_TO_TEXTURE_DEPTH_NV" value="0x20A3" > <ext name="NV_render_depth_texture" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV" value="0x20A4" > <ext name="NV_render_depth_texture" /> </enum> <enum name="DEPTH_TEXTURE_FORMAT_NV" value="0x20A5" > <ext name="NV_render_depth_texture" /> </enum> <enum name="TEXTURE_DEPTH_COMPONENT_NV" value="0x20A6" > <ext name="NV_render_depth_texture" /> </enum> <enum name="DEPTH_COMPONENT_NV" value="0x20A7" > <ext name="NV_render_depth_texture" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_RGB_NV" value="0x20A0" > <ext name="NV_render_texture_rectangle" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_RGBA_NV" value="0x20A1" > <ext name="NV_render_texture_rectangle" /> </enum> <enum name="TEXTURE_RECTANGLE_NV" value="0x20A2" > <ext name="NV_render_texture_rectangle" /> </enum> <enum name="TYPE_RGBA_FLOAT_ATI" value="0x21A0" > <ext name="ATI_pixel_format_float" /> </enum> <enum name="FLOAT_COMPONENTS_NV" value="0x20B0" > <ext name="NV_float_buffer" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV" value="0x20B1" > <ext name="NV_float_buffer" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV" value="0x20B2" > <ext name="NV_float_buffer" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV" value="0x20B3" > <ext name="NV_float_buffer" /> </enum> <enum name="BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV" value="0x20B4" > <ext name="NV_float_buffer" /> </enum> <enum name="TEXTURE_FLOAT_R_NV" value="0x20B5" > <ext name="NV_float_buffer" /> </enum> <enum name="TEXTURE_FLOAT_RG_NV" value="0x20B6" > <ext name="NV_float_buffer" /> </enum> <enum name="TEXTURE_FLOAT_RGB_NV" value="0x20B7" > <ext name="NV_float_buffer" /> </enum> <enum name="TEXTURE_FLOAT_RGBA_NV" value="0x20B8" > <ext name="NV_float_buffer" /> </enum> <enum name="STEREO_EMITTER_ENABLE_3DL" value="0x2055" > <ext name="3DL_stereo_control" /> </enum> <enum name="STEREO_EMITTER_DISABLE_3DL" value="0x2056" > <ext name="3DL_stereo_control" /> </enum> <enum name="STEREO_POLARITY_NORMAL_3DL" value="0x2057" > <ext name="3DL_stereo_control" /> </enum> <enum name="STEREO_POLARITY_INVERT_3DL" value="0x2058" > <ext name="3DL_stereo_control" /> </enum> <enum name="TYPE_RGBA_UNSIGNED_FLOAT_EXT" value="0x20A8" > <ext name="EXT_pixel_format_packed_float" /> </enum> <enum name="FRAMEBUFFER_SRGB_CAPABLE_EXT" value="0x20A9" > <ext name="EXT_framebuffer_sRGB" /> </enum> <enum name="NUM_VIDEO_SLOTS_NV" value="0x20F0" > <ext name="NV_present_video" /> </enum> <enum name="BIND_TO_VIDEO_RGB_NV" value="0x20C0" > <ext name="NV_video_output" /> </enum> <enum name="BIND_TO_VIDEO_RGBA_NV" value="0x20C1" > <ext name="NV_video_output" /> </enum> <enum name="BIND_TO_VIDEO_RGB_AND_DEPTH_NV" value="0x20C2" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_COLOR_NV" value="0x20C3" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_ALPHA_NV" value="0x20C4" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_DEPTH_NV" value="0x20C5" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_ALPHA_NV" value="0x20C6" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_COLOR_AND_DEPTH_NV" value="0x20C7" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_FRAME" value="0x20C8" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_FIELD_1" value="0x20C9" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_FIELD_2" value="0x20CA" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_1_2" value="0x20CB" > <ext name="NV_video_output" /> </enum> <enum name="VIDEO_OUT_STACKED_FIELDS_2_1" value="0x20CC" > <ext name="NV_video_output" /> </enum> <enum name="ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV" value="0x20D0" > <ext name="NV_gpu_affinity" /> </enum> <enum name="ERROR_MISSING_AFFINITY_MASK_NV" value="0x20D1" > <ext name="NV_gpu_affinity" /> </enum> <enum name="GPU_VENDOR_AMD" value="0x1F00" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_RENDERER_STRING_AMD" value="0x1F01" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_OPENGL_VERSION_STRING_AMD" value="0x1F02" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_FASTEST_TARGET_GPUS_AMD" value="0x21A2" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_RAM_AMD" value="0x21A3" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_CLOCK_AMD" value="0x21A4" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_PIPES_AMD" value="0x21A5" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SIMD_AMD" value="0x21A6" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_RB_AMD" value="0x21A7" > <ext name="AMD_gpu_association" /> </enum> <enum name="GPU_NUM_SPI_AMD" value="0x21A8" > <ext name="AMD_gpu_association" /> </enum> <enum name="UNIQUE_ID_NV" value="0x20CE" > <ext name="NV_video_capture" /> </enum> <enum name="NUM_VIDEO_CAPTURE_SLOTS_NV" value="0x20CF" > <ext name="NV_video_capture" /> </enum> <enum name="COVERAGE_SAMPLES_NV" value="0x2042" > <ext name="NV_multisample_coverage" /> </enum> <enum name="COLOR_SAMPLES_NV" value="0x20B9" > <ext name="NV_multisample_coverage" /> </enum> <enum name="CONTEXT_ES2_PROFILE_BIT_EXT" value="0x00000004" > <ext name="EXT_create_context_es2_profile" /> </enum> <enum name="ACCESS_READ_ONLY_NV" value="0x00000000" > <ext name="NV_DX_interop" /> </enum> <enum name="ACCESS_READ_WRITE_NV" value="0x00000001" > <ext name="NV_DX_interop" /> </enum> <enum name="ACCESS_WRITE_DISCARD_NV" value="0x00000002" > <ext name="NV_DX_interop" /> </enum> </enumerations> <functions > <passthru ><![CDATA[#ifndef WGL_ARB_pbuffer DECLARE_HANDLE(HPBUFFERARB); #endif #ifndef WGL_EXT_pbuffer DECLARE_HANDLE(HPBUFFEREXT); #endif #ifndef WGL_NV_present_video DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); #endif #ifndef WGL_NV_video_output DECLARE_HANDLE(HPVIDEODEV); #endif #ifndef WGL_NV_gpu_affinity DECLARE_HANDLE(HPGPUNV); DECLARE_HANDLE(HGPUNV); typedef struct _GPU_DEVICE { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD Flags; RECT rcVirtualScreen; } GPU_DEVICE, *PGPU_DEVICE; #endif #ifndef WGL_NV_video_capture DECLARE_HANDLE(HVIDEOINPUTDEVICENV); #endif]]></passthru> <property-defs > <property name="param" > <value >retval</value> <value >retained</value> </property> <property name="required-props" any="true" /> <property name="passthru" any="true" /> <property name="category" > <value >wgl</value> <value >ARB_buffer_region</value> <value >ARB_extensions_string</value> <value >ARB_pixel_format</value> <value >ARB_make_current_read</value> <value >ARB_pbuffer</value> <value >ARB_render_texture</value> <value >ARB_pixel_format_float</value> <value >EXT_display_color_table</value> <value >EXT_extensions_string</value> <value >EXT_make_current_read</value> <value >EXT_pbuffer</value> <value >EXT_pixel_format</value> <value >EXT_swap_control</value> <value >OML_sync_control</value> <value >I3D_digital_video_control</value> <value >I3D_gamma</value> <value >I3D_genlock</value> <value >I3D_image_buffer</value> <value >I3D_swap_frame_lock</value> <value >I3D_swap_frame_usage</value> <value >NV_vertex_array_range</value> <value >3DL_stereo_control</value> <value >NV_swap_group</value> <value >NV_video_output</value> <value >NV_present_video</value> <value >ARB_create_context</value> <value >NV_gpu_affinity</value> <value >AMD_gpu_association</value> <value >NV_video_capture</value> <value >NV_copy_image</value> <value >ARB_framebuffer_sRGB</value> <value >NV_DX_interop</value> </property> </property-defs> <function-defs > <function name="wglCreateBufferRegionARB" return="HANDLE" category="ARB_buffer_region" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iLayerPlane" kind="value" type="int" input="true" /> <param name="uType" kind="value" type="UINT" input="true" /> </function> <function name="wglDeleteBufferRegionARB" return="VOID" category="ARB_buffer_region" > <param name="hRegion" kind="value" type="HANDLE" input="true" /> </function> <function name="wglSaveBufferRegionARB" return="BOOL" category="ARB_buffer_region" > <param name="hRegion" kind="value" type="HANDLE" input="true" /> <param name="x" kind="value" type="int" input="true" /> <param name="y" kind="value" type="int" input="true" /> <param name="width" kind="value" type="int" input="true" /> <param name="height" kind="value" type="int" input="true" /> </function> <function name="wglRestoreBufferRegionARB" return="BOOL" category="ARB_buffer_region" > <param name="hRegion" kind="value" type="HANDLE" input="true" /> <param name="x" kind="value" type="int" input="true" /> <param name="y" kind="value" type="int" input="true" /> <param name="width" kind="value" type="int" input="true" /> <param name="height" kind="value" type="int" input="true" /> <param name="xSrc" kind="value" type="int" input="true" /> <param name="ySrc" kind="value" type="int" input="true" /> </function> <function name="wglGetExtensionsStringARB" return="String" category="ARB_extensions_string" > <param name="hdc" kind="value" type="HDC" input="true" /> </function> <function name="wglGetPixelFormatAttribivARB" return="BOOL" category="ARB_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iLayerPlane" kind="value" type="int" input="true" /> <param name="nAttributes" kind="value" type="UINT" input="true" /> <param name="piAttributes" kind="array" type="int" input="true" compute="[nAttributes]" /> <param name="piValues" kind="array" type="int" input="false" compute="[nAttributes]" /> </function> <function name="wglGetPixelFormatAttribfvARB" return="BOOL" category="ARB_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iLayerPlane" kind="value" type="int" input="true" /> <param name="nAttributes" kind="value" type="UINT" input="true" /> <param name="piAttributes" kind="array" type="int" input="true" compute="[nAttributes]" /> <param name="pfValues" kind="array" type="FLOAT" input="false" compute="[nAttributes]" /> </function> <function name="wglChoosePixelFormatARB" return="BOOL" category="ARB_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="piAttribIList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> <param name="pfAttribFList" kind="array" type="FLOAT" input="true" compute="[COMPSIZE()]" /> <param name="nMaxFormats" kind="value" type="UINT" input="true" /> <param name="piFormats" kind="array" type="int" input="false" compute="[COMPSIZE(nNumFormats)]" /> <param name="nNumFormats" kind="reference" type="UINT" input="false" /> </function> <function name="wglMakeContextCurrentARB" return="BOOL" category="ARB_make_current_read" > <param name="hDrawDC" kind="value" type="HDC" input="true" /> <param name="hReadDC" kind="value" type="HDC" input="true" /> <param name="hglrc" kind="value" type="HGLRC" input="true" /> </function> <function name="wglGetCurrentReadDCARB" return="HDC" category="ARB_make_current_read" /> <function name="wglCreatePbufferARB" return="HPBUFFERARB" category="ARB_pbuffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iWidth" kind="value" type="int" input="true" /> <param name="iHeight" kind="value" type="int" input="true" /> <param name="piAttribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglGetPbufferDCARB" return="HDC" category="ARB_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> </function> <function name="wglReleasePbufferDCARB" return="int" category="ARB_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="hDC" kind="value" type="HDC" input="true" /> </function> <function name="wglDestroyPbufferARB" return="BOOL" category="ARB_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> </function> <function name="wglQueryPbufferARB" return="BOOL" category="ARB_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="reference" type="int" input="false" /> </function> <function name="wglBindTexImageARB" return="BOOL" category="ARB_render_texture" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iBuffer" kind="value" type="int" input="true" /> </function> <function name="wglReleaseTexImageARB" return="BOOL" category="ARB_render_texture" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iBuffer" kind="value" type="int" input="true" /> </function> <function name="wglSetPbufferAttribARB" return="BOOL" category="ARB_render_texture" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="piAttribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglCreateContextAttribsARB" return="HGLRC" category="ARB_create_context" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="hShareContext" kind="value" type="HGLRC" input="true" /> <param name="attribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglCreateDisplayColorTableEXT" return="GLboolean" category="EXT_display_color_table" > <param name="id" kind="value" type="GLushort" input="true" /> </function> <function name="wglLoadDisplayColorTableEXT" return="GLboolean" category="EXT_display_color_table" > <param name="table" kind="array" type="GLushort" input="true" compute="[length]" /> <param name="length" kind="value" type="GLuint" input="true" /> </function> <function name="wglBindDisplayColorTableEXT" return="GLboolean" category="EXT_display_color_table" > <param name="id" kind="value" type="GLushort" input="true" /> </function> <function name="wglDestroyDisplayColorTableEXT" return="VOID" category="EXT_display_color_table" > <param name="id" kind="value" type="GLushort" input="true" /> </function> <function name="wglGetExtensionsStringEXT" return="String" category="EXT_extensions_string" /> <function name="wglMakeContextCurrentEXT" return="BOOL" category="EXT_make_current_read" > <param name="hDrawDC" kind="value" type="HDC" input="true" /> <param name="hReadDC" kind="value" type="HDC" input="true" /> <param name="hglrc" kind="value" type="HGLRC" input="true" /> </function> <function name="wglGetCurrentReadDCEXT" return="HDC" category="EXT_make_current_read" /> <function name="wglCreatePbufferEXT" return="HPBUFFEREXT" category="EXT_pbuffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iWidth" kind="value" type="int" input="true" /> <param name="iHeight" kind="value" type="int" input="true" /> <param name="piAttribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglGetPbufferDCEXT" return="HDC" category="EXT_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFEREXT" input="true" /> </function> <function name="wglReleasePbufferDCEXT" return="int" category="EXT_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFEREXT" input="true" /> <param name="hDC" kind="value" type="HDC" input="true" /> </function> <function name="wglDestroyPbufferEXT" return="BOOL" category="EXT_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFEREXT" input="true" /> </function> <function name="wglQueryPbufferEXT" return="BOOL" category="EXT_pbuffer" > <param name="hPbuffer" kind="value" type="HPBUFFEREXT" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="reference" type="int" input="false" /> </function> <function name="wglGetPixelFormatAttribivEXT" return="BOOL" category="EXT_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iLayerPlane" kind="value" type="int" input="true" /> <param name="nAttributes" kind="value" type="UINT" input="true" /> <param name="piAttributes" kind="array" type="int" input="false" compute="[nAttributes]" /> <param name="piValues" kind="array" type="int" input="false" compute="[nAttributes]" /> </function> <function name="wglGetPixelFormatAttribfvEXT" return="BOOL" category="EXT_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="iPixelFormat" kind="value" type="int" input="true" /> <param name="iLayerPlane" kind="value" type="int" input="true" /> <param name="nAttributes" kind="value" type="UINT" input="true" /> <param name="piAttributes" kind="array" type="int" input="false" compute="[nAttributes]" /> <param name="pfValues" kind="array" type="FLOAT" input="false" compute="[nAttributes]" /> </function> <function name="wglChoosePixelFormatEXT" return="BOOL" category="EXT_pixel_format" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="piAttribIList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> <param name="pfAttribFList" kind="array" type="FLOAT" input="true" compute="[COMPSIZE()]" /> <param name="nMaxFormats" kind="value" type="UINT" input="true" /> <param name="piFormats" kind="array" type="int" input="false" compute="[COMPSIZE(nNumFormats)]" /> <param name="nNumFormats" kind="reference" type="UINT" input="false" /> </function> <function name="wglSwapIntervalEXT" return="BOOL" category="EXT_swap_control" > <param name="interval" kind="value" type="int" input="true" /> </function> <function name="wglGetSwapIntervalEXT" return="int" category="EXT_swap_control" /> <function name="wglAllocateMemoryNV" return="VoidPointer" category="NV_vertex_array_range" > <param name="size" kind="value" type="GLsizei" input="true" /> <param name="readfreq" kind="value" type="GLfloat" input="true" /> <param name="writefreq" kind="value" type="GLfloat" input="true" /> <param name="priority" kind="value" type="GLfloat" input="true" /> </function> <function name="wglFreeMemoryNV" return="void" category="NV_vertex_array_range" > <param name="pointer" kind="array" type="void" input="false" compute="[1]" /> </function> <function name="wglGetSyncValuesOML" return="BOOL" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="ust" kind="array" type="INT64" input="false" compute="[1]" /> <param name="msc" kind="array" type="INT64" input="false" compute="[1]" /> <param name="sbc" kind="array" type="INT64" input="false" compute="[1]" /> </function> <function name="wglGetMscRateOML" return="BOOL" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="numerator" kind="array" type="INT32" input="false" compute="[1]" /> <param name="denominator" kind="array" type="INT32" input="false" compute="[1]" /> </function> <function name="wglSwapBuffersMscOML" return="INT64" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="target_msc" kind="value" type="INT64" input="true" /> <param name="divisor" kind="value" type="INT64" input="true" /> <param name="remainder" kind="value" type="INT64" input="true" /> </function> <function name="wglSwapLayerBuffersMscOML" return="INT64" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="fuPlanes" kind="value" type="int" input="true" /> <param name="target_msc" kind="value" type="INT64" input="true" /> <param name="divisor" kind="value" type="INT64" input="true" /> <param name="remainder" kind="value" type="INT64" input="true" /> </function> <function name="wglWaitForMscOML" return="BOOL" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="target_msc" kind="value" type="INT64" input="true" /> <param name="divisor" kind="value" type="INT64" input="true" /> <param name="remainder" kind="value" type="INT64" input="true" /> <param name="ust" kind="array" type="INT64" input="false" compute="[1]" /> <param name="msc" kind="array" type="INT64" input="false" compute="[1]" /> <param name="sbc" kind="array" type="INT64" input="false" compute="[1]" /> </function> <function name="wglWaitForSbcOML" return="BOOL" category="OML_sync_control" > <param name="hdc" kind="value" type="HDC" input="true" /> <param name="target_sbc" kind="value" type="INT64" input="true" /> <param name="ust" kind="array" type="INT64" input="false" compute="[1]" /> <param name="msc" kind="array" type="INT64" input="false" compute="[1]" /> <param name="sbc" kind="array" type="INT64" input="false" compute="[1]" /> </function> <function name="wglGetDigitalVideoParametersI3D" return="BOOL" category="I3D_digital_video_control" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="array" type="int" input="false" compute="[COMPSIZE(iAttribute)]" /> </function> <function name="wglSetDigitalVideoParametersI3D" return="BOOL" category="I3D_digital_video_control" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="array" type="int" input="true" compute="[COMPSIZE(iAttribute)]" /> </function> <function name="wglGetGammaTableParametersI3D" return="BOOL" category="I3D_gamma" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="array" type="int" input="false" compute="[COMPSIZE(iAttribute)]" /> </function> <function name="wglSetGammaTableParametersI3D" return="BOOL" category="I3D_gamma" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="array" type="int" input="true" compute="[COMPSIZE(iAttribute)]" /> </function> <function name="wglGetGammaTableI3D" return="BOOL" category="I3D_gamma" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iEntries" kind="value" type="int" input="true" /> <param name="puRed" kind="array" type="USHORT" input="false" compute="[iEntries]" /> <param name="puGreen" kind="array" type="USHORT" input="false" compute="[iEntries]" /> <param name="puBlue" kind="array" type="USHORT" input="false" compute="[iEntries]" /> </function> <function name="wglSetGammaTableI3D" return="BOOL" category="I3D_gamma" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="iEntries" kind="value" type="int" input="true" /> <param name="puRed" kind="array" type="USHORT" input="true" compute="[iEntries]" /> <param name="puGreen" kind="array" type="USHORT" input="true" compute="[iEntries]" /> <param name="puBlue" kind="array" type="USHORT" input="true" compute="[iEntries]" /> </function> <function name="wglEnableGenlockI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> </function> <function name="wglDisableGenlockI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> </function> <function name="wglIsEnabledGenlockI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="pFlag" kind="reference" type="BOOL" input="false" /> </function> <function name="wglGenlockSourceI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uSource" kind="value" type="UINT" input="true" /> </function> <function name="wglGetGenlockSourceI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uSource" kind="reference" type="UINT" input="false" /> </function> <function name="wglGenlockSourceEdgeI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uEdge" kind="value" type="UINT" input="true" /> </function> <function name="wglGetGenlockSourceEdgeI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uEdge" kind="reference" type="UINT" input="false" /> </function> <function name="wglGenlockSampleRateI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uRate" kind="value" type="UINT" input="true" /> </function> <function name="wglGetGenlockSampleRateI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uRate" kind="reference" type="UINT" input="false" /> </function> <function name="wglGenlockSourceDelayI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uDelay" kind="value" type="UINT" input="true" /> </function> <function name="wglGetGenlockSourceDelayI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uDelay" kind="reference" type="UINT" input="false" /> </function> <function name="wglQueryGenlockMaxSourceDelayI3D" return="BOOL" category="I3D_genlock" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uMaxLineDelay" kind="reference" type="UINT" input="false" /> <param name="uMaxPixelDelay" kind="reference" type="UINT" input="false" /> </function> <function name="wglCreateImageBufferI3D" return="LPVOID" category="I3D_image_buffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="dwSize" kind="value" type="DWORD" input="true" /> <param name="uFlags" kind="value" type="UINT" input="true" /> </function> <function name="wglDestroyImageBufferI3D" return="BOOL" category="I3D_image_buffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="pAddress" kind="value" type="LPVOID" input="true" /> </function> <function name="wglAssociateImageBufferEventsI3D" return="BOOL" category="I3D_image_buffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="pEvent" kind="array" type="HANDLE" input="true" compute="[count]" /> <param name="pAddress" kind="array" type="LPVOID" input="true" compute="[count]" /> <param name="pSize" kind="array" type="DWORD" input="true" compute="[count]" /> <param name="count" kind="value" type="UINT" input="true" /> </function> <function name="wglReleaseImageBufferEventsI3D" return="BOOL" category="I3D_image_buffer" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="pAddress" kind="array" type="LPVOID" input="true" compute="[count]" /> <param name="count" kind="value" type="UINT" input="true" /> </function> <function name="wglEnableFrameLockI3D" return="BOOL" category="I3D_swap_frame_lock" /> <function name="wglDisableFrameLockI3D" return="BOOL" category="I3D_swap_frame_lock" /> <function name="wglIsEnabledFrameLockI3D" return="BOOL" category="I3D_swap_frame_lock" > <param name="pFlag" kind="reference" type="BOOL" input="false" /> </function> <function name="wglQueryFrameLockMasterI3D" return="BOOL" category="I3D_swap_frame_lock" > <param name="pFlag" kind="reference" type="BOOL" input="false" /> </function> <function name="wglGetFrameUsageI3D" return="BOOL" category="I3D_swap_frame_usage" > <param name="pUsage" kind="reference" type="float" input="false" /> </function> <function name="wglBeginFrameTrackingI3D" return="BOOL" category="I3D_swap_frame_usage" /> <function name="wglEndFrameTrackingI3D" return="BOOL" category="I3D_swap_frame_usage" /> <function name="wglQueryFrameTrackingI3D" return="BOOL" category="I3D_swap_frame_usage" > <param name="pFrameCount" kind="reference" type="DWORD" input="false" /> <param name="pMissedFrames" kind="reference" type="DWORD" input="false" /> <param name="pLastMissedUsage" kind="reference" type="float" input="false" /> </function> <function name="wglSetStereoEmitterState3DL" return="BOOL" category="3DL_stereo_control" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uState" kind="value" type="UINT" input="true" /> </function> <function name="wglEnumerateVideoDevicesNV" return="int" category="NV_present_video" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="phDeviceList" kind="array" type="HVIDEOOUTPUTDEVICENV" input="false" /> </function> <function name="wglBindVideoDeviceNV" return="BOOL" category="NV_present_video" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="uVideoSlot" kind="value" type="uint" input="true" /> <param name="hVideoDevice" kind="value" type="HVIDEOOUTPUTDEVICENV" input="true" /> <param name="piAttribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglQueryCurrentContextNV" return="BOOL" category="NV_present_video" > <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="array" type="int" input="false" compute="[COMPSIZE()]" /> </function> <function name="wglGetVideoDeviceNV" return="BOOL" category="NV_video_output" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="numDevices" kind="value" type="int" input="true" /> <param name="hVideoDevice" kind="reference" type="HPVIDEODEV" input="false" /> </function> <function name="wglReleaseVideoDeviceNV" return="BOOL" category="NV_video_output" > <param name="hVideoDevice" kind="value" type="HPVIDEODEV" input="true" /> </function> <function name="wglBindVideoImageNV" return="BOOL" category="NV_video_output" > <param name="hVideoDevice" kind="value" type="HPVIDEODEV" input="true" /> <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iVideoBuffer" kind="value" type="int" input="true" /> </function> <function name="wglReleaseVideoImageNV" return="BOOL" category="NV_video_output" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iVideoBuffer" kind="value" type="int" input="true" /> </function> <function name="wglSendPbufferToVideoNV" return="BOOL" category="NV_video_output" > <param name="hPbuffer" kind="value" type="HPBUFFERARB" input="true" /> <param name="iBufferType" kind="value" type="int" input="true" /> <param name="pulCounterPbuffer" kind="reference" type="ulong" input="false" /> <param name="bBlock" kind="value" type="BOOL" input="true" /> </function> <function name="wglGetVideoInfoNV" return="BOOL" category="NV_video_output" > <param name="hpVideoDevice" kind="value" type="HPVIDEODEV" input="true" /> <param name="pulCounterOutputPbuffer" kind="reference" type="ulong" input="false" /> <param name="pulCounterOutputVideo" kind="reference" type="ulong" input="false" /> </function> <function name="wglJoinSwapGroupNV" return="BOOL" category="NV_swap_group" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="group" kind="value" type="GLuint" input="true" /> </function> <function name="wglBindSwapBarrierNV" return="BOOL" category="NV_swap_group" > <param name="group" kind="value" type="GLuint" input="true" /> <param name="barrier" kind="value" type="GLuint" input="true" /> </function> <function name="wglQuerySwapGroupNV" return="BOOL" category="NV_swap_group" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="group" kind="reference" type="GLuint" input="false" /> <param name="barrier" kind="reference" type="GLuint" input="false" /> </function> <function name="wglQueryMaxSwapGroupsNV" return="BOOL" category="NV_swap_group" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="maxGroups" kind="reference" type="GLuint" input="false" /> <param name="maxBarriers" kind="reference" type="GLuint" input="false" /> </function> <function name="wglQueryFrameCountNV" return="BOOL" category="NV_swap_group" > <param name="hDC" kind="value" type="HDC" input="true" /> <param name="count" kind="reference" type="GLuint" input="false" /> </function> <function name="wglResetFrameCountNV" return="BOOL" category="NV_swap_group" > <param name="hDC" kind="value" type="HDC" input="true" /> </function> <function name="wglEnumGpusNV" return="BOOL" category="NV_gpu_affinity" > <param name="iGpuIndex" kind="value" type="UINT" input="true" /> <param name="phGpu" kind="reference" type="HGPUNV" input="false" /> </function> <function name="wglEnumGpuDevicesNV" return="BOOL" category="NV_gpu_affinity" > <param name="hGpu" kind="value" type="HGPUNV" input="true" /> <param name="iDeviceIndex" kind="value" type="UINT" input="true" /> <param name="lpGpuDevice" kind="value" type="PGPU_DEVICE" input="true" /> </function> <function name="wglCreateAffinityDCNV" return="HDC" category="NV_gpu_affinity" > <param name="phGpuList" kind="array" type="HGPUNV" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglEnumGpusFromAffinityDCNV" return="BOOL" category="NV_gpu_affinity" > <param name="hAffinityDC" kind="value" type="HDC" input="true" /> <param name="iGpuIndex" kind="value" type="UINT" input="true" /> <param name="hGpu" kind="reference" type="HGPUNV" input="false" /> </function> <function name="wglDeleteDCNV" return="BOOL" category="NV_gpu_affinity" > <param name="hdc" kind="value" type="HDC" input="true" /> </function> <function name="wglGetGPUIDsAMD" return="UINT" category="AMD_gpu_association" > <param name="maxCount" kind="value" type="UINT" input="true" /> <param name="ids" kind="array" type="UINT" input="false" compute="[maxCount]" /> </function> <function name="wglGetGPUInfoAMD" return="INT" category="AMD_gpu_association" > <param name="id" kind="value" type="UINT" input="true" /> <param name="property" kind="value" type="int" input="true" /> <param name="dataType" kind="value" type="GLenum" input="true" /> <param name="size" kind="value" type="UINT" input="true" /> <param name="data" kind="array" type="void" input="false" compute="[COMPSIZE(dataType,size)]" /> </function> <function name="wglGetContextGPUIDAMD" return="UINT" category="AMD_gpu_association" > <param name="hglrc" kind="value" type="HGLRC" input="true" /> </function> <function name="wglCreateAssociatedContextAMD" return="HGLRC" category="AMD_gpu_association" > <param name="id" kind="value" type="UINT" input="true" /> </function> <function name="wglCreateAssociatedContextAttribsAMD" return="HGLRC" category="AMD_gpu_association" > <param name="id" kind="value" type="UINT" input="true" /> <param name="hShareContext" kind="value" type="HGLRC" input="true" /> <param name="attribList" kind="array" type="int" input="true" compute="[COMPSIZE()]" /> </function> <function name="wglDeleteAssociatedContextAMD" return="BOOL" category="AMD_gpu_association" > <param name="hglrc" kind="value" type="HGLRC" input="true" /> </function> <function name="wglMakeAssociatedContextCurrentAMD" return="BOOL" category="AMD_gpu_association" > <param name="hglrc" kind="value" type="HGLRC" input="true" /> </function> <function name="wglGetCurrentAssociatedContextAMD" return="HGLRC" category="AMD_gpu_association" /> <function name="wglBlitContextFramebufferAMD" return="VOID" category="AMD_gpu_association" > <param name="dstCtx" kind="value" type="HGLRC" input="true" /> <param name="srcX0" kind="value" type="GLint" input="true" /> <param name="srcY0" kind="value" type="GLint" input="true" /> <param name="srcX1" kind="value" type="GLint" input="true" /> <param name="srcY1" kind="value" type="GLint" input="true" /> <param name="dstX0" kind="value" type="GLint" input="true" /> <param name="dstY0" kind="value" type="GLint" input="true" /> <param name="dstX1" kind="value" type="GLint" input="true" /> <param name="dstY1" kind="value" type="GLint" input="true" /> <param name="mask" kind="value" type="GLbitfield" input="true" /> <param name="filter" kind="value" type="GLenum" input="true" /> </function> <function name="wglBindVideoCaptureDeviceNV" return="BOOL" category="NV_video_capture" > <param name="uVideoSlot" kind="value" type="UINT" input="true" /> <param name="hDevice" kind="value" type="HVIDEOINPUTDEVICENV" input="true" /> </function> <function name="wglEnumerateVideoCaptureDevicesNV" return="UINT" category="NV_video_capture" > <param name="hDc" kind="value" type="HDC" input="true" /> <param name="phDeviceList" kind="reference" type="HVIDEOINPUTDEVICENV" input="false" /> </function> <function name="wglLockVideoCaptureDeviceNV" return="BOOL" category="NV_video_capture" > <param name="hDc" kind="value" type="HDC" input="true" /> <param name="hDevice" kind="value" type="HVIDEOINPUTDEVICENV" input="true" /> </function> <function name="wglQueryVideoCaptureDeviceNV" return="BOOL" category="NV_video_capture" > <param name="hDc" kind="value" type="HDC" input="true" /> <param name="hDevice" kind="value" type="HVIDEOINPUTDEVICENV" input="true" /> <param name="iAttribute" kind="value" type="int" input="true" /> <param name="piValue" kind="reference" type="int" input="false" /> </function> <function name="wglReleaseVideoCaptureDeviceNV" return="BOOL" category="NV_video_capture" > <param name="hDc" kind="value" type="HDC" input="true" /> <param name="hDevice" kind="value" type="HVIDEOINPUTDEVICENV" input="true" /> </function> <function name="wglCopyImageSubDataNV" return="BOOL" category="NV_copy_image" > <param name="hSrcRC" kind="value" type="HGLRC" input="true" /> <param name="srcName" kind="value" type="GLuint" input="true" /> <param name="srcTarget" kind="value" type="GLenum" input="true" /> <param name="srcLevel" kind="value" type="GLint" input="true" /> <param name="srcX" kind="value" type="GLint" input="true" /> <param name="srcY" kind="value" type="GLint" input="true" /> <param name="srcZ" kind="value" type="GLint" input="true" /> <param name="hDstRC" kind="value" type="HGLRC" input="true" /> <param name="dstName" kind="value" type="GLuint" input="true" /> <param name="dstTarget" kind="value" type="GLenum" input="true" /> <param name="dstLevel" kind="value" type="GLint" input="true" /> <param name="dstX" kind="value" type="GLint" input="true" /> <param name="dstY" kind="value" type="GLint" input="true" /> <param name="dstZ" kind="value" type="GLint" input="true" /> <param name="width" kind="value" type="GLsizei" input="true" /> <param name="height" kind="value" type="GLsizei" input="true" /> <param name="depth" kind="value" type="GLsizei" input="true" /> </function> <function name="wglDXSetResourceShareHandleNV" return="BOOL" category="NV_DX_interop" > <param name="dxObject" kind="array" type="void" input="false" compute="[1]" /> <param name="shareHandle" kind="value" type="HANDLE" input="true" /> </function> <function name="wglDXOpenDeviceNV" return="HANDLE" category="NV_DX_interop" > <param name="dxDevice" kind="array" type="void" input="false" compute="[1]" /> </function> <function name="wglDXCloseDeviceNV" return="BOOL" category="NV_DX_interop" > <param name="hDevice" kind="value" type="HANDLE" input="true" /> </function> <function name="wglDXRegisterObjectNV" return="HANDLE" category="NV_DX_interop" > <param name="hDevice" kind="value" type="HANDLE" input="true" /> <param name="dxObject" kind="array" type="void" input="false" compute="[1]" /> <param name="name" kind="value" type="GLuint" input="true" /> <param name="type" kind="value" type="GLenum" input="true" /> <param name="access" kind="value" type="GLenum" input="true" /> </function> <function name="wglDXUnregisterObjectNV" return="BOOL" category="NV_DX_interop" > <param name="hDevice" kind="value" type="HANDLE" input="true" /> <param name="hObject" kind="value" type="HANDLE" input="true" /> </function> <function name="wglDXObjectAccessNV" return="BOOL" category="NV_DX_interop" > <param name="hObject" kind="value" type="HANDLE" input="true" /> <param name="access" kind="value" type="GLenum" input="true" /> </function> <function name="wglDXLockObjectsNV" return="BOOL" category="NV_DX_interop" > <param name="hDevice" kind="value" type="HANDLE" input="true" /> <param name="count" kind="value" type="GLint" input="true" /> <param name="hObjects" kind="array" type="HANDLE" input="false" compute="[count]" /> </function> <function name="wglDXUnlockObjectsNV" return="BOOL" category="NV_DX_interop" > <param name="hDevice" kind="value" type="HANDLE" input="true" /> <param name="count" kind="value" type="GLint" input="true" /> <param name="hObjects" kind="array" type="HANDLE" input="false" compute="[count]" /> </function> </function-defs> </functions> </specification> |
Added jni/glshim/spec/yml/gles-1.1.yml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | glActiveTexture: [void, GLenum texture] glAlphaFunc: [void, GLenum func, GLclampf ref] glAlphaFuncx: [void, GLenum func, GLclampx ref] glBindBuffer: [void, GLenum target, GLuint buffer] glBindTexture: [void, GLenum target, GLuint texture] glBlendFunc: [void, GLenum sfactor, GLenum dfactor] glBufferData: [void, GLenum target, GLsizeiptr size, "const GLvoid *data", GLenum usage] glBufferSubData: [void, GLenum target, GLintptr offset, GLsizeiptr size, "const GLvoid *data"] glClear: [void, GLbitfield mask] glClearColor: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] glClearColorx: [void, GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha] glClearDepthf: [void, GLclampf depth] glClearDepthx: [void, GLclampx depth] glClearStencil: [void, GLint s] glClientActiveTexture: [void, GLenum texture] glClipPlanef: [void, GLenum plane, "const GLfloat *equation"] glClipPlanex: [void, GLenum plane, "const GLfixed *equation"] glColor4f: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] glColor4ub: [void, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha] glColor4x: [void, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha] glColorMask: [void, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha] glColorPointer: [void, GLint size, GLenum type, GLsizei stride, "const GLvoid *pointer"] glCompressedTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, "const GLvoid *data"] glCompressedTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, "const GLvoid *data"] glCopyTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCullFace: [void, GLenum mode] glDeleteBuffers: [void, GLsizei n, "const GLuint *buffers"] glDeleteTextures: [void, GLsizei n, "const GLuint *textures"] glDepthFunc: [void, GLenum func] glDepthMask: [void, GLboolean flag] glDepthRangef: [void, GLclampf near, GLclampf far] glDepthRangex: [void, GLclampx near, GLclampx far] glDisable: [void, GLenum cap] glDisableClientState: [void, GLenum array] glDisableClientState: [void, GLenum array] glDrawArrays: [void, GLenum mode, GLint first, GLsizei count] glDrawElements: [void, GLenum mode, GLsizei count, GLenum type, "const GLvoid *indices"] glEnable: [void, GLenum cap] glEnableClientState: [void, GLenum array] glEnableClientState: [void, GLenum array] glFinish: [void, void] glFlush: [void, void] glFogf: [void, GLenum pname, GLfloat param] glFogfv: [void, GLenum pname, "const GLfloat *params"] glFogx: [void, GLenum pname, GLfixed param] glFogxv: [void, GLenum pname, "const GLfixed *params"] glFrontFace: [void, GLenum mode] glFrustumf: [void, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far] glFrustumx: [void, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far] glGenBuffers: [void, GLsizei n, "GLuint *buffers"] glGenTextures: [void, GLsizei n, "GLuint *textures"] glGetBooleanv: [void, GLenum pname, "GLboolean *params"] glGetBufferParameteriv: [void, GLenum target, GLenum pname, "GLint *params"] glGetClipPlanef: [void, GLenum plane, "GLfloat *equation"] glGetClipPlanex: [void, GLenum plane, "GLfixed *equation"] glGetError: [GLenum, void] glGetFixedv: [void, GLenum pname, "GLfixed *params"] glGetFloatv: [void, GLenum pname, "GLfloat *params"] glGetIntegerv: [void, GLenum pname, "GLint *params"] glGetLightfv: [void, GLenum light, GLenum pname, "GLfloat *params"] glGetLightxv: [void, GLenum light, GLenum pname, "GLfixed *params"] glGetMaterialfv: [void, GLenum face, GLenum pname, "GLfloat *params"] glGetMaterialxv: [void, GLenum face, GLenum pname, "GLfixed *params"] glGetPointerv: [void, GLenum pname, "GLvoid **params"] glGetString: [const GLubyte *, GLenum name] glGetTexEnvfv: [void, GLenum target, GLenum pname, "GLfloat *params"] glGetTexEnviv: [void, GLenum target, GLenum pname, "GLint *params"] glGetTexEnvxv: [void, GLenum target, GLenum pname, "GLfixed *params"] glGetTexParameterfv: [void, GLenum target, GLenum pname, "GLfloat *params"] glGetTexParameteriv: [void, GLenum target, GLenum pname, "GLint *params"] glGetTexParameterxv: [void, GLenum target, GLenum pname, "GLfixed *params"] glHint: [void, GLenum target, GLenum mode] glIsBuffer: [GLboolean, GLuint buffer] glIsEnabled: [GLboolean, GLenum cap] glIsTexture: [GLboolean, GLuint texture] glLightf: [void, GLenum light, GLenum pname, GLfloat param] glLightfv: [void, GLenum light, GLenum pname, "const GLfloat *params"] glLightModelf: [void, GLenum pname, GLfloat param] glLightModelfv: [void, GLenum pname, "const GLfloat *params"] glLightModelx: [void, GLenum pname, GLfixed param] glLightModelxv: [void, GLenum pname, "const GLfixed *params"] glLightx: [void, GLenum light, GLenum pname, GLfixed param] glLightxv: [void, GLenum light, GLenum pname, "const GLfixed *params"] glLineWidth: [void, GLfloat width] glLineWidthx: [void, GLfixed width] glLoadIdentity: [void, void] glLoadMatrixf: [void, "const GLfloat *m"] glLoadMatrixx: [void, "const GLfixed *m"] glLogicOp: [void, GLenum opcode] glMaterialf: [void, GLenum face, GLenum pname, GLfloat param] glMaterialfv: [void, GLenum face, GLenum pname, "const GLfloat *params"] glMaterialx: [void, GLenum face, GLenum pname, GLfixed param] glMaterialxv: [void, GLenum face, GLenum pname, "const GLfixed *params"] glMatrixMode: [void, GLenum mode] glMultiTexCoord4f: [void, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q] glMultiTexCoord4x: [void, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q] glMultMatrixf: [void, "const GLfloat *m"] glMultMatrixx: [void, "const GLfixed *m"] glNormal3f: [void, GLfloat nx, GLfloat ny, GLfloat nz] glNormal3x: [void, GLfixed nx, GLfixed ny, GLfixed nz] glNormalPointer: [void, GLenum type, GLsizei stride, "const GLvoid *pointer"] glOrthof: [void, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far] glOrthox: [void, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far] glPixelStorei: [void, GLenum pname, GLint param] glPointParameterf: [void, GLenum pname, GLfloat param] glPointParameterfv: [void, GLenum pname, "const GLfloat *params"] glPointParameterx: [void, GLenum pname, GLfixed param] glPointParameterxv: [void, GLenum pname, "const GLfixed *params"] glPointSize: [void, GLfloat size] glPointSizePointerOES: [void, GLenum type, GLsizei stride, "const GLvoid *pointer"] glPointSizex: [void, GLfixed size] glPolygonOffset: [void, GLfloat factor, GLfloat units] glPolygonOffsetx: [void, GLfixed factor, GLfixed units] glPopMatrix: [void, void] glPushMatrix: [void, void] glReadPixels: [void, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, "GLvoid *pixels"] glRotatef: [void, GLfloat angle, GLfloat x, GLfloat y, GLfloat z] glRotatex: [void, GLfixed angle, GLfixed x, GLfixed y, GLfixed z] glSampleCoverage: [void, GLclampf value, GLboolean invert] glSampleCoveragex: [void, GLclampx value, GLboolean invert] glScalef: [void, GLfloat x, GLfloat y, GLfloat z] glScalex: [void, GLfixed x, GLfixed y, GLfixed z] glScissor: [void, GLint x, GLint y, GLsizei width, GLsizei height] glShadeModel: [void, GLenum mode] glStencilFunc: [void, GLenum func, GLint ref, GLuint mask] glStencilMask: [void, GLuint mask] glStencilOp: [void, GLenum fail, GLenum zfail, GLenum zpass] glTexCoordPointer: [void, GLint size, GLenum type, GLsizei stride, "const GLvoid *pointer"] glTexEnvf: [void, GLenum target, GLenum pname, GLfloat param] glTexEnvfv: [void, GLenum target, GLenum pname, "const GLfloat *params"] glTexEnvi: [void, GLenum target, GLenum pname, GLint param] glTexEnviv: [void, GLenum target, GLenum pname, "const GLint *params"] glTexEnvx: [void, GLenum target, GLenum pname, GLfixed param] glTexEnvxv: [void, GLenum target, GLenum pname, "const GLfixed *params"] glTexImage2D: [void, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, "const GLvoid *pixels"] glTexParameterf: [void, GLenum target, GLenum pname, GLfloat param] glTexParameterfv: [void, GLenum target, GLenum pname, "const GLfloat *params"] glTexParameteri: [void, GLenum target, GLenum pname, GLint param] glTexParameteriv: [void, GLenum target, GLenum pname, "const GLint *params"] glTexParameterx: [void, GLenum target, GLenum pname, GLfixed param] glTexParameterxv: [void, GLenum target, GLenum pname, "const GLfixed *params"] glTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, "const GLvoid *pixels"] glTranslatef: [void, GLfloat x, GLfloat y, GLfloat z] glTranslatex: [void, GLfixed x, GLfixed y, GLfixed z] glVertexPointer: [void, GLint size, GLenum type, GLsizei stride, "const GLvoid *pointer"] glViewport: [void, GLint x, GLint y, GLsizei width, GLsizei height] |
Added jni/glshim/spec/yml/gles-2.0.yml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | glActiveTexture: [void, GLenum texture] glAttachShader: [void, GLuint program, GLuint shader] glBindAttribLocation: [void, GLuint program, GLuint index, const GLchar * name] glBindBuffer: [void, GLenum target, GLuint buffer] glBindFramebuffer: [void, GLenum target, GLuint framebuffer] glBindRenderbuffer: [void, GLenum target, GLuint renderbuffer] glBindTexture: [void, GLenum target, GLuint texture] glBlendColor: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] glBlendEquation: [void, GLenum mode] glBlendEquationSeparate: [void, GLenum modeRGB, GLenum modeA] glBlendFunc: [void, GLenum sfactor, GLenum dfactor] glBlendFuncSeparate: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] glBufferData: [void, GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage] glBufferSubData: [void, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data] glCheckFramebufferStatus: [GLenum, GLenum target] glClear: [void, GLbitfield mask] glClearColor: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] glClearDepthf: [void, GLclampf depth] glClearStencil: [void, GLint s] glColorMask: [void, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha] glCompileShader: [void, GLuint shader] glCompressedTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data] glCompressedTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data] glCopyTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCreateProgram: [GLuint] glCreateShader: [GLuint, GLenum type] glCullFace: [void, GLenum mode] glDeleteBuffers: [void, GLsizei n, const GLuint * buffer] glDeleteFramebuffers: [void, GLsizei n, const GLuint * framebuffers] glDeleteProgram: [void, GLuint program] glDeleteRenderbuffers: [void, GLsizei n, const GLuint * renderbuffers] glDeleteShader: [void, GLuint program] glDeleteTextures: [void, GLsizei n, const GLuint * textures] glDepthFunc: [void, GLenum func] glDepthMask: [void, GLboolean flag] glDepthRangef: [void, GLclampf zNear, GLclampf zFar] glDetachShader: [void, GLuint program, GLuint shader] glDisable: [void, GLenum cap] glDisableVertexAttribArray: [void, GLuint index] glDrawArrays: [void, GLenum mode, GLint first, GLsizei count] glDrawElements: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid * indices] glEnable: [void, GLenum cap] glEnableVertexAttribArray: [void, GLuint index] glFinish: [void] glFlush: [void] glFramebufferRenderbuffer: [void, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] glFramebufferTexture2D: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glFrontFace: [void, GLenum mode] glGenBuffers: [void, GLsizei n, GLuint * buffer] glGenFramebuffers: [void, GLsizei n, GLuint * framebuffers] glGenRenderbuffers: [void, GLsizei n, GLuint * renderbuffers] glGenTextures: [void, GLsizei n, GLuint * textures] glGenerateMipmap: [void, GLenum target] glGetActiveAttrib: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name] glGetActiveUniform: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name] glGetAttachedShaders: [void, GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj] glGetAttribLocation: [GLint, GLuint program, const GLchar * name] glGetBooleanv: [void, GLenum pname, GLboolean * params] glGetBufferParameteriv: [void, GLenum target, GLenum pname, GLint * params] glGetError: [GLenum] glGetFloatv: [void, GLenum pname, GLfloat * params] glGetFramebufferAttachmentParameteriv: [void, GLenum target, GLenum attachment, GLenum pname, GLint * params] glGetIntegerv: [void, GLenum pname, GLint * params] glGetProgramInfoLog: [void, GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog] glGetProgramiv: [void, GLuint program, GLenum pname, GLint * params] glGetRenderbufferParameteriv: [void, GLenum target, GLenum pname, GLint * params] glGetShaderInfoLog: [void, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog] glGetShaderPrecisionFormat: [void, GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision] glGetShaderSource: [void, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source] glGetShaderiv: [void, GLuint shader, GLenum pname, GLint * params] glGetString: [const GLubyte *, GLenum name] glGetTexParameterfv: [void, GLenum target, GLenum pname, GLfloat * params] glGetTexParameteriv: [void, GLenum target, GLenum pname, GLint * params] glGetUniformLocation: [GLint, GLuint program, const GLchar * name] glGetUniformfv: [void, GLuint program, GLint location, GLfloat * params] glGetUniformiv: [void, GLuint program, GLint location, GLint * params] glGetVertexAttribPointerv: [void, GLuint index, GLenum pname, GLvoid ** pointer] glGetVertexAttribfv: [void, GLuint index, GLenum pname, GLfloat * params] glGetVertexAttribiv: [void, GLuint index, GLenum pname, GLint * params] glHint: [void, GLenum target, GLenum mode] glIsBuffer: [GLboolean, GLuint buffer] glIsEnabled: [GLboolean, GLenum cap] glIsFramebuffer: [GLboolean, GLuint framebuffer] glIsProgram: [GLboolean, GLuint program] glIsRenderbuffer: [GLboolean, GLuint renderbuffer] glIsShader: [GLboolean, GLuint shader] glIsTexture: [GLboolean, GLuint texture] glLineWidth: [void, GLfloat width] glLinkProgram: [void, GLuint program] glPixelStorei: [void, GLenum pname, GLint param] glPolygonOffset: [void, GLfloat factor, GLfloat units] glReadPixels: [void, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels] glReleaseShaderCompiler: [void] glRenderbufferStorage: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height] glSampleCoverage: [void, GLclampf value, GLboolean invert] glScissor: [void, GLint x, GLint y, GLsizei width, GLsizei height] glShaderBinary: [void, GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length] glShaderSource: [void, GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length] glStencilFunc: [void, GLenum func, GLint ref, GLuint mask] glStencilFuncSeparate: [void, GLenum face, GLenum func, GLint ref, GLuint mask] glStencilMask: [void, GLuint mask] glStencilMaskSeparate: [void, GLenum face, GLuint mask] glStencilOp: [void, GLenum fail, GLenum zfail, GLenum zpass] glStencilOpSeparate: [void, GLenum face, GLenum sfail, GLenum zfail, GLenum zpass] glTexImage2D: [void, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels] glTexParameterf: [void, GLenum target, GLenum pname, GLfloat param] glTexParameterfv: [void, GLenum target, GLenum pname, const GLfloat * params] glTexParameteri: [void, GLenum target, GLenum pname, GLint param] glTexParameteriv: [void, GLenum target, GLenum pname, const GLint * params] glTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels] glUniform1f: [void, GLint location, GLfloat v0] glUniform1fv: [void, GLint location, GLsizei count, const GLfloat * value] glUniform1i: [void, GLint location, GLint v0] glUniform1iv: [void, GLint location, GLsizei count, const GLint * value] glUniform2f: [void, GLint location, GLfloat v0, GLfloat v1] glUniform2fv: [void, GLint location, GLsizei count, const GLfloat * value] glUniform2i: [void, GLint location, GLint v0, GLint v1] glUniform2iv: [void, GLint location, GLsizei count, const GLint * value] glUniform3f: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2] glUniform3fv: [void, GLint location, GLsizei count, const GLfloat * value] glUniform3i: [void, GLint location, GLint v0, GLint v1, GLint v2] glUniform3iv: [void, GLint location, GLsizei count, const GLint * value] glUniform4f: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3] glUniform4fv: [void, GLint location, GLsizei count, const GLfloat * value] glUniform4i: [void, GLint location, GLint v0, GLint v1, GLint v2, GLint v3] glUniform4iv: [void, GLint location, GLsizei count, const GLint * value] glUniformMatrix2fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value] glUniformMatrix3fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value] glUniformMatrix4fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value] glUseProgram: [void, GLuint program] glValidateProgram: [void, GLuint program] glVertexAttrib1f: [void, GLuint index, GLfloat x] glVertexAttrib1fv: [void, GLuint index, const GLfloat * v] glVertexAttrib2f: [void, GLuint index, GLfloat x, GLfloat y] glVertexAttrib2fv: [void, GLuint index, const GLfloat * v] glVertexAttrib3f: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z] glVertexAttrib3fv: [void, GLuint index, const GLfloat * v] glVertexAttrib4f: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertexAttrib4fv: [void, GLuint index, const GLfloat * v] glVertexAttribPointer: [void, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer] glViewport: [void, GLint x, GLint y, GLsizei width, GLsizei height] |
Added jni/glshim/spec/yml/glext-1.1.yml.
> > > > | 1 2 3 4 | # glTexGenfOES: [void, GLenum coord, GLenum pname, GLfloat param] # glTexGenfvOES: [void, GLenum coord, GLenum pname, "const GLfloat *params"] # glTexGeniOES: [void, GLenum coord, GLenum pname, GLint param] # glTexGenivOES: [void, GLenum coord, GLenum pname, "const GLint *params"] |
Added jni/glshim/spec/yml/oes.yml.
> > > > | 1 2 3 4 | glBlendColorOES: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] glBlendEquationOES: [void, GLenum mode] glBlendEquationSeparateOES: [void, GLenum modeRGB, GLenum modeAlpha] glBlendFuncSeparateOES: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] |
Added jni/glshim/spec/yml/opengl.yml.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 | 3DFX_tbuffer: glTbufferMask3DFX: [void, GLuint mask] AMD_debug_output: glDebugMessageCallbackAMD: [void, GLDEBUGPROCAMD callback, GLvoid *userParam] glDebugMessageEnableAMD: [void, GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled] glDebugMessageInsertAMD: [void, GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf] glGetDebugMessageLogAMD: [GLuint, GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message] AMD_draw_buffers_blend: glBlendEquationIndexedAMD: [void, GLuint buf, GLenum mode] glBlendEquationSeparateIndexedAMD: [void, GLuint buf, GLenum modeRGB, GLenum modeAlpha] glBlendFuncIndexedAMD: [void, GLuint buf, GLenum src, GLenum dst] glBlendFuncSeparateIndexedAMD: [void, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha] AMD_multi_draw_indirect: glMultiDrawArraysIndirectAMD: [void, GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride] glMultiDrawElementsIndirectAMD: [void, GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride] AMD_name_gen_delete: glDeleteNamesAMD: [void, GLenum identifier, GLuint num, const GLuint *names] glGenNamesAMD: [void, GLenum identifier, GLuint num, GLuint *names] glIsNameAMD: [GLboolean, GLenum identifier, GLuint name] AMD_performance_monitor: glBeginPerfMonitorAMD: [void, GLuint monitor] glDeletePerfMonitorsAMD: [void, GLsizei n, GLuint *monitors] glEndPerfMonitorAMD: [void, GLuint monitor] glGenPerfMonitorsAMD: [void, GLsizei n, GLuint *monitors] glGetPerfMonitorCounterDataAMD: [void, GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten] glGetPerfMonitorCounterInfoAMD: [void, GLuint group, GLuint counter, GLenum pname, GLvoid *data] glGetPerfMonitorCounterStringAMD: [void, GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString] glGetPerfMonitorCountersAMD: [void, GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters] glGetPerfMonitorGroupStringAMD: [void, GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString] glGetPerfMonitorGroupsAMD: [void, GLint *numGroups, GLsizei groupsSize, GLuint *groups] glSelectPerfMonitorCountersAMD: [void, GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList] AMD_sample_positions: glSetMultisamplefvAMD: [void, GLenum pname, GLuint index, const GLfloat *val] AMD_sparse_texture: glTexStorageSparseAMD: [void, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags] glTextureStorageSparseAMD: [void, GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags] AMD_stencil_operation_extended: glStencilOpValueAMD: [void, GLenum face, GLuint value] AMD_vertex_shader_tessellator: glTessellationFactorAMD: [void, GLfloat factor] glTessellationModeAMD: [void, GLenum mode] APPLE_element_array: glDrawElementArrayAPPLE: [void, GLenum mode, GLint first, GLsizei count] glDrawRangeElementArrayAPPLE: [void, GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count] glElementPointerAPPLE: [void, GLenum type, const GLvoid *pointer] glMultiDrawElementArrayAPPLE: [void, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount] glMultiDrawRangeElementArrayAPPLE: [void, GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount] APPLE_fence: glDeleteFencesAPPLE: [void, GLsizei n, const GLuint *fences] glFinishFenceAPPLE: [void, GLuint fence] glFinishObjectAPPLE: [void, GLenum object, GLint name] glGenFencesAPPLE: [void, GLsizei n, GLuint *fences] glIsFenceAPPLE: [GLboolean, GLuint fence] glSetFenceAPPLE: [void, GLuint fence] glTestFenceAPPLE: [GLboolean, GLuint fence] glTestObjectAPPLE: [GLboolean, GLenum object, GLuint name] APPLE_flush_buffer_range: glBufferParameteriAPPLE: [void, GLenum target, GLenum pname, GLint param] glFlushMappedBufferRangeAPPLE: [void, GLenum target, GLintptr offset, GLsizeiptr size] APPLE_object_purgeable: glGetObjectParameterivAPPLE: [void, GLenum objectType, GLuint name, GLenum pname, GLint *params] glObjectPurgeableAPPLE: [GLenum, GLenum objectType, GLuint name, GLenum option] glObjectUnpurgeableAPPLE: [GLenum, GLenum objectType, GLuint name, GLenum option] APPLE_texture_range: glGetTexParameterPointervAPPLE: [void, GLenum target, GLenum pname, GLvoid *params] glTextureRangeAPPLE: [void, GLenum target, GLsizei length, const GLvoid *pointer] APPLE_vertex_array_object: glBindVertexArrayAPPLE: [void, GLuint array] glDeleteVertexArraysAPPLE: [void, GLsizei n, const GLuint *arrays] glGenVertexArraysAPPLE: [void, GLsizei n, GLuint *arrays] glIsVertexArrayAPPLE: [GLboolean, GLuint array] APPLE_vertex_array_range: glFlushVertexArrayRangeAPPLE: [void, GLsizei length, GLvoid *pointer] glVertexArrayParameteriAPPLE: [void, GLenum pname, GLint param] glVertexArrayRangeAPPLE: [void, GLsizei length, GLvoid *pointer] APPLE_vertex_program_evaluators: glDisableVertexAttribAPPLE: [void, GLuint index, GLenum pname] glEnableVertexAttribAPPLE: [void, GLuint index, GLenum pname] glIsVertexAttribEnabledAPPLE: [GLboolean, GLuint index, GLenum pname] glMapVertexAttrib1dAPPLE: [void, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points] glMapVertexAttrib1fAPPLE: [void, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points] glMapVertexAttrib2dAPPLE: [void, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points] glMapVertexAttrib2fAPPLE: [void, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points] ARB_ES2_compatibility: glClearDepthf: [void, GLfloat d] glDepthRangef: [void, GLfloat n, GLfloat f] glGetShaderPrecisionFormat: [void, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision] glReleaseShaderCompiler: [void] glShaderBinary: [void, GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length] ARB_base_instance: glDrawArraysInstancedBaseInstance: [void, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance] glDrawElementsInstancedBaseInstance: [void, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance] glDrawElementsInstancedBaseVertexBaseInstance: [void, GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance] ARB_blend_func_extended: glBindFragDataLocationIndexed: [void, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name] glGetFragDataIndex: [GLint, GLuint program, const GLchar *name] ARB_cl_event: glCreateSyncFromCLeventARB: [GLsync, struct _cl_context *context, struct _cl_event *event, GLbitfield flags] ARB_clear_buffer_object: glClearBufferData: [void, GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data] glClearBufferSubData: [void, GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data] glClearNamedBufferDataEXT: [void, GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data] glClearNamedBufferSubDataEXT: [void, GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data] ARB_color_buffer_float: glClampColorARB: [void, GLenum target, GLenum clamp] ARB_compute_shader: glDispatchCompute: [void, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z] glDispatchComputeIndirect: [void, GLintptr indirect] ARB_copy_buffer: glCopyBufferSubData: [void, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size] ARB_copy_image: glCopyImageSubData: [void, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth] ARB_debug_output: glDebugMessageCallbackARB: [void, GLDEBUGPROCARB callback, const GLvoid *userParam] glDebugMessageControlARB: [void, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled] glDebugMessageInsertARB: [void, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf] glGetDebugMessageLogARB: [GLuint, GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog] ARB_draw_buffers: glDrawBuffersARB: [void, GLsizei n, const GLenum *bufs] ARB_draw_buffers_blend: glBlendEquationSeparateiARB: [void, GLuint buf, GLenum modeRGB, GLenum modeAlpha] glBlendEquationiARB: [void, GLuint buf, GLenum mode] glBlendFuncSeparateiARB: [void, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha] glBlendFunciARB: [void, GLuint buf, GLenum src, GLenum dst] ARB_draw_elements_base_vertex: glDrawElementsBaseVertex: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex] glDrawElementsInstancedBaseVertex: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex] glDrawRangeElementsBaseVertex: [void, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex] glMultiDrawElementsBaseVertex: [void, GLenum mode, const GLsizei *count, GLenum type, GLvoid*const *indices, GLsizei drawcount, const GLint *basevertex] ARB_draw_indirect: glDrawArraysIndirect: [void, GLenum mode, const GLvoid *indirect] glDrawElementsIndirect: [void, GLenum mode, GLenum type, const GLvoid *indirect] ARB_draw_instanced: glDrawArraysInstancedARB: [void, GLenum mode, GLint first, GLsizei count, GLsizei primcount] glDrawElementsInstancedARB: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount] ARB_framebuffer_no_attachments: glFramebufferParameteri: [void, GLenum target, GLenum pname, GLint param] glGetFramebufferParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetNamedFramebufferParameterivEXT: [void, GLuint framebuffer, GLenum pname, GLint *params] glNamedFramebufferParameteriEXT: [void, GLuint framebuffer, GLenum pname, GLint param] ARB_framebuffer_object: glBindFramebuffer: [void, GLenum target, GLuint framebuffer] glBindRenderbuffer: [void, GLenum target, GLuint renderbuffer] glBlitFramebuffer: [void, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter] glCheckFramebufferStatus: [GLenum, GLenum target] glDeleteFramebuffers: [void, GLsizei n, const GLuint *framebuffers] glDeleteRenderbuffers: [void, GLsizei n, const GLuint *renderbuffers] glFramebufferRenderbuffer: [void, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] glFramebufferTexture1D: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glFramebufferTexture2D: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glFramebufferTexture3D: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset] glFramebufferTextureLayer: [void, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer] glGenFramebuffers: [void, GLsizei n, GLuint *framebuffers] glGenRenderbuffers: [void, GLsizei n, GLuint *renderbuffers] glGenerateMipmap: [void, GLenum target] glGetFramebufferAttachmentParameteriv: [void, GLenum target, GLenum attachment, GLenum pname, GLint *params] glGetRenderbufferParameteriv: [void, GLenum target, GLenum pname, GLint *params] glIsFramebuffer: [GLboolean, GLuint framebuffer] glIsRenderbuffer: [GLboolean, GLuint renderbuffer] glRenderbufferStorage: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height] glRenderbufferStorageMultisample: [void, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height] ARB_geometry_shader4: glFramebufferTextureARB: [void, GLenum target, GLenum attachment, GLuint texture, GLint level] glFramebufferTextureFaceARB: [void, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face] glFramebufferTextureLayerARB: [void, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer] glProgramParameteriARB: [void, GLuint program, GLenum pname, GLint value] ARB_get_program_binary: glGetProgramBinary: [void, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary] glProgramBinary: [void, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length] glProgramParameteri: [void, GLuint program, GLenum pname, GLint value] ARB_gpu_shader_fp64: glGetUniformdv: [void, GLuint program, GLint location, GLdouble *params] glUniform1d: [void, GLint location, GLdouble x] glUniform1dv: [void, GLint location, GLsizei count, const GLdouble *value] glUniform2d: [void, GLint location, GLdouble x, GLdouble y] glUniform2dv: [void, GLint location, GLsizei count, const GLdouble *value] glUniform3d: [void, GLint location, GLdouble x, GLdouble y, GLdouble z] glUniform3dv: [void, GLint location, GLsizei count, const GLdouble *value] glUniform4d: [void, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glUniform4dv: [void, GLint location, GLsizei count, const GLdouble *value] glUniformMatrix2dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix2x3dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix2x4dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix3dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix3x2dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix3x4dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix4dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix4x2dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glUniformMatrix4x3dv: [void, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] ARB_instanced_arrays: glVertexAttribDivisorARB: [void, GLuint index, GLuint divisor] ARB_internalformat_query: glGetInternalformativ: [void, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params] ARB_internalformat_query2: glGetInternalformati64v: [void, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params] ARB_invalidate_subdata: glInvalidateBufferData: [void, GLuint buffer] glInvalidateBufferSubData: [void, GLuint buffer, GLintptr offset, GLsizeiptr length] glInvalidateFramebuffer: [void, GLenum target, GLsizei numAttachments, const GLenum *attachments] glInvalidateSubFramebuffer: [void, GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height] glInvalidateTexImage: [void, GLuint texture, GLint level] glInvalidateTexSubImage: [void, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth] ARB_map_buffer_range: glFlushMappedBufferRange: [void, GLenum target, GLintptr offset, GLsizeiptr length] glMapBufferRange: [GLvoid *, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access] ARB_matrix_palette: glCurrentPaletteMatrixARB: [void, GLint index] glMatrixIndexPointerARB: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glMatrixIndexubvARB: [void, GLint size, const GLubyte *indices] glMatrixIndexuivARB: [void, GLint size, const GLuint *indices] glMatrixIndexusvARB: [void, GLint size, const GLushort *indices] ARB_multi_draw_indirect: glMultiDrawArraysIndirect: [void, GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride] glMultiDrawElementsIndirect: [void, GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride] ARB_multisample: glSampleCoverageARB: [void, GLfloat value, GLboolean invert] ARB_multitexture: glActiveTextureARB: [void, GLenum texture] glClientActiveTextureARB: [void, GLenum texture] glMultiTexCoord1dARB: [void, GLenum target, GLdouble s] glMultiTexCoord1dvARB: [void, GLenum target, const GLdouble *v] glMultiTexCoord1fARB: [void, GLenum target, GLfloat s] glMultiTexCoord1fvARB: [void, GLenum target, const GLfloat *v] glMultiTexCoord1iARB: [void, GLenum target, GLint s] glMultiTexCoord1ivARB: [void, GLenum target, const GLint *v] glMultiTexCoord1sARB: [void, GLenum target, GLshort s] glMultiTexCoord1svARB: [void, GLenum target, const GLshort *v] glMultiTexCoord2dARB: [void, GLenum target, GLdouble s, GLdouble t] glMultiTexCoord2dvARB: [void, GLenum target, const GLdouble *v] glMultiTexCoord2fARB: [void, GLenum target, GLfloat s, GLfloat t] glMultiTexCoord2fvARB: [void, GLenum target, const GLfloat *v] glMultiTexCoord2iARB: [void, GLenum target, GLint s, GLint t] glMultiTexCoord2ivARB: [void, GLenum target, const GLint *v] glMultiTexCoord2sARB: [void, GLenum target, GLshort s, GLshort t] glMultiTexCoord2svARB: [void, GLenum target, const GLshort *v] glMultiTexCoord3dARB: [void, GLenum target, GLdouble s, GLdouble t, GLdouble r] glMultiTexCoord3dvARB: [void, GLenum target, const GLdouble *v] glMultiTexCoord3fARB: [void, GLenum target, GLfloat s, GLfloat t, GLfloat r] glMultiTexCoord3fvARB: [void, GLenum target, const GLfloat *v] glMultiTexCoord3iARB: [void, GLenum target, GLint s, GLint t, GLint r] glMultiTexCoord3ivARB: [void, GLenum target, const GLint *v] glMultiTexCoord3sARB: [void, GLenum target, GLshort s, GLshort t, GLshort r] glMultiTexCoord3svARB: [void, GLenum target, const GLshort *v] glMultiTexCoord4dARB: [void, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q] glMultiTexCoord4dvARB: [void, GLenum target, const GLdouble *v] glMultiTexCoord4fARB: [void, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q] glMultiTexCoord4fvARB: [void, GLenum target, const GLfloat *v] glMultiTexCoord4iARB: [void, GLenum target, GLint s, GLint t, GLint r, GLint q] glMultiTexCoord4ivARB: [void, GLenum target, const GLint *v] glMultiTexCoord4sARB: [void, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q] glMultiTexCoord4svARB: [void, GLenum target, const GLshort *v] ARB_occlusion_query: glBeginQueryARB: [void, GLenum target, GLuint id] glDeleteQueriesARB: [void, GLsizei n, const GLuint *ids] glEndQueryARB: [void, GLenum target] glGenQueriesARB: [void, GLsizei n, GLuint *ids] glGetQueryObjectivARB: [void, GLuint id, GLenum pname, GLint *params] glGetQueryObjectuivARB: [void, GLuint id, GLenum pname, GLuint *params] glGetQueryivARB: [void, GLenum target, GLenum pname, GLint *params] glIsQueryARB: [GLboolean, GLuint id] ARB_point_parameters: glPointParameterfARB: [void, GLenum pname, GLfloat param] glPointParameterfvARB: [void, GLenum pname, const GLfloat *params] ARB_program_interface_query: glGetProgramInterfaceiv: [void, GLuint program, GLenum programInterface, GLenum pname, GLint *params] glGetProgramResourceIndex: [GLuint, GLuint program, GLenum programInterface, const GLchar *name] glGetProgramResourceLocation: [GLint, GLuint program, GLenum programInterface, const GLchar *name] glGetProgramResourceLocationIndex: [GLint, GLuint program, GLenum programInterface, const GLchar *name] glGetProgramResourceName: [void, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name] glGetProgramResourceiv: [void, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params] ARB_provoking_vertex: glProvokingVertex: [void, GLenum mode] ARB_robustness: glGetGraphicsResetStatusARB: [GLenum] glGetnColorTableARB: [void, GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table] glGetnCompressedTexImageARB: [void, GLenum target, GLint lod, GLsizei bufSize, GLvoid *img] glGetnConvolutionFilterARB: [void, GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image] glGetnHistogramARB: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values] glGetnMapdvARB: [void, GLenum target, GLenum query, GLsizei bufSize, GLdouble *v] glGetnMapfvARB: [void, GLenum target, GLenum query, GLsizei bufSize, GLfloat *v] glGetnMapivARB: [void, GLenum target, GLenum query, GLsizei bufSize, GLint *v] glGetnMinmaxARB: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values] glGetnPixelMapfvARB: [void, GLenum map, GLsizei bufSize, GLfloat *values] glGetnPixelMapuivARB: [void, GLenum map, GLsizei bufSize, GLuint *values] glGetnPixelMapusvARB: [void, GLenum map, GLsizei bufSize, GLushort *values] glGetnPolygonStippleARB: [void, GLsizei bufSize, GLubyte *pattern] glGetnSeparableFilterARB: [void, GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span] glGetnTexImageARB: [void, GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img] glGetnUniformdvARB: [void, GLuint program, GLint location, GLsizei bufSize, GLdouble *params] glGetnUniformfvARB: [void, GLuint program, GLint location, GLsizei bufSize, GLfloat *params] glGetnUniformivARB: [void, GLuint program, GLint location, GLsizei bufSize, GLint *params] glGetnUniformuivARB: [void, GLuint program, GLint location, GLsizei bufSize, GLuint *params] glReadnPixelsARB: [void, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data] ARB_sample_shading: glMinSampleShadingARB: [void, GLfloat value] ARB_sampler_objects: glBindSampler: [void, GLuint unit, GLuint sampler] glDeleteSamplers: [void, GLsizei count, const GLuint *samplers] glGenSamplers: [void, GLsizei count, GLuint *samplers] glGetSamplerParameterIiv: [void, GLuint sampler, GLenum pname, GLint *params] glGetSamplerParameterIuiv: [void, GLuint sampler, GLenum pname, GLuint *params] glGetSamplerParameterfv: [void, GLuint sampler, GLenum pname, GLfloat *params] glGetSamplerParameteriv: [void, GLuint sampler, GLenum pname, GLint *params] glIsSampler: [GLboolean, GLuint sampler] glSamplerParameterIiv: [void, GLuint sampler, GLenum pname, const GLint *param] glSamplerParameterIuiv: [void, GLuint sampler, GLenum pname, const GLuint *param] glSamplerParameterf: [void, GLuint sampler, GLenum pname, GLfloat param] glSamplerParameterfv: [void, GLuint sampler, GLenum pname, const GLfloat *param] glSamplerParameteri: [void, GLuint sampler, GLenum pname, GLint param] glSamplerParameteriv: [void, GLuint sampler, GLenum pname, const GLint *param] ARB_separate_shader_objects: glActiveShaderProgram: [void, GLuint pipeline, GLuint program] glBindProgramPipeline: [void, GLuint pipeline] glCreateShaderProgramv: [GLuint, GLenum type, GLsizei count, GLchar*const *strings] glDeleteProgramPipelines: [void, GLsizei n, const GLuint *pipelines] glGenProgramPipelines: [void, GLsizei n, GLuint *pipelines] glGetProgramPipelineInfoLog: [void, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog] glGetProgramPipelineiv: [void, GLuint pipeline, GLenum pname, GLint *params] glIsProgramPipeline: [GLboolean, GLuint pipeline] glProgramUniform1d: [void, GLuint program, GLint location, GLdouble v0] glProgramUniform1dv: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform1f: [void, GLuint program, GLint location, GLfloat v0] glProgramUniform1fv: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform1i: [void, GLuint program, GLint location, GLint v0] glProgramUniform1iv: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform1ui: [void, GLuint program, GLint location, GLuint v0] glProgramUniform1uiv: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform2d: [void, GLuint program, GLint location, GLdouble v0, GLdouble v1] glProgramUniform2dv: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform2f: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1] glProgramUniform2fv: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform2i: [void, GLuint program, GLint location, GLint v0, GLint v1] glProgramUniform2iv: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform2ui: [void, GLuint program, GLint location, GLuint v0, GLuint v1] glProgramUniform2uiv: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform3d: [void, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2] glProgramUniform3dv: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform3f: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2] glProgramUniform3fv: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform3i: [void, GLuint program, GLint location, GLint v0, GLint v1, GLint v2] glProgramUniform3iv: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform3ui: [void, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2] glProgramUniform3uiv: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform4d: [void, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3] glProgramUniform4dv: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform4f: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3] glProgramUniform4fv: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform4i: [void, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3] glProgramUniform4iv: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform4ui: [void, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3] glProgramUniform4uiv: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniformMatrix2dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix2x3dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2x3fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix2x4dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2x4fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3x2dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3x2fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3x4dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3x4fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4x2dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4x2fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4x3dv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4x3fv: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUseProgramStages: [void, GLuint pipeline, GLbitfield stages, GLuint program] glValidateProgramPipeline: [void, GLuint pipeline] ARB_shader_atomic_counters: glGetActiveAtomicCounterBufferiv: [void, GLuint program, GLuint bufferIndex, GLenum pname, GLint *params] ARB_shader_image_load_store: glBindImageTexture: [void, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format] glMemoryBarrier: [void, GLbitfield barriers] ARB_shader_objects: glAttachObjectARB: [void, GLhandleARB containerObj, GLhandleARB obj] glCompileShaderARB: [void, GLhandleARB shaderObj] glCreateProgramObjectARB: [GLhandleARB] glCreateShaderObjectARB: [GLhandleARB, GLenum shaderType] glDeleteObjectARB: [void, GLhandleARB obj] glDetachObjectARB: [void, GLhandleARB containerObj, GLhandleARB attachedObj] glGetActiveUniformARB: [void, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name] glGetAttachedObjectsARB: [void, GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj] glGetHandleARB: [GLhandleARB, GLenum pname] glGetInfoLogARB: [void, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog] glGetObjectParameterfvARB: [void, GLhandleARB obj, GLenum pname, GLfloat *params] glGetObjectParameterivARB: [void, GLhandleARB obj, GLenum pname, GLint *params] glGetShaderSourceARB: [void, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source] glGetUniformLocationARB: [GLint, GLhandleARB programObj, const GLcharARB *name] glGetUniformfvARB: [void, GLhandleARB programObj, GLint location, GLfloat *params] glGetUniformivARB: [void, GLhandleARB programObj, GLint location, GLint *params] glLinkProgramARB: [void, GLhandleARB programObj] glShaderSourceARB: [void, GLhandleARB shaderObj, GLsizei count, const GLcharARB *string, const GLint *length] glUniform1fARB: [void, GLint location, GLfloat v0] glUniform1fvARB: [void, GLint location, GLsizei count, const GLfloat *value] glUniform1iARB: [void, GLint location, GLint v0] glUniform1ivARB: [void, GLint location, GLsizei count, const GLint *value] glUniform2fARB: [void, GLint location, GLfloat v0, GLfloat v1] glUniform2fvARB: [void, GLint location, GLsizei count, const GLfloat *value] glUniform2iARB: [void, GLint location, GLint v0, GLint v1] glUniform2ivARB: [void, GLint location, GLsizei count, const GLint *value] glUniform3fARB: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2] glUniform3fvARB: [void, GLint location, GLsizei count, const GLfloat *value] glUniform3iARB: [void, GLint location, GLint v0, GLint v1, GLint v2] glUniform3ivARB: [void, GLint location, GLsizei count, const GLint *value] glUniform4fARB: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3] glUniform4fvARB: [void, GLint location, GLsizei count, const GLfloat *value] glUniform4iARB: [void, GLint location, GLint v0, GLint v1, GLint v2, GLint v3] glUniform4ivARB: [void, GLint location, GLsizei count, const GLint *value] glUniformMatrix2fvARB: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix3fvARB: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix4fvARB: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUseProgramObjectARB: [void, GLhandleARB programObj] glValidateProgramARB: [void, GLhandleARB programObj] ARB_shader_storage_buffer_object: glShaderStorageBlockBinding: [void, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding] ARB_shader_subroutine: glGetActiveSubroutineName: [void, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name] glGetActiveSubroutineUniformName: [void, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name] glGetActiveSubroutineUniformiv: [void, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values] glGetProgramStageiv: [void, GLuint program, GLenum shadertype, GLenum pname, GLint *values] glGetSubroutineIndex: [GLuint, GLuint program, GLenum shadertype, const GLchar *name] glGetSubroutineUniformLocation: [GLint, GLuint program, GLenum shadertype, const GLchar *name] glGetUniformSubroutineuiv: [void, GLenum shadertype, GLint location, GLuint *params] glUniformSubroutinesuiv: [void, GLenum shadertype, GLsizei count, const GLuint *indices] ARB_shading_language_include: glCompileShaderIncludeARB: [void, GLuint shader, GLsizei count, const GLchar *path, const GLint *length] glDeleteNamedStringARB: [void, GLint namelen, const GLchar *name] glGetNamedStringARB: [void, GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string] glGetNamedStringivARB: [void, GLint namelen, const GLchar *name, GLenum pname, GLint *params] glIsNamedStringARB: [GLboolean, GLint namelen, const GLchar *name] glNamedStringARB: [void, GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string] ARB_sync: glClientWaitSync: [GLenum, GLsync sync, GLbitfield flags, GLuint64 timeout] glDeleteSync: [void, GLsync sync] glFenceSync: [GLsync, GLenum condition, GLbitfield flags] glGetInteger64v: [void, GLenum pname, GLint64 *params] glGetSynciv: [void, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values] glIsSync: [GLboolean, GLsync sync] glWaitSync: [void, GLsync sync, GLbitfield flags, GLuint64 timeout] ARB_tessellation_shader: glPatchParameterfv: [void, GLenum pname, const GLfloat *values] glPatchParameteri: [void, GLenum pname, GLint value] ARB_texture_buffer_object: glTexBufferARB: [void, GLenum target, GLenum internalformat, GLuint buffer] ARB_texture_buffer_range: glTexBufferRange: [void, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size] glTextureBufferRangeEXT: [void, GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size] ARB_texture_compression: glCompressedTexImage1DARB: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexImage2DARB: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexImage3DARB: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage1DARB: [void, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage2DARB: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage3DARB: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data] glGetCompressedTexImageARB: [void, GLenum target, GLint level, GLvoid *img] ARB_texture_multisample: glGetMultisamplefv: [void, GLenum pname, GLuint index, GLfloat *val] glSampleMaski: [void, GLuint index, GLbitfield mask] glTexImage2DMultisample: [void, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations] glTexImage3DMultisample: [void, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations] ARB_texture_storage: glTexStorage1D: [void, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width] glTexStorage2D: [void, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height] glTexStorage3D: [void, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth] glTextureStorage1DEXT: [void, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width] glTextureStorage2DEXT: [void, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height] glTextureStorage3DEXT: [void, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth] ARB_texture_storage_multisample: glTexStorage2DMultisample: [void, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations] glTexStorage3DMultisample: [void, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations] glTextureStorage2DMultisampleEXT: [void, GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations] glTextureStorage3DMultisampleEXT: [void, GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations] ARB_texture_view: glTextureView: [void, GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers] ARB_timer_query: glGetQueryObjecti64v: [void, GLuint id, GLenum pname, GLint64 *params] glGetQueryObjectui64v: [void, GLuint id, GLenum pname, GLuint64 *params] glQueryCounter: [void, GLuint id, GLenum target] ARB_transform_feedback2: glBindTransformFeedback: [void, GLenum target, GLuint id] glDeleteTransformFeedbacks: [void, GLsizei n, const GLuint *ids] glDrawTransformFeedback: [void, GLenum mode, GLuint id] glGenTransformFeedbacks: [void, GLsizei n, GLuint *ids] glIsTransformFeedback: [GLboolean, GLuint id] glPauseTransformFeedback: [void] glResumeTransformFeedback: [void] ARB_transform_feedback3: glBeginQueryIndexed: [void, GLenum target, GLuint index, GLuint id] glDrawTransformFeedbackStream: [void, GLenum mode, GLuint id, GLuint stream] glEndQueryIndexed: [void, GLenum target, GLuint index] glGetQueryIndexediv: [void, GLenum target, GLuint index, GLenum pname, GLint *params] ARB_transform_feedback_instanced: glDrawTransformFeedbackInstanced: [void, GLenum mode, GLuint id, GLsizei instancecount] glDrawTransformFeedbackStreamInstanced: [void, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount] ARB_transpose_matrix: glLoadTransposeMatrixdARB: [void, const GLdouble *m] glLoadTransposeMatrixfARB: [void, const GLfloat *m] glMultTransposeMatrixdARB: [void, const GLdouble *m] glMultTransposeMatrixfARB: [void, const GLfloat *m] ARB_uniform_buffer_object: glGetActiveUniformBlockName: [void, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName] glGetActiveUniformBlockiv: [void, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params] glGetActiveUniformName: [void, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName] glGetActiveUniformsiv: [void, GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params] glGetUniformBlockIndex: [GLuint, GLuint program, const GLchar *uniformBlockName] glGetUniformIndices: [void, GLuint program, GLsizei uniformCount, GLchar*const *uniformNames, GLuint *uniformIndices] glUniformBlockBinding: [void, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding] ARB_vertex_array_object: glBindVertexArray: [void, GLuint array] glDeleteVertexArrays: [void, GLsizei n, const GLuint *arrays] glGenVertexArrays: [void, GLsizei n, GLuint *arrays] glIsVertexArray: [GLboolean, GLuint array] ARB_vertex_attrib_64bit: glGetVertexAttribLdv: [void, GLuint index, GLenum pname, GLdouble *params] glVertexAttribL1d: [void, GLuint index, GLdouble x] glVertexAttribL1dv: [void, GLuint index, const GLdouble *v] glVertexAttribL2d: [void, GLuint index, GLdouble x, GLdouble y] glVertexAttribL2dv: [void, GLuint index, const GLdouble *v] glVertexAttribL3d: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z] glVertexAttribL3dv: [void, GLuint index, const GLdouble *v] glVertexAttribL4d: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexAttribL4dv: [void, GLuint index, const GLdouble *v] glVertexAttribLPointer: [void, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] ARB_vertex_attrib_binding: glBindVertexBuffer: [void, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride] glVertexArrayBindVertexBufferEXT: [void, GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride] glVertexArrayVertexAttribBindingEXT: [void, GLuint vaobj, GLuint attribindex, GLuint bindingindex] glVertexArrayVertexAttribFormatEXT: [void, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset] glVertexArrayVertexAttribIFormatEXT: [void, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset] glVertexArrayVertexAttribLFormatEXT: [void, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset] glVertexArrayVertexBindingDivisorEXT: [void, GLuint vaobj, GLuint bindingindex, GLuint divisor] glVertexAttribBinding: [void, GLuint attribindex, GLuint bindingindex] glVertexAttribFormat: [void, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset] glVertexAttribIFormat: [void, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset] glVertexAttribLFormat: [void, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset] glVertexBindingDivisor: [void, GLuint bindingindex, GLuint divisor] ARB_vertex_blend: glVertexBlendARB: [void, GLint count] glWeightPointerARB: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glWeightbvARB: [void, GLint size, const GLbyte *weights] glWeightdvARB: [void, GLint size, const GLdouble *weights] glWeightfvARB: [void, GLint size, const GLfloat *weights] glWeightivARB: [void, GLint size, const GLint *weights] glWeightsvARB: [void, GLint size, const GLshort *weights] glWeightubvARB: [void, GLint size, const GLubyte *weights] glWeightuivARB: [void, GLint size, const GLuint *weights] glWeightusvARB: [void, GLint size, const GLushort *weights] ARB_vertex_buffer_object: glBindBufferARB: [void, GLenum target, GLuint buffer] glBufferDataARB: [void, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage] glBufferSubDataARB: [void, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data] glDeleteBuffersARB: [void, GLsizei n, const GLuint *buffers] glGenBuffersARB: [void, GLsizei n, GLuint *buffers] glGetBufferParameterivARB: [void, GLenum target, GLenum pname, GLint *params] glGetBufferPointervARB: [void, GLenum target, GLenum pname, GLvoid *params] glGetBufferSubDataARB: [void, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data] glIsBufferARB: [GLboolean, GLuint buffer] glMapBufferARB: [GLvoid *, GLenum target, GLenum access] glUnmapBufferARB: [GLboolean, GLenum target] ARB_vertex_program: glBindProgramARB: [void, GLenum target, GLuint program] glDeleteProgramsARB: [void, GLsizei n, const GLuint *programs] glDisableVertexAttribArrayARB: [void, GLuint index] glEnableVertexAttribArrayARB: [void, GLuint index] glGenProgramsARB: [void, GLsizei n, GLuint *programs] glGetProgramEnvParameterdvARB: [void, GLenum target, GLuint index, GLdouble *params] glGetProgramEnvParameterfvARB: [void, GLenum target, GLuint index, GLfloat *params] glGetProgramLocalParameterdvARB: [void, GLenum target, GLuint index, GLdouble *params] glGetProgramLocalParameterfvARB: [void, GLenum target, GLuint index, GLfloat *params] glGetProgramStringARB: [void, GLenum target, GLenum pname, GLvoid *string] glGetProgramivARB: [void, GLenum target, GLenum pname, GLint *params] glGetVertexAttribPointervARB: [void, GLuint index, GLenum pname, GLvoid *pointer] glGetVertexAttribdvARB: [void, GLuint index, GLenum pname, GLdouble *params] glGetVertexAttribfvARB: [void, GLuint index, GLenum pname, GLfloat *params] glGetVertexAttribivARB: [void, GLuint index, GLenum pname, GLint *params] glIsProgramARB: [GLboolean, GLuint program] glProgramEnvParameter4dARB: [void, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glProgramEnvParameter4dvARB: [void, GLenum target, GLuint index, const GLdouble *params] glProgramEnvParameter4fARB: [void, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glProgramEnvParameter4fvARB: [void, GLenum target, GLuint index, const GLfloat *params] glProgramLocalParameter4dARB: [void, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glProgramLocalParameter4dvARB: [void, GLenum target, GLuint index, const GLdouble *params] glProgramLocalParameter4fARB: [void, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glProgramLocalParameter4fvARB: [void, GLenum target, GLuint index, const GLfloat *params] glProgramStringARB: [void, GLenum target, GLenum format, GLsizei len, const GLvoid *string] glVertexAttrib1dARB: [void, GLuint index, GLdouble x] glVertexAttrib1dvARB: [void, GLuint index, const GLdouble *v] glVertexAttrib1fARB: [void, GLuint index, GLfloat x] glVertexAttrib1fvARB: [void, GLuint index, const GLfloat *v] glVertexAttrib1sARB: [void, GLuint index, GLshort x] glVertexAttrib1svARB: [void, GLuint index, const GLshort *v] glVertexAttrib2dARB: [void, GLuint index, GLdouble x, GLdouble y] glVertexAttrib2dvARB: [void, GLuint index, const GLdouble *v] glVertexAttrib2fARB: [void, GLuint index, GLfloat x, GLfloat y] glVertexAttrib2fvARB: [void, GLuint index, const GLfloat *v] glVertexAttrib2sARB: [void, GLuint index, GLshort x, GLshort y] glVertexAttrib2svARB: [void, GLuint index, const GLshort *v] glVertexAttrib3dARB: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z] glVertexAttrib3dvARB: [void, GLuint index, const GLdouble *v] glVertexAttrib3fARB: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z] glVertexAttrib3fvARB: [void, GLuint index, const GLfloat *v] glVertexAttrib3sARB: [void, GLuint index, GLshort x, GLshort y, GLshort z] glVertexAttrib3svARB: [void, GLuint index, const GLshort *v] glVertexAttrib4NbvARB: [void, GLuint index, const GLbyte *v] glVertexAttrib4NivARB: [void, GLuint index, const GLint *v] glVertexAttrib4NsvARB: [void, GLuint index, const GLshort *v] glVertexAttrib4NubARB: [void, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w] glVertexAttrib4NubvARB: [void, GLuint index, const GLubyte *v] glVertexAttrib4NuivARB: [void, GLuint index, const GLuint *v] glVertexAttrib4NusvARB: [void, GLuint index, const GLushort *v] glVertexAttrib4bvARB: [void, GLuint index, const GLbyte *v] glVertexAttrib4dARB: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexAttrib4dvARB: [void, GLuint index, const GLdouble *v] glVertexAttrib4fARB: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertexAttrib4fvARB: [void, GLuint index, const GLfloat *v] glVertexAttrib4ivARB: [void, GLuint index, const GLint *v] glVertexAttrib4sARB: [void, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w] glVertexAttrib4svARB: [void, GLuint index, const GLshort *v] glVertexAttrib4ubvARB: [void, GLuint index, const GLubyte *v] glVertexAttrib4uivARB: [void, GLuint index, const GLuint *v] glVertexAttrib4usvARB: [void, GLuint index, const GLushort *v] glVertexAttribPointerARB: [void, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer] ARB_vertex_shader: glBindAttribLocationARB: [void, GLhandleARB programObj, GLuint index, const GLcharARB *name] glGetActiveAttribARB: [void, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name] glGetAttribLocationARB: [GLint, GLhandleARB programObj, const GLcharARB *name] ARB_vertex_type_2_10_10_10_rev: glColorP3ui: [void, GLenum type, GLuint color] glColorP3uiv: [void, GLenum type, const GLuint *color] glColorP4ui: [void, GLenum type, GLuint color] glColorP4uiv: [void, GLenum type, const GLuint *color] glMultiTexCoordP1ui: [void, GLenum texture, GLenum type, GLuint coords] glMultiTexCoordP1uiv: [void, GLenum texture, GLenum type, const GLuint *coords] glMultiTexCoordP2ui: [void, GLenum texture, GLenum type, GLuint coords] glMultiTexCoordP2uiv: [void, GLenum texture, GLenum type, const GLuint *coords] glMultiTexCoordP3ui: [void, GLenum texture, GLenum type, GLuint coords] glMultiTexCoordP3uiv: [void, GLenum texture, GLenum type, const GLuint *coords] glMultiTexCoordP4ui: [void, GLenum texture, GLenum type, GLuint coords] glMultiTexCoordP4uiv: [void, GLenum texture, GLenum type, const GLuint *coords] glNormalP3ui: [void, GLenum type, GLuint coords] glNormalP3uiv: [void, GLenum type, const GLuint *coords] glSecondaryColorP3ui: [void, GLenum type, GLuint color] glSecondaryColorP3uiv: [void, GLenum type, const GLuint *color] glTexCoordP1ui: [void, GLenum type, GLuint coords] glTexCoordP1uiv: [void, GLenum type, const GLuint *coords] glTexCoordP2ui: [void, GLenum type, GLuint coords] glTexCoordP2uiv: [void, GLenum type, const GLuint *coords] glTexCoordP3ui: [void, GLenum type, GLuint coords] glTexCoordP3uiv: [void, GLenum type, const GLuint *coords] glTexCoordP4ui: [void, GLenum type, GLuint coords] glTexCoordP4uiv: [void, GLenum type, const GLuint *coords] glVertexAttribP1ui: [void, GLuint index, GLenum type, GLboolean normalized, GLuint value] glVertexAttribP1uiv: [void, GLuint index, GLenum type, GLboolean normalized, const GLuint *value] glVertexAttribP2ui: [void, GLuint index, GLenum type, GLboolean normalized, GLuint value] glVertexAttribP2uiv: [void, GLuint index, GLenum type, GLboolean normalized, const GLuint *value] glVertexAttribP3ui: [void, GLuint index, GLenum type, GLboolean normalized, GLuint value] glVertexAttribP3uiv: [void, GLuint index, GLenum type, GLboolean normalized, const GLuint *value] glVertexAttribP4ui: [void, GLuint index, GLenum type, GLboolean normalized, GLuint value] glVertexAttribP4uiv: [void, GLuint index, GLenum type, GLboolean normalized, const GLuint *value] glVertexP2ui: [void, GLenum type, GLuint value] glVertexP2uiv: [void, GLenum type, const GLuint *value] glVertexP3ui: [void, GLenum type, GLuint value] glVertexP3uiv: [void, GLenum type, const GLuint *value] glVertexP4ui: [void, GLenum type, GLuint value] glVertexP4uiv: [void, GLenum type, const GLuint *value] ARB_viewport_array: glDepthRangeArrayv: [void, GLuint first, GLsizei count, const GLdouble *v] glDepthRangeIndexed: [void, GLuint index, GLdouble n, GLdouble f] glGetDoublei_v: [void, GLenum target, GLuint index, GLdouble *data] glGetFloati_v: [void, GLenum target, GLuint index, GLfloat *data] glScissorArrayv: [void, GLuint first, GLsizei count, const GLint *v] glScissorIndexed: [void, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height] glScissorIndexedv: [void, GLuint index, const GLint *v] glViewportArrayv: [void, GLuint first, GLsizei count, const GLfloat *v] glViewportIndexedf: [void, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h] glViewportIndexedfv: [void, GLuint index, const GLfloat *v] ARB_window_pos: glWindowPos2dARB: [void, GLdouble x, GLdouble y] glWindowPos2dvARB: [void, const GLdouble *v] glWindowPos2fARB: [void, GLfloat x, GLfloat y] glWindowPos2fvARB: [void, const GLfloat *v] glWindowPos2iARB: [void, GLint x, GLint y] glWindowPos2ivARB: [void, const GLint *v] glWindowPos2sARB: [void, GLshort x, GLshort y] glWindowPos2svARB: [void, const GLshort *v] glWindowPos3dARB: [void, GLdouble x, GLdouble y, GLdouble z] glWindowPos3dvARB: [void, const GLdouble *v] glWindowPos3fARB: [void, GLfloat x, GLfloat y, GLfloat z] glWindowPos3fvARB: [void, const GLfloat *v] glWindowPos3iARB: [void, GLint x, GLint y, GLint z] glWindowPos3ivARB: [void, const GLint *v] glWindowPos3sARB: [void, GLshort x, GLshort y, GLshort z] glWindowPos3svARB: [void, const GLshort *v] ATI_draw_buffers: glDrawBuffersATI: [void, GLsizei n, const GLenum *bufs] ATI_element_array: glDrawElementArrayATI: [void, GLenum mode, GLsizei count] glDrawRangeElementArrayATI: [void, GLenum mode, GLuint start, GLuint end, GLsizei count] glElementPointerATI: [void, GLenum type, const GLvoid *pointer] ATI_envmap_bumpmap: glGetTexBumpParameterfvATI: [void, GLenum pname, GLfloat *param] glGetTexBumpParameterivATI: [void, GLenum pname, GLint *param] glTexBumpParameterfvATI: [void, GLenum pname, const GLfloat *param] glTexBumpParameterivATI: [void, GLenum pname, const GLint *param] ATI_fragment_shader: glAlphaFragmentOp1ATI: [void, GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod] glAlphaFragmentOp2ATI: [void, GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod] glAlphaFragmentOp3ATI: [void, GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod] glBeginFragmentShaderATI: [void] glBindFragmentShaderATI: [void, GLuint id] glColorFragmentOp1ATI: [void, GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod] glColorFragmentOp2ATI: [void, GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod] glColorFragmentOp3ATI: [void, GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod] glDeleteFragmentShaderATI: [void, GLuint id] glEndFragmentShaderATI: [void] glGenFragmentShadersATI: [GLuint, GLuint range] glPassTexCoordATI: [void, GLuint dst, GLuint coord, GLenum swizzle] glSampleMapATI: [void, GLuint dst, GLuint interp, GLenum swizzle] glSetFragmentShaderConstantATI: [void, GLuint dst, const GLfloat *value] ATI_map_object_buffer: glMapObjectBufferATI: [GLvoid *, GLuint buffer] glUnmapObjectBufferATI: [void, GLuint buffer] ATI_pn_triangles: glPNTrianglesfATI: [void, GLenum pname, GLfloat param] glPNTrianglesiATI: [void, GLenum pname, GLint param] ATI_separate_stencil: glStencilFuncSeparateATI: [void, GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask] glStencilOpSeparateATI: [void, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass] ATI_vertex_array_object: glArrayObjectATI: [void, GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset] glFreeObjectBufferATI: [void, GLuint buffer] glGetArrayObjectfvATI: [void, GLenum array, GLenum pname, GLfloat *params] glGetArrayObjectivATI: [void, GLenum array, GLenum pname, GLint *params] glGetObjectBufferfvATI: [void, GLuint buffer, GLenum pname, GLfloat *params] glGetObjectBufferivATI: [void, GLuint buffer, GLenum pname, GLint *params] glGetVariantArrayObjectfvATI: [void, GLuint id, GLenum pname, GLfloat *params] glGetVariantArrayObjectivATI: [void, GLuint id, GLenum pname, GLint *params] glIsObjectBufferATI: [GLboolean, GLuint buffer] glNewObjectBufferATI: [GLuint, GLsizei size, const GLvoid *pointer, GLenum usage] glUpdateObjectBufferATI: [void, GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve] glVariantArrayObjectATI: [void, GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset] ATI_vertex_attrib_array_object: glGetVertexAttribArrayObjectfvATI: [void, GLuint index, GLenum pname, GLfloat *params] glGetVertexAttribArrayObjectivATI: [void, GLuint index, GLenum pname, GLint *params] glVertexAttribArrayObjectATI: [void, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset] ATI_vertex_streams: glClientActiveVertexStreamATI: [void, GLenum stream] glNormalStream3bATI: [void, GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz] glNormalStream3bvATI: [void, GLenum stream, const GLbyte *coords] glNormalStream3dATI: [void, GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz] glNormalStream3dvATI: [void, GLenum stream, const GLdouble *coords] glNormalStream3fATI: [void, GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz] glNormalStream3fvATI: [void, GLenum stream, const GLfloat *coords] glNormalStream3iATI: [void, GLenum stream, GLint nx, GLint ny, GLint nz] glNormalStream3ivATI: [void, GLenum stream, const GLint *coords] glNormalStream3sATI: [void, GLenum stream, GLshort nx, GLshort ny, GLshort nz] glNormalStream3svATI: [void, GLenum stream, const GLshort *coords] glVertexBlendEnvfATI: [void, GLenum pname, GLfloat param] glVertexBlendEnviATI: [void, GLenum pname, GLint param] glVertexStream1dATI: [void, GLenum stream, GLdouble x] glVertexStream1dvATI: [void, GLenum stream, const GLdouble *coords] glVertexStream1fATI: [void, GLenum stream, GLfloat x] glVertexStream1fvATI: [void, GLenum stream, const GLfloat *coords] glVertexStream1iATI: [void, GLenum stream, GLint x] glVertexStream1ivATI: [void, GLenum stream, const GLint *coords] glVertexStream1sATI: [void, GLenum stream, GLshort x] glVertexStream1svATI: [void, GLenum stream, const GLshort *coords] glVertexStream2dATI: [void, GLenum stream, GLdouble x, GLdouble y] glVertexStream2dvATI: [void, GLenum stream, const GLdouble *coords] glVertexStream2fATI: [void, GLenum stream, GLfloat x, GLfloat y] glVertexStream2fvATI: [void, GLenum stream, const GLfloat *coords] glVertexStream2iATI: [void, GLenum stream, GLint x, GLint y] glVertexStream2ivATI: [void, GLenum stream, const GLint *coords] glVertexStream2sATI: [void, GLenum stream, GLshort x, GLshort y] glVertexStream2svATI: [void, GLenum stream, const GLshort *coords] glVertexStream3dATI: [void, GLenum stream, GLdouble x, GLdouble y, GLdouble z] glVertexStream3dvATI: [void, GLenum stream, const GLdouble *coords] glVertexStream3fATI: [void, GLenum stream, GLfloat x, GLfloat y, GLfloat z] glVertexStream3fvATI: [void, GLenum stream, const GLfloat *coords] glVertexStream3iATI: [void, GLenum stream, GLint x, GLint y, GLint z] glVertexStream3ivATI: [void, GLenum stream, const GLint *coords] glVertexStream3sATI: [void, GLenum stream, GLshort x, GLshort y, GLshort z] glVertexStream3svATI: [void, GLenum stream, const GLshort *coords] glVertexStream4dATI: [void, GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexStream4dvATI: [void, GLenum stream, const GLdouble *coords] glVertexStream4fATI: [void, GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertexStream4fvATI: [void, GLenum stream, const GLfloat *coords] glVertexStream4iATI: [void, GLenum stream, GLint x, GLint y, GLint z, GLint w] glVertexStream4ivATI: [void, GLenum stream, const GLint *coords] glVertexStream4sATI: [void, GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w] glVertexStream4svATI: [void, GLenum stream, const GLshort *coords] EXT_bindable_uniform: glGetUniformBufferSizeEXT: [GLint, GLuint program, GLint location] glGetUniformOffsetEXT: [GLintptr, GLuint program, GLint location] glUniformBufferEXT: [void, GLuint program, GLint location, GLuint buffer] EXT_blend_color: glBlendColorEXT: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] EXT_blend_equation_separate: glBlendEquationSeparateEXT: [void, GLenum modeRGB, GLenum modeAlpha] EXT_blend_func_separate: glBlendFuncSeparateEXT: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] EXT_blend_minmax: glBlendEquationEXT: [void, GLenum mode] EXT_color_subtable: glColorSubTableEXT: [void, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data] glCopyColorSubTableEXT: [void, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width] EXT_compiled_vertex_array: glLockArraysEXT: [void, GLint first, GLsizei count] glUnlockArraysEXT: [void] EXT_convolution: glConvolutionFilter1DEXT: [void, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image] glConvolutionFilter2DEXT: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image] glConvolutionParameterfEXT: [void, GLenum target, GLenum pname, GLfloat params] glConvolutionParameterfvEXT: [void, GLenum target, GLenum pname, const GLfloat *params] glConvolutionParameteriEXT: [void, GLenum target, GLenum pname, GLint params] glConvolutionParameterivEXT: [void, GLenum target, GLenum pname, const GLint *params] glCopyConvolutionFilter1DEXT: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width] glCopyConvolutionFilter2DEXT: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height] glGetConvolutionFilterEXT: [void, GLenum target, GLenum format, GLenum type, GLvoid *image] glGetConvolutionParameterfvEXT: [void, GLenum target, GLenum pname, GLfloat *params] glGetConvolutionParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] glGetSeparableFilterEXT: [void, GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span] glSeparableFilter2DEXT: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column] EXT_coordinate_frame: glBinormal3bEXT: [void, GLbyte bx, GLbyte by, GLbyte bz] glBinormal3bvEXT: [void, const GLbyte *v] glBinormal3dEXT: [void, GLdouble bx, GLdouble by, GLdouble bz] glBinormal3dvEXT: [void, const GLdouble *v] glBinormal3fEXT: [void, GLfloat bx, GLfloat by, GLfloat bz] glBinormal3fvEXT: [void, const GLfloat *v] glBinormal3iEXT: [void, GLint bx, GLint by, GLint bz] glBinormal3ivEXT: [void, const GLint *v] glBinormal3sEXT: [void, GLshort bx, GLshort by, GLshort bz] glBinormal3svEXT: [void, const GLshort *v] glBinormalPointerEXT: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glTangent3bEXT: [void, GLbyte tx, GLbyte ty, GLbyte tz] glTangent3bvEXT: [void, const GLbyte *v] glTangent3dEXT: [void, GLdouble tx, GLdouble ty, GLdouble tz] glTangent3dvEXT: [void, const GLdouble *v] glTangent3fEXT: [void, GLfloat tx, GLfloat ty, GLfloat tz] glTangent3fvEXT: [void, const GLfloat *v] glTangent3iEXT: [void, GLint tx, GLint ty, GLint tz] glTangent3ivEXT: [void, const GLint *v] glTangent3sEXT: [void, GLshort tx, GLshort ty, GLshort tz] glTangent3svEXT: [void, const GLshort *v] glTangentPointerEXT: [void, GLenum type, GLsizei stride, const GLvoid *pointer] EXT_copy_texture: glCopyTexImage1DEXT: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border] glCopyTexImage2DEXT: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyTexSubImage1DEXT: [void, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width] glCopyTexSubImage2DEXT: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCopyTexSubImage3DEXT: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height] EXT_cull_vertex: glCullParameterdvEXT: [void, GLenum pname, GLdouble *params] glCullParameterfvEXT: [void, GLenum pname, GLfloat *params] EXT_depth_bounds_test: glDepthBoundsEXT: [void, GLclampd zmin, GLclampd zmax] EXT_direct_state_access: glBindMultiTextureEXT: [void, GLenum texunit, GLenum target, GLuint texture] glCheckNamedFramebufferStatusEXT: [GLenum, GLuint framebuffer, GLenum target] glClientAttribDefaultEXT: [void, GLbitfield mask] glCompressedMultiTexImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedMultiTexImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedMultiTexImage3DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedMultiTexSubImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits] glCompressedMultiTexSubImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits] glCompressedMultiTexSubImage3DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits] glCompressedTextureImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedTextureImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedTextureImage3DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits] glCompressedTextureSubImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits] glCompressedTextureSubImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits] glCompressedTextureSubImage3DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits] glCopyMultiTexImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border] glCopyMultiTexImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyMultiTexSubImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width] glCopyMultiTexSubImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCopyMultiTexSubImage3DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCopyTextureImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border] glCopyTextureImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyTextureSubImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width] glCopyTextureSubImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glCopyTextureSubImage3DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height] glDisableClientStateIndexedEXT: [void, GLenum array, GLuint index] glDisableClientStateiEXT: [void, GLenum array, GLuint index] glDisableVertexArrayAttribEXT: [void, GLuint vaobj, GLuint index] glDisableVertexArrayEXT: [void, GLuint vaobj, GLenum array] glEnableClientStateIndexedEXT: [void, GLenum array, GLuint index] glEnableClientStateiEXT: [void, GLenum array, GLuint index] glEnableVertexArrayAttribEXT: [void, GLuint vaobj, GLuint index] glEnableVertexArrayEXT: [void, GLuint vaobj, GLenum array] glFlushMappedNamedBufferRangeEXT: [void, GLuint buffer, GLintptr offset, GLsizeiptr length] glFramebufferDrawBufferEXT: [void, GLuint framebuffer, GLenum mode] glFramebufferDrawBuffersEXT: [void, GLuint framebuffer, GLsizei n, const GLenum *bufs] glFramebufferReadBufferEXT: [void, GLuint framebuffer, GLenum mode] glGenerateMultiTexMipmapEXT: [void, GLenum texunit, GLenum target] glGenerateTextureMipmapEXT: [void, GLuint texture, GLenum target] glGetCompressedMultiTexImageEXT: [void, GLenum texunit, GLenum target, GLint lod, GLvoid *img] glGetCompressedTextureImageEXT: [void, GLuint texture, GLenum target, GLint lod, GLvoid *img] glGetDoubleIndexedvEXT: [void, GLenum target, GLuint index, GLdouble *data] glGetDoublei_vEXT: [void, GLenum target, GLuint index, GLdouble *data] glGetFloatIndexedvEXT: [void, GLenum target, GLuint index, GLfloat *data] glGetFloati_vEXT: [void, GLenum target, GLuint index, GLfloat *data] glGetFramebufferParameterivEXT: [void, GLuint framebuffer, GLenum pname, GLint *params] glGetMultiTexEnvfvEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLfloat *params] glGetMultiTexEnvivEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLint *params] glGetMultiTexGendvEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLdouble *params] glGetMultiTexGenfvEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLfloat *params] glGetMultiTexGenivEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLint *params] glGetMultiTexImageEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels] glGetMultiTexLevelParameterfvEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params] glGetMultiTexLevelParameterivEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params] glGetMultiTexParameterIivEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLint *params] glGetMultiTexParameterIuivEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLuint *params] glGetMultiTexParameterfvEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLfloat *params] glGetMultiTexParameterivEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLint *params] glGetNamedBufferParameterivEXT: [void, GLuint buffer, GLenum pname, GLint *params] glGetNamedBufferPointervEXT: [void, GLuint buffer, GLenum pname, GLvoid *params] glGetNamedBufferSubDataEXT: [void, GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data] glGetNamedFramebufferAttachmentParameterivEXT: [void, GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params] glGetNamedProgramLocalParameterIivEXT: [void, GLuint program, GLenum target, GLuint index, GLint *params] glGetNamedProgramLocalParameterIuivEXT: [void, GLuint program, GLenum target, GLuint index, GLuint *params] glGetNamedProgramLocalParameterdvEXT: [void, GLuint program, GLenum target, GLuint index, GLdouble *params] glGetNamedProgramLocalParameterfvEXT: [void, GLuint program, GLenum target, GLuint index, GLfloat *params] glGetNamedProgramStringEXT: [void, GLuint program, GLenum target, GLenum pname, GLvoid *string] glGetNamedProgramivEXT: [void, GLuint program, GLenum target, GLenum pname, GLint *params] glGetNamedRenderbufferParameterivEXT: [void, GLuint renderbuffer, GLenum pname, GLint *params] glGetPointerIndexedvEXT: [void, GLenum target, GLuint index, GLvoid *data] glGetPointeri_vEXT: [void, GLenum target, GLuint index, GLvoid *data] glGetTextureImageEXT: [void, GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels] glGetTextureLevelParameterfvEXT: [void, GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params] glGetTextureLevelParameterivEXT: [void, GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params] glGetTextureParameterIivEXT: [void, GLuint texture, GLenum target, GLenum pname, GLint *params] glGetTextureParameterIuivEXT: [void, GLuint texture, GLenum target, GLenum pname, GLuint *params] glGetTextureParameterfvEXT: [void, GLuint texture, GLenum target, GLenum pname, GLfloat *params] glGetTextureParameterivEXT: [void, GLuint texture, GLenum target, GLenum pname, GLint *params] glGetVertexArrayIntegeri_vEXT: [void, GLuint vaobj, GLuint index, GLenum pname, GLint *param] glGetVertexArrayIntegervEXT: [void, GLuint vaobj, GLenum pname, GLint *param] glGetVertexArrayPointeri_vEXT: [void, GLuint vaobj, GLuint index, GLenum pname, GLvoid *param] glGetVertexArrayPointervEXT: [void, GLuint vaobj, GLenum pname, GLvoid *param] glMapNamedBufferEXT: [GLvoid *, GLuint buffer, GLenum access] glMapNamedBufferRangeEXT: [GLvoid *, GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access] glMatrixFrustumEXT: [void, GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar] glMatrixLoadIdentityEXT: [void, GLenum mode] glMatrixLoadTransposedEXT: [void, GLenum mode, const GLdouble *m] glMatrixLoadTransposefEXT: [void, GLenum mode, const GLfloat *m] glMatrixLoaddEXT: [void, GLenum mode, const GLdouble *m] glMatrixLoadfEXT: [void, GLenum mode, const GLfloat *m] glMatrixMultTransposedEXT: [void, GLenum mode, const GLdouble *m] glMatrixMultTransposefEXT: [void, GLenum mode, const GLfloat *m] glMatrixMultdEXT: [void, GLenum mode, const GLdouble *m] glMatrixMultfEXT: [void, GLenum mode, const GLfloat *m] glMatrixOrthoEXT: [void, GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar] glMatrixPopEXT: [void, GLenum mode] glMatrixPushEXT: [void, GLenum mode] glMatrixRotatedEXT: [void, GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z] glMatrixRotatefEXT: [void, GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z] glMatrixScaledEXT: [void, GLenum mode, GLdouble x, GLdouble y, GLdouble z] glMatrixScalefEXT: [void, GLenum mode, GLfloat x, GLfloat y, GLfloat z] glMatrixTranslatedEXT: [void, GLenum mode, GLdouble x, GLdouble y, GLdouble z] glMatrixTranslatefEXT: [void, GLenum mode, GLfloat x, GLfloat y, GLfloat z] glMultiTexBufferEXT: [void, GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer] glMultiTexCoordPointerEXT: [void, GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glMultiTexEnvfEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLfloat param] glMultiTexEnvfvEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLfloat *params] glMultiTexEnviEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLint param] glMultiTexEnvivEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLint *params] glMultiTexGendEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLdouble param] glMultiTexGendvEXT: [void, GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params] glMultiTexGenfEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLfloat param] glMultiTexGenfvEXT: [void, GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params] glMultiTexGeniEXT: [void, GLenum texunit, GLenum coord, GLenum pname, GLint param] glMultiTexGenivEXT: [void, GLenum texunit, GLenum coord, GLenum pname, const GLint *params] glMultiTexImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glMultiTexImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glMultiTexImage3DEXT: [void, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glMultiTexParameterIivEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLint *params] glMultiTexParameterIuivEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLuint *params] glMultiTexParameterfEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLfloat param] glMultiTexParameterfvEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLfloat *params] glMultiTexParameteriEXT: [void, GLenum texunit, GLenum target, GLenum pname, GLint param] glMultiTexParameterivEXT: [void, GLenum texunit, GLenum target, GLenum pname, const GLint *params] glMultiTexRenderbufferEXT: [void, GLenum texunit, GLenum target, GLuint renderbuffer] glMultiTexSubImage1DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels] glMultiTexSubImage2DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels] glMultiTexSubImage3DEXT: [void, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels] glNamedBufferDataEXT: [void, GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage] glNamedBufferSubDataEXT: [void, GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data] glNamedCopyBufferSubDataEXT: [void, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size] glNamedFramebufferRenderbufferEXT: [void, GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] glNamedFramebufferTexture1DEXT: [void, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glNamedFramebufferTexture2DEXT: [void, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glNamedFramebufferTexture3DEXT: [void, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset] glNamedFramebufferTextureEXT: [void, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level] glNamedFramebufferTextureFaceEXT: [void, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face] glNamedFramebufferTextureLayerEXT: [void, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer] glNamedProgramLocalParameter4dEXT: [void, GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glNamedProgramLocalParameter4dvEXT: [void, GLuint program, GLenum target, GLuint index, const GLdouble *params] glNamedProgramLocalParameter4fEXT: [void, GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glNamedProgramLocalParameter4fvEXT: [void, GLuint program, GLenum target, GLuint index, const GLfloat *params] glNamedProgramLocalParameterI4iEXT: [void, GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w] glNamedProgramLocalParameterI4ivEXT: [void, GLuint program, GLenum target, GLuint index, const GLint *params] glNamedProgramLocalParameterI4uiEXT: [void, GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w] glNamedProgramLocalParameterI4uivEXT: [void, GLuint program, GLenum target, GLuint index, const GLuint *params] glNamedProgramLocalParameters4fvEXT: [void, GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params] glNamedProgramLocalParametersI4ivEXT: [void, GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params] glNamedProgramLocalParametersI4uivEXT: [void, GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params] glNamedProgramStringEXT: [void, GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string] glNamedRenderbufferStorageEXT: [void, GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height] glNamedRenderbufferStorageMultisampleCoverageEXT: [void, GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height] glNamedRenderbufferStorageMultisampleEXT: [void, GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height] glProgramUniform1dEXT: [void, GLuint program, GLint location, GLdouble x] glProgramUniform1dvEXT: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform1fEXT: [void, GLuint program, GLint location, GLfloat v0] glProgramUniform1fvEXT: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform1iEXT: [void, GLuint program, GLint location, GLint v0] glProgramUniform1ivEXT: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform1uiEXT: [void, GLuint program, GLint location, GLuint v0] glProgramUniform1uivEXT: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform2dEXT: [void, GLuint program, GLint location, GLdouble x, GLdouble y] glProgramUniform2dvEXT: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform2fEXT: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1] glProgramUniform2fvEXT: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform2iEXT: [void, GLuint program, GLint location, GLint v0, GLint v1] glProgramUniform2ivEXT: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform2uiEXT: [void, GLuint program, GLint location, GLuint v0, GLuint v1] glProgramUniform2uivEXT: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform3dEXT: [void, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z] glProgramUniform3dvEXT: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform3fEXT: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2] glProgramUniform3fvEXT: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform3iEXT: [void, GLuint program, GLint location, GLint v0, GLint v1, GLint v2] glProgramUniform3ivEXT: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform3uiEXT: [void, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2] glProgramUniform3uivEXT: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniform4dEXT: [void, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glProgramUniform4dvEXT: [void, GLuint program, GLint location, GLsizei count, const GLdouble *value] glProgramUniform4fEXT: [void, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3] glProgramUniform4fvEXT: [void, GLuint program, GLint location, GLsizei count, const GLfloat *value] glProgramUniform4iEXT: [void, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3] glProgramUniform4ivEXT: [void, GLuint program, GLint location, GLsizei count, const GLint *value] glProgramUniform4uiEXT: [void, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3] glProgramUniform4uivEXT: [void, GLuint program, GLint location, GLsizei count, const GLuint *value] glProgramUniformMatrix2dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix2x3dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2x3fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix2x4dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix2x4fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3x2dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3x2fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix3x4dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix3x4fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4x2dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4x2fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glProgramUniformMatrix4x3dvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value] glProgramUniformMatrix4x3fvEXT: [void, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glPushClientAttribDefaultEXT: [void, GLbitfield mask] glTextureBufferEXT: [void, GLuint texture, GLenum target, GLenum internalformat, GLuint buffer] glTextureImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTextureImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTextureImage3DEXT: [void, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTextureParameterIivEXT: [void, GLuint texture, GLenum target, GLenum pname, const GLint *params] glTextureParameterIuivEXT: [void, GLuint texture, GLenum target, GLenum pname, const GLuint *params] glTextureParameterfEXT: [void, GLuint texture, GLenum target, GLenum pname, GLfloat param] glTextureParameterfvEXT: [void, GLuint texture, GLenum target, GLenum pname, const GLfloat *params] glTextureParameteriEXT: [void, GLuint texture, GLenum target, GLenum pname, GLint param] glTextureParameterivEXT: [void, GLuint texture, GLenum target, GLenum pname, const GLint *params] glTextureRenderbufferEXT: [void, GLuint texture, GLenum target, GLuint renderbuffer] glTextureSubImage1DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels] glTextureSubImage2DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels] glTextureSubImage3DEXT: [void, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels] glUnmapNamedBufferEXT: [GLboolean, GLuint buffer] glVertexArrayColorOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayEdgeFlagOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset] glVertexArrayFogCoordOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayIndexOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayMultiTexCoordOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayNormalOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset] glVertexArraySecondaryColorOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayTexCoordOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayVertexAttribIOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexArrayVertexAttribOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset] glVertexArrayVertexOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset] EXT_draw_buffers2: glColorMaskIndexedEXT: [void, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a] glDisableIndexedEXT: [void, GLenum target, GLuint index] glEnableIndexedEXT: [void, GLenum target, GLuint index] glGetBooleanIndexedvEXT: [void, GLenum target, GLuint index, GLboolean *data] glGetIntegerIndexedvEXT: [void, GLenum target, GLuint index, GLint *data] glIsEnabledIndexedEXT: [GLboolean, GLenum target, GLuint index] EXT_draw_instanced: glDrawArraysInstancedEXT: [void, GLenum mode, GLint start, GLsizei count, GLsizei primcount] glDrawElementsInstancedEXT: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount] EXT_draw_range_elements: glDrawRangeElementsEXT: [void, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices] EXT_fog_coord: glFogCoordPointerEXT: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glFogCoorddEXT: [void, GLdouble coord] glFogCoorddvEXT: [void, const GLdouble *coord] glFogCoordfEXT: [void, GLfloat coord] glFogCoordfvEXT: [void, const GLfloat *coord] EXT_framebuffer_blit: glBlitFramebufferEXT: [void, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter] EXT_framebuffer_multisample: glRenderbufferStorageMultisampleEXT: [void, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height] EXT_framebuffer_object: glBindFramebufferEXT: [void, GLenum target, GLuint framebuffer] glBindRenderbufferEXT: [void, GLenum target, GLuint renderbuffer] glCheckFramebufferStatusEXT: [GLenum, GLenum target] glDeleteFramebuffersEXT: [void, GLsizei n, const GLuint *framebuffers] glDeleteRenderbuffersEXT: [void, GLsizei n, const GLuint *renderbuffers] glFramebufferRenderbufferEXT: [void, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] glFramebufferTexture1DEXT: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glFramebufferTexture2DEXT: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] glFramebufferTexture3DEXT: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset] glGenFramebuffersEXT: [void, GLsizei n, GLuint *framebuffers] glGenRenderbuffersEXT: [void, GLsizei n, GLuint *renderbuffers] glGenerateMipmapEXT: [void, GLenum target] glGetFramebufferAttachmentParameterivEXT: [void, GLenum target, GLenum attachment, GLenum pname, GLint *params] glGetRenderbufferParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] glIsFramebufferEXT: [GLboolean, GLuint framebuffer] glIsRenderbufferEXT: [GLboolean, GLuint renderbuffer] glRenderbufferStorageEXT: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height] EXT_geometry_shader4: glProgramParameteriEXT: [void, GLuint program, GLenum pname, GLint value] EXT_gpu_program_parameters: glProgramEnvParameters4fvEXT: [void, GLenum target, GLuint index, GLsizei count, const GLfloat *params] glProgramLocalParameters4fvEXT: [void, GLenum target, GLuint index, GLsizei count, const GLfloat *params] EXT_gpu_shader4: glBindFragDataLocationEXT: [void, GLuint program, GLuint color, const GLchar *name] glGetFragDataLocationEXT: [GLint, GLuint program, const GLchar *name] glGetUniformuivEXT: [void, GLuint program, GLint location, GLuint *params] glUniform1uiEXT: [void, GLint location, GLuint v0] glUniform1uivEXT: [void, GLint location, GLsizei count, const GLuint *value] glUniform2uiEXT: [void, GLint location, GLuint v0, GLuint v1] glUniform2uivEXT: [void, GLint location, GLsizei count, const GLuint *value] glUniform3uiEXT: [void, GLint location, GLuint v0, GLuint v1, GLuint v2] glUniform3uivEXT: [void, GLint location, GLsizei count, const GLuint *value] glUniform4uiEXT: [void, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3] glUniform4uivEXT: [void, GLint location, GLsizei count, const GLuint *value] EXT_histogram: glGetHistogramEXT: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values] glGetHistogramParameterfvEXT: [void, GLenum target, GLenum pname, GLfloat *params] glGetHistogramParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] glGetMinmaxEXT: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values] glGetMinmaxParameterfvEXT: [void, GLenum target, GLenum pname, GLfloat *params] glGetMinmaxParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] glHistogramEXT: [void, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink] glMinmaxEXT: [void, GLenum target, GLenum internalformat, GLboolean sink] glResetHistogramEXT: [void, GLenum target] glResetMinmaxEXT: [void, GLenum target] EXT_index_func: glIndexFuncEXT: [void, GLenum func, GLclampf ref] EXT_index_material: glIndexMaterialEXT: [void, GLenum face, GLenum mode] EXT_light_texture: glApplyTextureEXT: [void, GLenum mode] glTextureLightEXT: [void, GLenum pname] glTextureMaterialEXT: [void, GLenum face, GLenum mode] EXT_multi_draw_arrays: glMultiDrawArraysEXT: [void, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount] glMultiDrawElementsEXT: [void, GLenum mode, const GLsizei *count, GLenum type, const GLvoid *indices, GLsizei primcount] EXT_multisample: glSampleMaskEXT: [void, GLclampf value, GLboolean invert] glSamplePatternEXT: [void, GLenum pattern] EXT_paletted_texture: glColorTableEXT: [void, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table] glGetColorTableEXT: [void, GLenum target, GLenum format, GLenum type, GLvoid *data] glGetColorTableParameterfvEXT: [void, GLenum target, GLenum pname, GLfloat *params] glGetColorTableParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] EXT_pixel_transform: glGetPixelTransformParameterfvEXT: [void, GLenum target, GLenum pname, GLfloat *params] glGetPixelTransformParameterivEXT: [void, GLenum target, GLenum pname, GLint *params] glPixelTransformParameterfEXT: [void, GLenum target, GLenum pname, GLfloat param] glPixelTransformParameterfvEXT: [void, GLenum target, GLenum pname, const GLfloat *params] glPixelTransformParameteriEXT: [void, GLenum target, GLenum pname, GLint param] glPixelTransformParameterivEXT: [void, GLenum target, GLenum pname, const GLint *params] EXT_point_parameters: glPointParameterfEXT: [void, GLenum pname, GLfloat param] glPointParameterfvEXT: [void, GLenum pname, const GLfloat *params] EXT_polygon_offset: glPolygonOffsetEXT: [void, GLfloat factor, GLfloat bias] EXT_provoking_vertex: glProvokingVertexEXT: [void, GLenum mode] EXT_secondary_color: glSecondaryColor3bEXT: [void, GLbyte red, GLbyte green, GLbyte blue] glSecondaryColor3bvEXT: [void, const GLbyte *v] glSecondaryColor3dEXT: [void, GLdouble red, GLdouble green, GLdouble blue] glSecondaryColor3dvEXT: [void, const GLdouble *v] glSecondaryColor3fEXT: [void, GLfloat red, GLfloat green, GLfloat blue] glSecondaryColor3fvEXT: [void, const GLfloat *v] glSecondaryColor3iEXT: [void, GLint red, GLint green, GLint blue] glSecondaryColor3ivEXT: [void, const GLint *v] glSecondaryColor3sEXT: [void, GLshort red, GLshort green, GLshort blue] glSecondaryColor3svEXT: [void, const GLshort *v] glSecondaryColor3ubEXT: [void, GLubyte red, GLubyte green, GLubyte blue] glSecondaryColor3ubvEXT: [void, const GLubyte *v] glSecondaryColor3uiEXT: [void, GLuint red, GLuint green, GLuint blue] glSecondaryColor3uivEXT: [void, const GLuint *v] glSecondaryColor3usEXT: [void, GLushort red, GLushort green, GLushort blue] glSecondaryColor3usvEXT: [void, const GLushort *v] glSecondaryColorPointerEXT: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] EXT_separate_shader_objects: glActiveProgramEXT: [void, GLuint program] glCreateShaderProgramEXT: [GLuint, GLenum type, const GLchar *string] glUseShaderProgramEXT: [void, GLenum type, GLuint program] EXT_shader_image_load_store: glBindImageTextureEXT: [void, GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format] glMemoryBarrierEXT: [void, GLbitfield barriers] EXT_stencil_clear_tag: glStencilClearTagEXT: [void, GLsizei stencilTagBits, GLuint stencilClearTag] EXT_stencil_two_side: glActiveStencilFaceEXT: [void, GLenum face] EXT_subtexture: glTexSubImage1DEXT: [void, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels] glTexSubImage2DEXT: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels] EXT_texture3D: glTexImage3DEXT: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTexSubImage3DEXT: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels] EXT_texture_buffer_object: glTexBufferEXT: [void, GLenum target, GLenum internalformat, GLuint buffer] EXT_texture_integer: glClearColorIiEXT: [void, GLint red, GLint green, GLint blue, GLint alpha] glClearColorIuiEXT: [void, GLuint red, GLuint green, GLuint blue, GLuint alpha] glGetTexParameterIivEXT: [void, GLenum target, GLenum pname, GLint *params] glGetTexParameterIuivEXT: [void, GLenum target, GLenum pname, GLuint *params] glTexParameterIivEXT: [void, GLenum target, GLenum pname, const GLint *params] glTexParameterIuivEXT: [void, GLenum target, GLenum pname, const GLuint *params] EXT_texture_object: glAreTexturesResidentEXT: [GLboolean, GLsizei n, const GLuint *textures, GLboolean *residences] glBindTextureEXT: [void, GLenum target, GLuint texture] glDeleteTexturesEXT: [void, GLsizei n, const GLuint *textures] glGenTexturesEXT: [void, GLsizei n, GLuint *textures] glIsTextureEXT: [GLboolean, GLuint texture] glPrioritizeTexturesEXT: [void, GLsizei n, const GLuint *textures, const GLclampf *priorities] EXT_texture_perturb_normal: glTextureNormalEXT: [void, GLenum mode] EXT_timer_query: glGetQueryObjecti64vEXT: [void, GLuint id, GLenum pname, GLint64EXT *params] glGetQueryObjectui64vEXT: [void, GLuint id, GLenum pname, GLuint64EXT *params] EXT_transform_feedback: glBeginTransformFeedbackEXT: [void, GLenum primitiveMode] glBindBufferBaseEXT: [void, GLenum target, GLuint index, GLuint buffer] glBindBufferOffsetEXT: [void, GLenum target, GLuint index, GLuint buffer, GLintptr offset] glBindBufferRangeEXT: [void, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size] glEndTransformFeedbackEXT: [void] glGetTransformFeedbackVaryingEXT: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name] glTransformFeedbackVaryingsEXT: [void, GLuint program, GLsizei count, const GLchar *varyings, GLenum bufferMode] EXT_vertex_array: glArrayElementEXT: [void, GLint i] glColorPointerEXT: [void, GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer] glDrawArraysEXT: [void, GLenum mode, GLint first, GLsizei count] glEdgeFlagPointerEXT: [void, GLsizei stride, GLsizei count, const GLboolean *pointer] glGetPointervEXT: [void, GLenum pname, GLvoid *params] glIndexPointerEXT: [void, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer] glNormalPointerEXT: [void, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer] glTexCoordPointerEXT: [void, GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer] glVertexPointerEXT: [void, GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer] EXT_vertex_attrib_64bit: glGetVertexAttribLdvEXT: [void, GLuint index, GLenum pname, GLdouble *params] glVertexArrayVertexAttribLOffsetEXT: [void, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset] glVertexAttribL1dEXT: [void, GLuint index, GLdouble x] glVertexAttribL1dvEXT: [void, GLuint index, const GLdouble *v] glVertexAttribL2dEXT: [void, GLuint index, GLdouble x, GLdouble y] glVertexAttribL2dvEXT: [void, GLuint index, const GLdouble *v] glVertexAttribL3dEXT: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z] glVertexAttribL3dvEXT: [void, GLuint index, const GLdouble *v] glVertexAttribL4dEXT: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexAttribL4dvEXT: [void, GLuint index, const GLdouble *v] glVertexAttribLPointerEXT: [void, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] EXT_vertex_shader: glBeginVertexShaderEXT: [void] glBindLightParameterEXT: [GLuint, GLenum light, GLenum value] glBindMaterialParameterEXT: [GLuint, GLenum face, GLenum value] glBindParameterEXT: [GLuint, GLenum value] glBindTexGenParameterEXT: [GLuint, GLenum unit, GLenum coord, GLenum value] glBindTextureUnitParameterEXT: [GLuint, GLenum unit, GLenum value] glBindVertexShaderEXT: [void, GLuint id] glDeleteVertexShaderEXT: [void, GLuint id] glDisableVariantClientStateEXT: [void, GLuint id] glEnableVariantClientStateEXT: [void, GLuint id] glEndVertexShaderEXT: [void] glExtractComponentEXT: [void, GLuint res, GLuint src, GLuint num] glGenSymbolsEXT: [GLuint, GLenum datatype, GLenum storagetype, GLenum range, GLuint components] glGenVertexShadersEXT: [GLuint, GLuint range] glGetInvariantBooleanvEXT: [void, GLuint id, GLenum value, GLboolean *data] glGetInvariantFloatvEXT: [void, GLuint id, GLenum value, GLfloat *data] glGetInvariantIntegervEXT: [void, GLuint id, GLenum value, GLint *data] glGetLocalConstantBooleanvEXT: [void, GLuint id, GLenum value, GLboolean *data] glGetLocalConstantFloatvEXT: [void, GLuint id, GLenum value, GLfloat *data] glGetLocalConstantIntegervEXT: [void, GLuint id, GLenum value, GLint *data] glGetVariantBooleanvEXT: [void, GLuint id, GLenum value, GLboolean *data] glGetVariantFloatvEXT: [void, GLuint id, GLenum value, GLfloat *data] glGetVariantIntegervEXT: [void, GLuint id, GLenum value, GLint *data] glGetVariantPointervEXT: [void, GLuint id, GLenum value, GLvoid *data] glInsertComponentEXT: [void, GLuint res, GLuint src, GLuint num] glIsVariantEnabledEXT: [GLboolean, GLuint id, GLenum cap] glSetInvariantEXT: [void, GLuint id, GLenum type, const GLvoid *addr] glSetLocalConstantEXT: [void, GLuint id, GLenum type, const GLvoid *addr] glShaderOp1EXT: [void, GLenum op, GLuint res, GLuint arg1] glShaderOp2EXT: [void, GLenum op, GLuint res, GLuint arg1, GLuint arg2] glShaderOp3EXT: [void, GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3] glSwizzleEXT: [void, GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW] glVariantPointerEXT: [void, GLuint id, GLenum type, GLuint stride, const GLvoid *addr] glVariantbvEXT: [void, GLuint id, const GLbyte *addr] glVariantdvEXT: [void, GLuint id, const GLdouble *addr] glVariantfvEXT: [void, GLuint id, const GLfloat *addr] glVariantivEXT: [void, GLuint id, const GLint *addr] glVariantsvEXT: [void, GLuint id, const GLshort *addr] glVariantubvEXT: [void, GLuint id, const GLubyte *addr] glVariantuivEXT: [void, GLuint id, const GLuint *addr] glVariantusvEXT: [void, GLuint id, const GLushort *addr] glWriteMaskEXT: [void, GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW] EXT_vertex_weighting: glVertexWeightPointerEXT: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glVertexWeightfEXT: [void, GLfloat weight] glVertexWeightfvEXT: [void, const GLfloat *weight] EXT_x11_sync_object: glImportSyncEXT: [GLsync, GLenum external_sync_type, GLintptr external_sync, GLbitfield flags] GREMEDY_frame_terminator: glFrameTerminatorGREMEDY: [void] GREMEDY_string_marker: glStringMarkerGREMEDY: [void, GLsizei len, const GLvoid *string] HP_image_transform: glGetImageTransformParameterfvHP: [void, GLenum target, GLenum pname, GLfloat *params] glGetImageTransformParameterivHP: [void, GLenum target, GLenum pname, GLint *params] glImageTransformParameterfHP: [void, GLenum target, GLenum pname, GLfloat param] glImageTransformParameterfvHP: [void, GLenum target, GLenum pname, const GLfloat *params] glImageTransformParameteriHP: [void, GLenum target, GLenum pname, GLint param] glImageTransformParameterivHP: [void, GLenum target, GLenum pname, const GLint *params] IBM_multimode_draw_arrays: glMultiModeDrawArraysIBM: [void, const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride] glMultiModeDrawElementsIBM: [void, const GLenum *mode, const GLsizei *count, GLenum type, GLvoid*const *indices, GLsizei primcount, GLint modestride] IBM_static_data: glFlushStaticDataIBM: [void, GLenum target] IBM_vertex_array_lists: glColorPointerListIBM: [void, GLint size, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glEdgeFlagPointerListIBM: [void, GLint stride, const GLboolean *pointer, GLint ptrstride] glFogCoordPointerListIBM: [void, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glIndexPointerListIBM: [void, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glNormalPointerListIBM: [void, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glSecondaryColorPointerListIBM: [void, GLint size, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glTexCoordPointerListIBM: [void, GLint size, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] glVertexPointerListIBM: [void, GLint size, GLenum type, GLint stride, const GLvoid *pointer, GLint ptrstride] INGR_blend_func_separate: glBlendFuncSeparateINGR: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] INTEL_map_texture: glMapTexture2DINTEL: [GLvoid *, GLuint texture, GLint level, GLbitfield access, const GLint *stride, const GLenum *layout] glSyncTextureINTEL: [void, GLuint texture] glUnmapTexture2DINTEL: [void, GLuint texture, GLint level] INTEL_parallel_arrays: glColorPointervINTEL: [void, GLint size, GLenum type, const GLvoid *pointer] glNormalPointervINTEL: [void, GLenum type, const GLvoid *pointer] glTexCoordPointervINTEL: [void, GLint size, GLenum type, const GLvoid *pointer] glVertexPointervINTEL: [void, GLint size, GLenum type, const GLvoid *pointer] KHR_debug: glDebugMessageCallback: [void, GLDEBUGPROC callback, const void *userParam] glDebugMessageControl: [void, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled] glDebugMessageInsert: [void, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf] glGetDebugMessageLog: [GLuint, GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog] glGetObjectLabel: [void, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label] glGetObjectPtrLabel: [void, const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label] glObjectLabel: [void, GLenum identifier, GLuint name, GLsizei length, const GLchar *label] glObjectPtrLabel: [void, const void *ptr, GLsizei length, const GLchar *label] glPopDebugGroup: [void] glPushDebugGroup: [void, GLenum source, GLuint id, GLsizei length, const GLchar *message] MESA_resize_buffers: glResizeBuffersMESA: [void] MESA_window_pos: glWindowPos2dMESA: [void, GLdouble x, GLdouble y] glWindowPos2dvMESA: [void, const GLdouble *v] glWindowPos2fMESA: [void, GLfloat x, GLfloat y] glWindowPos2fvMESA: [void, const GLfloat *v] glWindowPos2iMESA: [void, GLint x, GLint y] glWindowPos2ivMESA: [void, const GLint *v] glWindowPos2sMESA: [void, GLshort x, GLshort y] glWindowPos2svMESA: [void, const GLshort *v] glWindowPos3dMESA: [void, GLdouble x, GLdouble y, GLdouble z] glWindowPos3dvMESA: [void, const GLdouble *v] glWindowPos3fMESA: [void, GLfloat x, GLfloat y, GLfloat z] glWindowPos3fvMESA: [void, const GLfloat *v] glWindowPos3iMESA: [void, GLint x, GLint y, GLint z] glWindowPos3ivMESA: [void, const GLint *v] glWindowPos3sMESA: [void, GLshort x, GLshort y, GLshort z] glWindowPos3svMESA: [void, const GLshort *v] glWindowPos4dMESA: [void, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glWindowPos4dvMESA: [void, const GLdouble *v] glWindowPos4fMESA: [void, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glWindowPos4fvMESA: [void, const GLfloat *v] glWindowPos4iMESA: [void, GLint x, GLint y, GLint z, GLint w] glWindowPos4ivMESA: [void, const GLint *v] glWindowPos4sMESA: [void, GLshort x, GLshort y, GLshort z, GLshort w] glWindowPos4svMESA: [void, const GLshort *v] NVX_conditional_render: glBeginConditionalRenderNVX: [void, GLuint id] glEndConditionalRenderNVX: [void] NV_bindless_texture: glGetImageHandleNV: [GLuint64, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format] glGetTextureHandleNV: [GLuint64, GLuint texture] glGetTextureSamplerHandleNV: [GLuint64, GLuint texture, GLuint sampler] glIsImageHandleResidentNV: [GLboolean, GLuint64 handle] glIsTextureHandleResidentNV: [GLboolean, GLuint64 handle] glMakeImageHandleNonResidentNV: [void, GLuint64 handle] glMakeImageHandleResidentNV: [void, GLuint64 handle, GLenum access] glMakeTextureHandleNonResidentNV: [void, GLuint64 handle] glMakeTextureHandleResidentNV: [void, GLuint64 handle] glProgramUniformHandleui64NV: [void, GLuint program, GLint location, GLuint64 value] glProgramUniformHandleui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64 *values] glUniformHandleui64NV: [void, GLint location, GLuint64 value] glUniformHandleui64vNV: [void, GLint location, GLsizei count, const GLuint64 *value] NV_conditional_render: glBeginConditionalRenderNV: [void, GLuint id, GLenum mode] glEndConditionalRenderNV: [void] NV_copy_image: glCopyImageSubDataNV: [void, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth] NV_depth_buffer_float: glClearDepthdNV: [void, GLdouble depth] glDepthBoundsdNV: [void, GLdouble zmin, GLdouble zmax] glDepthRangedNV: [void, GLdouble zNear, GLdouble zFar] NV_draw_texture: glDrawTextureNV: [void, GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1] NV_evaluators: glEvalMapsNV: [void, GLenum target, GLenum mode] glGetMapAttribParameterfvNV: [void, GLenum target, GLuint index, GLenum pname, GLfloat *params] glGetMapAttribParameterivNV: [void, GLenum target, GLuint index, GLenum pname, GLint *params] glGetMapControlPointsNV: [void, GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points] glGetMapParameterfvNV: [void, GLenum target, GLenum pname, GLfloat *params] glGetMapParameterivNV: [void, GLenum target, GLenum pname, GLint *params] glMapControlPointsNV: [void, GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points] glMapParameterfvNV: [void, GLenum target, GLenum pname, const GLfloat *params] glMapParameterivNV: [void, GLenum target, GLenum pname, const GLint *params] NV_explicit_multisample: glGetMultisamplefvNV: [void, GLenum pname, GLuint index, GLfloat *val] glSampleMaskIndexedNV: [void, GLuint index, GLbitfield mask] glTexRenderbufferNV: [void, GLenum target, GLuint renderbuffer] NV_fence: glDeleteFencesNV: [void, GLsizei n, const GLuint *fences] glFinishFenceNV: [void, GLuint fence] glGenFencesNV: [void, GLsizei n, GLuint *fences] glGetFenceivNV: [void, GLuint fence, GLenum pname, GLint *params] glIsFenceNV: [GLboolean, GLuint fence] glSetFenceNV: [void, GLuint fence, GLenum condition] glTestFenceNV: [GLboolean, GLuint fence] NV_fragment_program: glGetProgramNamedParameterdvNV: [void, GLuint id, GLsizei len, const GLubyte *name, GLdouble *params] glGetProgramNamedParameterfvNV: [void, GLuint id, GLsizei len, const GLubyte *name, GLfloat *params] glProgramNamedParameter4dNV: [void, GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glProgramNamedParameter4dvNV: [void, GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v] glProgramNamedParameter4fNV: [void, GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glProgramNamedParameter4fvNV: [void, GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v] NV_framebuffer_multisample_coverage: glRenderbufferStorageMultisampleCoverageNV: [void, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height] NV_geometry_program4: glFramebufferTextureEXT: [void, GLenum target, GLenum attachment, GLuint texture, GLint level] glFramebufferTextureFaceEXT: [void, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face] glFramebufferTextureLayerEXT: [void, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer] glProgramVertexLimitNV: [void, GLenum target, GLint limit] NV_gpu_program4: glGetProgramEnvParameterIivNV: [void, GLenum target, GLuint index, GLint *params] glGetProgramEnvParameterIuivNV: [void, GLenum target, GLuint index, GLuint *params] glGetProgramLocalParameterIivNV: [void, GLenum target, GLuint index, GLint *params] glGetProgramLocalParameterIuivNV: [void, GLenum target, GLuint index, GLuint *params] glProgramEnvParameterI4iNV: [void, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w] glProgramEnvParameterI4ivNV: [void, GLenum target, GLuint index, const GLint *params] glProgramEnvParameterI4uiNV: [void, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w] glProgramEnvParameterI4uivNV: [void, GLenum target, GLuint index, const GLuint *params] glProgramEnvParametersI4ivNV: [void, GLenum target, GLuint index, GLsizei count, const GLint *params] glProgramEnvParametersI4uivNV: [void, GLenum target, GLuint index, GLsizei count, const GLuint *params] glProgramLocalParameterI4iNV: [void, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w] glProgramLocalParameterI4ivNV: [void, GLenum target, GLuint index, const GLint *params] glProgramLocalParameterI4uiNV: [void, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w] glProgramLocalParameterI4uivNV: [void, GLenum target, GLuint index, const GLuint *params] glProgramLocalParametersI4ivNV: [void, GLenum target, GLuint index, GLsizei count, const GLint *params] glProgramLocalParametersI4uivNV: [void, GLenum target, GLuint index, GLsizei count, const GLuint *params] NV_gpu_program5: glGetProgramSubroutineParameteruivNV: [void, GLenum target, GLuint index, GLuint *param] glProgramSubroutineParametersuivNV: [void, GLenum target, GLsizei count, const GLuint *params] NV_gpu_shader5: glGetUniformi64vNV: [void, GLuint program, GLint location, GLint64EXT *params] glProgramUniform1i64NV: [void, GLuint program, GLint location, GLint64EXT x] glProgramUniform1i64vNV: [void, GLuint program, GLint location, GLsizei count, const GLint64EXT *value] glProgramUniform1ui64NV: [void, GLuint program, GLint location, GLuint64EXT x] glProgramUniform1ui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64EXT *value] glProgramUniform2i64NV: [void, GLuint program, GLint location, GLint64EXT x, GLint64EXT y] glProgramUniform2i64vNV: [void, GLuint program, GLint location, GLsizei count, const GLint64EXT *value] glProgramUniform2ui64NV: [void, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y] glProgramUniform2ui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64EXT *value] glProgramUniform3i64NV: [void, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z] glProgramUniform3i64vNV: [void, GLuint program, GLint location, GLsizei count, const GLint64EXT *value] glProgramUniform3ui64NV: [void, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z] glProgramUniform3ui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64EXT *value] glProgramUniform4i64NV: [void, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w] glProgramUniform4i64vNV: [void, GLuint program, GLint location, GLsizei count, const GLint64EXT *value] glProgramUniform4ui64NV: [void, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w] glProgramUniform4ui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64EXT *value] glUniform1i64NV: [void, GLint location, GLint64EXT x] glUniform1i64vNV: [void, GLint location, GLsizei count, const GLint64EXT *value] glUniform1ui64NV: [void, GLint location, GLuint64EXT x] glUniform1ui64vNV: [void, GLint location, GLsizei count, const GLuint64EXT *value] glUniform2i64NV: [void, GLint location, GLint64EXT x, GLint64EXT y] glUniform2i64vNV: [void, GLint location, GLsizei count, const GLint64EXT *value] glUniform2ui64NV: [void, GLint location, GLuint64EXT x, GLuint64EXT y] glUniform2ui64vNV: [void, GLint location, GLsizei count, const GLuint64EXT *value] glUniform3i64NV: [void, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z] glUniform3i64vNV: [void, GLint location, GLsizei count, const GLint64EXT *value] glUniform3ui64NV: [void, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z] glUniform3ui64vNV: [void, GLint location, GLsizei count, const GLuint64EXT *value] glUniform4i64NV: [void, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w] glUniform4i64vNV: [void, GLint location, GLsizei count, const GLint64EXT *value] glUniform4ui64NV: [void, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w] glUniform4ui64vNV: [void, GLint location, GLsizei count, const GLuint64EXT *value] NV_half_float: glColor3hNV: [void, GLhalfNV red, GLhalfNV green, GLhalfNV blue] glColor3hvNV: [void, const GLhalfNV *v] glColor4hNV: [void, GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha] glColor4hvNV: [void, const GLhalfNV *v] glFogCoordhNV: [void, GLhalfNV fog] glFogCoordhvNV: [void, const GLhalfNV *fog] glMultiTexCoord1hNV: [void, GLenum target, GLhalfNV s] glMultiTexCoord1hvNV: [void, GLenum target, const GLhalfNV *v] glMultiTexCoord2hNV: [void, GLenum target, GLhalfNV s, GLhalfNV t] glMultiTexCoord2hvNV: [void, GLenum target, const GLhalfNV *v] glMultiTexCoord3hNV: [void, GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r] glMultiTexCoord3hvNV: [void, GLenum target, const GLhalfNV *v] glMultiTexCoord4hNV: [void, GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q] glMultiTexCoord4hvNV: [void, GLenum target, const GLhalfNV *v] glNormal3hNV: [void, GLhalfNV nx, GLhalfNV ny, GLhalfNV nz] glNormal3hvNV: [void, const GLhalfNV *v] glSecondaryColor3hNV: [void, GLhalfNV red, GLhalfNV green, GLhalfNV blue] glSecondaryColor3hvNV: [void, const GLhalfNV *v] glTexCoord1hNV: [void, GLhalfNV s] glTexCoord1hvNV: [void, const GLhalfNV *v] glTexCoord2hNV: [void, GLhalfNV s, GLhalfNV t] glTexCoord2hvNV: [void, const GLhalfNV *v] glTexCoord3hNV: [void, GLhalfNV s, GLhalfNV t, GLhalfNV r] glTexCoord3hvNV: [void, const GLhalfNV *v] glTexCoord4hNV: [void, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q] glTexCoord4hvNV: [void, const GLhalfNV *v] glVertex2hNV: [void, GLhalfNV x, GLhalfNV y] glVertex2hvNV: [void, const GLhalfNV *v] glVertex3hNV: [void, GLhalfNV x, GLhalfNV y, GLhalfNV z] glVertex3hvNV: [void, const GLhalfNV *v] glVertex4hNV: [void, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w] glVertex4hvNV: [void, const GLhalfNV *v] glVertexAttrib1hNV: [void, GLuint index, GLhalfNV x] glVertexAttrib1hvNV: [void, GLuint index, const GLhalfNV *v] glVertexAttrib2hNV: [void, GLuint index, GLhalfNV x, GLhalfNV y] glVertexAttrib2hvNV: [void, GLuint index, const GLhalfNV *v] glVertexAttrib3hNV: [void, GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z] glVertexAttrib3hvNV: [void, GLuint index, const GLhalfNV *v] glVertexAttrib4hNV: [void, GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w] glVertexAttrib4hvNV: [void, GLuint index, const GLhalfNV *v] glVertexAttribs1hvNV: [void, GLuint index, GLsizei n, const GLhalfNV *v] glVertexAttribs2hvNV: [void, GLuint index, GLsizei n, const GLhalfNV *v] glVertexAttribs3hvNV: [void, GLuint index, GLsizei n, const GLhalfNV *v] glVertexAttribs4hvNV: [void, GLuint index, GLsizei n, const GLhalfNV *v] glVertexWeighthNV: [void, GLhalfNV weight] glVertexWeighthvNV: [void, const GLhalfNV *weight] NV_occlusion_query: glBeginOcclusionQueryNV: [void, GLuint id] glDeleteOcclusionQueriesNV: [void, GLsizei n, const GLuint *ids] glEndOcclusionQueryNV: [void] glGenOcclusionQueriesNV: [void, GLsizei n, GLuint *ids] glGetOcclusionQueryivNV: [void, GLuint id, GLenum pname, GLint *params] glGetOcclusionQueryuivNV: [void, GLuint id, GLenum pname, GLuint *params] glIsOcclusionQueryNV: [GLboolean, GLuint id] NV_parameter_buffer_object: glProgramBufferParametersIivNV: [void, GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params] glProgramBufferParametersIuivNV: [void, GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params] glProgramBufferParametersfvNV: [void, GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params] NV_path_rendering: glCopyPathNV: [void, GLuint resultPath, GLuint srcPath] glCoverFillPathInstancedNV: [void, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues] glCoverFillPathNV: [void, GLuint path, GLenum coverMode] glCoverStrokePathInstancedNV: [void, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues] glCoverStrokePathNV: [void, GLuint path, GLenum coverMode] glDeletePathsNV: [void, GLuint path, GLsizei range] glGenPathsNV: [GLuint, GLsizei range] glGetPathColorGenfvNV: [void, GLenum color, GLenum pname, GLfloat *value] glGetPathColorGenivNV: [void, GLenum color, GLenum pname, GLint *value] glGetPathCommandsNV: [void, GLuint path, GLubyte *commands] glGetPathCoordsNV: [void, GLuint path, GLfloat *coords] glGetPathDashArrayNV: [void, GLuint path, GLfloat *dashArray] glGetPathLengthNV: [GLfloat, GLuint path, GLsizei startSegment, GLsizei numSegments] glGetPathMetricRangeNV: [void, GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics] glGetPathMetricsNV: [void, GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics] glGetPathParameterfvNV: [void, GLuint path, GLenum pname, GLfloat *value] glGetPathParameterivNV: [void, GLuint path, GLenum pname, GLint *value] glGetPathSpacingNV: [void, GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing] glGetPathTexGenfvNV: [void, GLenum texCoordSet, GLenum pname, GLfloat *value] glGetPathTexGenivNV: [void, GLenum texCoordSet, GLenum pname, GLint *value] glInterpolatePathsNV: [void, GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight] glIsPathNV: [GLboolean, GLuint path] glIsPointInFillPathNV: [GLboolean, GLuint path, GLuint mask, GLfloat x, GLfloat y] glIsPointInStrokePathNV: [GLboolean, GLuint path, GLfloat x, GLfloat y] glPathColorGenNV: [void, GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs] glPathCommandsNV: [void, GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords] glPathCoordsNV: [void, GLuint path, GLsizei numCoords, GLenum coordType, const GLvoid *coords] glPathCoverDepthFuncNV: [void, GLenum func] glPathDashArrayNV: [void, GLuint path, GLsizei dashCount, const GLfloat *dashArray] glPathFogGenNV: [void, GLenum genMode] glPathGlyphRangeNV: [void, GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale] glPathGlyphsNV: [void, GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale] glPathParameterfNV: [void, GLuint path, GLenum pname, GLfloat value] glPathParameterfvNV: [void, GLuint path, GLenum pname, const GLfloat *value] glPathParameteriNV: [void, GLuint path, GLenum pname, GLint value] glPathParameterivNV: [void, GLuint path, GLenum pname, const GLint *value] glPathStencilDepthOffsetNV: [void, GLfloat factor, GLfloat units] glPathStencilFuncNV: [void, GLenum func, GLint ref, GLuint mask] glPathStringNV: [void, GLuint path, GLenum format, GLsizei length, const GLvoid *pathString] glPathSubCommandsNV: [void, GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords] glPathSubCoordsNV: [void, GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const GLvoid *coords] glPathTexGenNV: [void, GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs] glPointAlongPathNV: [GLboolean, GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY] glStencilFillPathInstancedNV: [void, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues] glStencilFillPathNV: [void, GLuint path, GLenum fillMode, GLuint mask] glStencilStrokePathInstancedNV: [void, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues] glStencilStrokePathNV: [void, GLuint path, GLint reference, GLuint mask] glTransformPathNV: [void, GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues] glWeightPathsNV: [void, GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights] NV_pixel_data_range: glFlushPixelDataRangeNV: [void, GLenum target] glPixelDataRangeNV: [void, GLenum target, GLsizei length, const GLvoid *pointer] NV_point_sprite: glPointParameteriNV: [void, GLenum pname, GLint param] glPointParameterivNV: [void, GLenum pname, const GLint *params] NV_present_video: glGetVideoi64vNV: [void, GLuint video_slot, GLenum pname, GLint64EXT *params] glGetVideoivNV: [void, GLuint video_slot, GLenum pname, GLint *params] glGetVideoui64vNV: [void, GLuint video_slot, GLenum pname, GLuint64EXT *params] glGetVideouivNV: [void, GLuint video_slot, GLenum pname, GLuint *params] glPresentFrameDualFillNV: [void, GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3] glPresentFrameKeyedNV: [void, GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1] NV_primitive_restart: glPrimitiveRestartIndexNV: [void, GLuint index] glPrimitiveRestartNV: [void] NV_register_combiners: glCombinerInputNV: [void, GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage] glCombinerOutputNV: [void, GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum] glCombinerParameterfNV: [void, GLenum pname, GLfloat param] glCombinerParameterfvNV: [void, GLenum pname, const GLfloat *params] glCombinerParameteriNV: [void, GLenum pname, GLint param] glCombinerParameterivNV: [void, GLenum pname, const GLint *params] glFinalCombinerInputNV: [void, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage] glGetCombinerInputParameterfvNV: [void, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params] glGetCombinerInputParameterivNV: [void, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params] glGetCombinerOutputParameterfvNV: [void, GLenum stage, GLenum portion, GLenum pname, GLfloat *params] glGetCombinerOutputParameterivNV: [void, GLenum stage, GLenum portion, GLenum pname, GLint *params] glGetFinalCombinerInputParameterfvNV: [void, GLenum variable, GLenum pname, GLfloat *params] glGetFinalCombinerInputParameterivNV: [void, GLenum variable, GLenum pname, GLint *params] NV_register_combiners2: glCombinerStageParameterfvNV: [void, GLenum stage, GLenum pname, const GLfloat *params] glGetCombinerStageParameterfvNV: [void, GLenum stage, GLenum pname, GLfloat *params] NV_shader_buffer_load: glGetBufferParameterui64vNV: [void, GLenum target, GLenum pname, GLuint64EXT *params] glGetIntegerui64vNV: [void, GLenum value, GLuint64EXT *result] glGetNamedBufferParameterui64vNV: [void, GLuint buffer, GLenum pname, GLuint64EXT *params] glGetUniformui64vNV: [void, GLuint program, GLint location, GLuint64EXT *params] glIsBufferResidentNV: [GLboolean, GLenum target] glIsNamedBufferResidentNV: [GLboolean, GLuint buffer] glMakeBufferNonResidentNV: [void, GLenum target] glMakeBufferResidentNV: [void, GLenum target, GLenum access] glMakeNamedBufferNonResidentNV: [void, GLuint buffer] glMakeNamedBufferResidentNV: [void, GLuint buffer, GLenum access] glProgramUniformui64NV: [void, GLuint program, GLint location, GLuint64EXT value] glProgramUniformui64vNV: [void, GLuint program, GLint location, GLsizei count, const GLuint64EXT *value] glUniformui64NV: [void, GLint location, GLuint64EXT value] glUniformui64vNV: [void, GLint location, GLsizei count, const GLuint64EXT *value] NV_texture_barrier: glTextureBarrierNV: [void] NV_texture_multisample: glTexImage2DMultisampleCoverageNV: [void, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations] glTexImage3DMultisampleCoverageNV: [void, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations] glTextureImage2DMultisampleCoverageNV: [void, GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations] glTextureImage2DMultisampleNV: [void, GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations] glTextureImage3DMultisampleCoverageNV: [void, GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations] glTextureImage3DMultisampleNV: [void, GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations] NV_transform_feedback: glActiveVaryingNV: [void, GLuint program, const GLchar *name] glBeginTransformFeedbackNV: [void, GLenum primitiveMode] glBindBufferBaseNV: [void, GLenum target, GLuint index, GLuint buffer] glBindBufferOffsetNV: [void, GLenum target, GLuint index, GLuint buffer, GLintptr offset] glBindBufferRangeNV: [void, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size] glEndTransformFeedbackNV: [void] glGetActiveVaryingNV: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name] glGetTransformFeedbackVaryingNV: [void, GLuint program, GLuint index, GLint *location] glGetVaryingLocationNV: [GLint, GLuint program, const GLchar *name] glTransformFeedbackAttribsNV: [void, GLsizei count, const GLint *attribs, GLenum bufferMode] glTransformFeedbackStreamAttribsNV: [void, GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode] glTransformFeedbackVaryingsNV: [void, GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode] NV_transform_feedback2: glBindTransformFeedbackNV: [void, GLenum target, GLuint id] glDeleteTransformFeedbacksNV: [void, GLsizei n, const GLuint *ids] glDrawTransformFeedbackNV: [void, GLenum mode, GLuint id] glGenTransformFeedbacksNV: [void, GLsizei n, GLuint *ids] glIsTransformFeedbackNV: [GLboolean, GLuint id] glPauseTransformFeedbackNV: [void] glResumeTransformFeedbackNV: [void] NV_vdpau_interop: glVDPAUFiniNV: [void] glVDPAUGetSurfaceivNV: [void, GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values] glVDPAUInitNV: [void, const GLvoid *vdpDevice, const GLvoid *getProcAddress] glVDPAUIsSurfaceNV: [void, GLvdpauSurfaceNV surface] glVDPAUMapSurfacesNV: [void, GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces] glVDPAURegisterOutputSurfaceNV: [GLvdpauSurfaceNV, GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames] glVDPAURegisterVideoSurfaceNV: [GLvdpauSurfaceNV, const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames] glVDPAUSurfaceAccessNV: [void, GLvdpauSurfaceNV surface, GLenum access] glVDPAUUnmapSurfacesNV: [void, GLsizei numSurface, const GLvdpauSurfaceNV *surfaces] glVDPAUUnregisterSurfaceNV: [void, GLvdpauSurfaceNV surface] NV_vertex_array_range: glFlushVertexArrayRangeNV: [void] glVertexArrayRangeNV: [void, GLsizei length, const GLvoid *pointer] NV_vertex_attrib_integer_64bit: glGetVertexAttribLi64vNV: [void, GLuint index, GLenum pname, GLint64EXT *params] glGetVertexAttribLui64vNV: [void, GLuint index, GLenum pname, GLuint64EXT *params] glVertexAttribL1i64NV: [void, GLuint index, GLint64EXT x] glVertexAttribL1i64vNV: [void, GLuint index, const GLint64EXT *v] glVertexAttribL1ui64NV: [void, GLuint index, GLuint64EXT x] glVertexAttribL1ui64vNV: [void, GLuint index, const GLuint64EXT *v] glVertexAttribL2i64NV: [void, GLuint index, GLint64EXT x, GLint64EXT y] glVertexAttribL2i64vNV: [void, GLuint index, const GLint64EXT *v] glVertexAttribL2ui64NV: [void, GLuint index, GLuint64EXT x, GLuint64EXT y] glVertexAttribL2ui64vNV: [void, GLuint index, const GLuint64EXT *v] glVertexAttribL3i64NV: [void, GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z] glVertexAttribL3i64vNV: [void, GLuint index, const GLint64EXT *v] glVertexAttribL3ui64NV: [void, GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z] glVertexAttribL3ui64vNV: [void, GLuint index, const GLuint64EXT *v] glVertexAttribL4i64NV: [void, GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w] glVertexAttribL4i64vNV: [void, GLuint index, const GLint64EXT *v] glVertexAttribL4ui64NV: [void, GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w] glVertexAttribL4ui64vNV: [void, GLuint index, const GLuint64EXT *v] glVertexAttribLFormatNV: [void, GLuint index, GLint size, GLenum type, GLsizei stride] NV_vertex_buffer_unified_memory: glBufferAddressRangeNV: [void, GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length] glColorFormatNV: [void, GLint size, GLenum type, GLsizei stride] glEdgeFlagFormatNV: [void, GLsizei stride] glFogCoordFormatNV: [void, GLenum type, GLsizei stride] glGetIntegerui64i_vNV: [void, GLenum value, GLuint index, GLuint64EXT *result] glIndexFormatNV: [void, GLenum type, GLsizei stride] glNormalFormatNV: [void, GLenum type, GLsizei stride] glSecondaryColorFormatNV: [void, GLint size, GLenum type, GLsizei stride] glTexCoordFormatNV: [void, GLint size, GLenum type, GLsizei stride] glVertexAttribFormatNV: [void, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride] glVertexAttribIFormatNV: [void, GLuint index, GLint size, GLenum type, GLsizei stride] glVertexFormatNV: [void, GLint size, GLenum type, GLsizei stride] NV_vertex_program: glAreProgramsResidentNV: [GLboolean, GLsizei n, const GLuint *programs, GLboolean *residences] glBindProgramNV: [void, GLenum target, GLuint id] glDeleteProgramsNV: [void, GLsizei n, const GLuint *programs] glExecuteProgramNV: [void, GLenum target, GLuint id, const GLfloat *params] glGenProgramsNV: [void, GLsizei n, GLuint *programs] glGetProgramParameterdvNV: [void, GLenum target, GLuint index, GLenum pname, GLdouble *params] glGetProgramParameterfvNV: [void, GLenum target, GLuint index, GLenum pname, GLfloat *params] glGetProgramStringNV: [void, GLuint id, GLenum pname, GLubyte *program] glGetProgramivNV: [void, GLuint id, GLenum pname, GLint *params] glGetTrackMatrixivNV: [void, GLenum target, GLuint address, GLenum pname, GLint *params] glGetVertexAttribPointervNV: [void, GLuint index, GLenum pname, GLvoid *pointer] glGetVertexAttribdvNV: [void, GLuint index, GLenum pname, GLdouble *params] glGetVertexAttribfvNV: [void, GLuint index, GLenum pname, GLfloat *params] glGetVertexAttribivNV: [void, GLuint index, GLenum pname, GLint *params] glIsProgramNV: [GLboolean, GLuint id] glLoadProgramNV: [void, GLenum target, GLuint id, GLsizei len, const GLubyte *program] glProgramParameter4dNV: [void, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glProgramParameter4dvNV: [void, GLenum target, GLuint index, const GLdouble *v] glProgramParameter4fNV: [void, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glProgramParameter4fvNV: [void, GLenum target, GLuint index, const GLfloat *v] glProgramParameters4dvNV: [void, GLenum target, GLuint index, GLsizei count, const GLdouble *v] glProgramParameters4fvNV: [void, GLenum target, GLuint index, GLsizei count, const GLfloat *v] glRequestResidentProgramsNV: [void, GLsizei n, const GLuint *programs] glTrackMatrixNV: [void, GLenum target, GLuint address, GLenum matrix, GLenum transform] glVertexAttrib1dNV: [void, GLuint index, GLdouble x] glVertexAttrib1dvNV: [void, GLuint index, const GLdouble *v] glVertexAttrib1fNV: [void, GLuint index, GLfloat x] glVertexAttrib1fvNV: [void, GLuint index, const GLfloat *v] glVertexAttrib1sNV: [void, GLuint index, GLshort x] glVertexAttrib1svNV: [void, GLuint index, const GLshort *v] glVertexAttrib2dNV: [void, GLuint index, GLdouble x, GLdouble y] glVertexAttrib2dvNV: [void, GLuint index, const GLdouble *v] glVertexAttrib2fNV: [void, GLuint index, GLfloat x, GLfloat y] glVertexAttrib2fvNV: [void, GLuint index, const GLfloat *v] glVertexAttrib2sNV: [void, GLuint index, GLshort x, GLshort y] glVertexAttrib2svNV: [void, GLuint index, const GLshort *v] glVertexAttrib3dNV: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z] glVertexAttrib3dvNV: [void, GLuint index, const GLdouble *v] glVertexAttrib3fNV: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z] glVertexAttrib3fvNV: [void, GLuint index, const GLfloat *v] glVertexAttrib3sNV: [void, GLuint index, GLshort x, GLshort y, GLshort z] glVertexAttrib3svNV: [void, GLuint index, const GLshort *v] glVertexAttrib4dNV: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexAttrib4dvNV: [void, GLuint index, const GLdouble *v] glVertexAttrib4fNV: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertexAttrib4fvNV: [void, GLuint index, const GLfloat *v] glVertexAttrib4sNV: [void, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w] glVertexAttrib4svNV: [void, GLuint index, const GLshort *v] glVertexAttrib4ubNV: [void, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w] glVertexAttrib4ubvNV: [void, GLuint index, const GLubyte *v] glVertexAttribPointerNV: [void, GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer] glVertexAttribs1dvNV: [void, GLuint index, GLsizei count, const GLdouble *v] glVertexAttribs1fvNV: [void, GLuint index, GLsizei count, const GLfloat *v] glVertexAttribs1svNV: [void, GLuint index, GLsizei count, const GLshort *v] glVertexAttribs2dvNV: [void, GLuint index, GLsizei count, const GLdouble *v] glVertexAttribs2fvNV: [void, GLuint index, GLsizei count, const GLfloat *v] glVertexAttribs2svNV: [void, GLuint index, GLsizei count, const GLshort *v] glVertexAttribs3dvNV: [void, GLuint index, GLsizei count, const GLdouble *v] glVertexAttribs3fvNV: [void, GLuint index, GLsizei count, const GLfloat *v] glVertexAttribs3svNV: [void, GLuint index, GLsizei count, const GLshort *v] glVertexAttribs4dvNV: [void, GLuint index, GLsizei count, const GLdouble *v] glVertexAttribs4fvNV: [void, GLuint index, GLsizei count, const GLfloat *v] glVertexAttribs4svNV: [void, GLuint index, GLsizei count, const GLshort *v] glVertexAttribs4ubvNV: [void, GLuint index, GLsizei count, const GLubyte *v] NV_vertex_program4: glGetVertexAttribIivEXT: [void, GLuint index, GLenum pname, GLint *params] glGetVertexAttribIuivEXT: [void, GLuint index, GLenum pname, GLuint *params] glVertexAttribI1iEXT: [void, GLuint index, GLint x] glVertexAttribI1ivEXT: [void, GLuint index, const GLint *v] glVertexAttribI1uiEXT: [void, GLuint index, GLuint x] glVertexAttribI1uivEXT: [void, GLuint index, const GLuint *v] glVertexAttribI2iEXT: [void, GLuint index, GLint x, GLint y] glVertexAttribI2ivEXT: [void, GLuint index, const GLint *v] glVertexAttribI2uiEXT: [void, GLuint index, GLuint x, GLuint y] glVertexAttribI2uivEXT: [void, GLuint index, const GLuint *v] glVertexAttribI3iEXT: [void, GLuint index, GLint x, GLint y, GLint z] glVertexAttribI3ivEXT: [void, GLuint index, const GLint *v] glVertexAttribI3uiEXT: [void, GLuint index, GLuint x, GLuint y, GLuint z] glVertexAttribI3uivEXT: [void, GLuint index, const GLuint *v] glVertexAttribI4bvEXT: [void, GLuint index, const GLbyte *v] glVertexAttribI4iEXT: [void, GLuint index, GLint x, GLint y, GLint z, GLint w] glVertexAttribI4ivEXT: [void, GLuint index, const GLint *v] glVertexAttribI4svEXT: [void, GLuint index, const GLshort *v] glVertexAttribI4ubvEXT: [void, GLuint index, const GLubyte *v] glVertexAttribI4uiEXT: [void, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w] glVertexAttribI4uivEXT: [void, GLuint index, const GLuint *v] glVertexAttribI4usvEXT: [void, GLuint index, const GLushort *v] glVertexAttribIPointerEXT: [void, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] NV_video_capture: glBeginVideoCaptureNV: [void, GLuint video_capture_slot] glBindVideoCaptureStreamBufferNV: [void, GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset] glBindVideoCaptureStreamTextureNV: [void, GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture] glEndVideoCaptureNV: [void, GLuint video_capture_slot] glGetVideoCaptureStreamdvNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params] glGetVideoCaptureStreamfvNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params] glGetVideoCaptureStreamivNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params] glGetVideoCaptureivNV: [void, GLuint video_capture_slot, GLenum pname, GLint *params] glVideoCaptureNV: [GLenum, GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time] glVideoCaptureStreamParameterdvNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params] glVideoCaptureStreamParameterfvNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params] glVideoCaptureStreamParameterivNV: [void, GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params] OES_byte_coordinates: glMultiTexCoord1bOES: [void, GLenum texture, GLbyte s] glMultiTexCoord1bvOES: [void, GLenum texture, const GLbyte *coords] glMultiTexCoord2bOES: [void, GLenum texture, GLbyte s, GLbyte t] glMultiTexCoord2bvOES: [void, GLenum texture, const GLbyte *coords] glMultiTexCoord3bOES: [void, GLenum texture, GLbyte s, GLbyte t, GLbyte r] glMultiTexCoord3bvOES: [void, GLenum texture, const GLbyte *coords] glMultiTexCoord4bOES: [void, GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q] glMultiTexCoord4bvOES: [void, GLenum texture, const GLbyte *coords] glTexCoord1bOES: [void, GLbyte s] glTexCoord1bvOES: [void, const GLbyte *coords] glTexCoord2bOES: [void, GLbyte s, GLbyte t] glTexCoord2bvOES: [void, const GLbyte *coords] glTexCoord3bOES: [void, GLbyte s, GLbyte t, GLbyte r] glTexCoord3bvOES: [void, const GLbyte *coords] glTexCoord4bOES: [void, GLbyte s, GLbyte t, GLbyte r, GLbyte q] glTexCoord4bvOES: [void, const GLbyte *coords] glVertex2bOES: [void, GLbyte x] glVertex2bvOES: [void, const GLbyte *coords] glVertex3bOES: [void, GLbyte x, GLbyte y] glVertex3bvOES: [void, const GLbyte *coords] glVertex4bOES: [void, GLbyte x, GLbyte y, GLbyte z] glVertex4bvOES: [void, const GLbyte *coords] OES_fixed_point: glAccumxOES: [void, GLenum op, GLfixed value] glAlphaFuncxOES: [void, GLenum func, GLfixed ref] glBitmapxOES: [void, GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap] glBlendColorxOES: [void, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha] glClearAccumxOES: [void, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha] glClearColorxOES: [void, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha] glClearDepthxOES: [void, GLfixed depth] glClipPlanexOES: [void, GLenum plane, const GLfixed *equation] glColor3xOES: [void, GLfixed red, GLfixed green, GLfixed blue] glColor3xvOES: [void, const GLfixed *components] glColor4xOES: [void, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha] glColor4xvOES: [void, const GLfixed *components] glConvolutionParameterxOES: [void, GLenum target, GLenum pname, GLfixed param] glConvolutionParameterxvOES: [void, GLenum target, GLenum pname, const GLfixed *params] glDepthRangexOES: [void, GLfixed n, GLfixed f] glEvalCoord1xOES: [void, GLfixed u] glEvalCoord1xvOES: [void, const GLfixed *coords] glEvalCoord2xOES: [void, GLfixed u, GLfixed v] glEvalCoord2xvOES: [void, const GLfixed *coords] glFeedbackBufferxOES: [void, GLsizei n, GLenum type, const GLfixed *buffer] glFogxOES: [void, GLenum pname, GLfixed param] glFogxvOES: [void, GLenum pname, const GLfixed *param] glFrustumxOES: [void, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f] glGetClipPlanexOES: [void, GLenum plane, GLfixed *equation] glGetConvolutionParameterxvOES: [void, GLenum target, GLenum pname, GLfixed *params] glGetFixedvOES: [void, GLenum pname, GLfixed *params] glGetHistogramParameterxvOES: [void, GLenum target, GLenum pname, GLfixed *params] glGetLightxOES: [void, GLenum light, GLenum pname, GLfixed *params] glGetMapxvOES: [void, GLenum target, GLenum query, GLfixed *v] glGetMaterialxOES: [void, GLenum face, GLenum pname, GLfixed param] glGetPixelMapxv: [void, GLenum map, GLint size, GLfixed *values] glGetTexEnvxvOES: [void, GLenum target, GLenum pname, GLfixed *params] glGetTexGenxvOES: [void, GLenum coord, GLenum pname, GLfixed *params] glGetTexLevelParameterxvOES: [void, GLenum target, GLint level, GLenum pname, GLfixed *params] glGetTexParameterxvOES: [void, GLenum target, GLenum pname, GLfixed *params] glIndexxOES: [void, GLfixed component] glIndexxvOES: [void, const GLfixed *component] glLightModelxOES: [void, GLenum pname, GLfixed param] glLightModelxvOES: [void, GLenum pname, const GLfixed *param] glLightxOES: [void, GLenum light, GLenum pname, GLfixed param] glLightxvOES: [void, GLenum light, GLenum pname, const GLfixed *params] glLineWidthxOES: [void, GLfixed width] glLoadMatrixxOES: [void, const GLfixed *m] glLoadTransposeMatrixxOES: [void, const GLfixed *m] glMap1xOES: [void, GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points] glMap2xOES: [void, GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points] glMapGrid1xOES: [void, GLint n, GLfixed u1, GLfixed u2] glMapGrid2xOES: [void, GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2] glMaterialxOES: [void, GLenum face, GLenum pname, GLfixed param] glMaterialxvOES: [void, GLenum face, GLenum pname, const GLfixed *param] glMultMatrixxOES: [void, const GLfixed *m] glMultTransposeMatrixxOES: [void, const GLfixed *m] glMultiTexCoord1xOES: [void, GLenum texture, GLfixed s] glMultiTexCoord1xvOES: [void, GLenum texture, const GLfixed *coords] glMultiTexCoord2xOES: [void, GLenum texture, GLfixed s, GLfixed t] glMultiTexCoord2xvOES: [void, GLenum texture, const GLfixed *coords] glMultiTexCoord3xOES: [void, GLenum texture, GLfixed s, GLfixed t, GLfixed r] glMultiTexCoord3xvOES: [void, GLenum texture, const GLfixed *coords] glMultiTexCoord4xOES: [void, GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q] glMultiTexCoord4xvOES: [void, GLenum texture, const GLfixed *coords] glNormal3xOES: [void, GLfixed nx, GLfixed ny, GLfixed nz] glNormal3xvOES: [void, const GLfixed *coords] glOrthoxOES: [void, GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f] glPassThroughxOES: [void, GLfixed token] glPixelMapx: [void, GLenum map, GLint size, const GLfixed *values] glPixelStorex: [void, GLenum pname, GLfixed param] glPixelTransferxOES: [void, GLenum pname, GLfixed param] glPixelZoomxOES: [void, GLfixed xfactor, GLfixed yfactor] glPointParameterxvOES: [void, GLenum pname, const GLfixed *params] glPointSizexOES: [void, GLfixed size] glPolygonOffsetxOES: [void, GLfixed factor, GLfixed units] glPrioritizeTexturesxOES: [void, GLsizei n, const GLuint *textures, const GLfixed *priorities] glRasterPos2xOES: [void, GLfixed x, GLfixed y] glRasterPos2xvOES: [void, const GLfixed *coords] glRasterPos3xOES: [void, GLfixed x, GLfixed y, GLfixed z] glRasterPos3xvOES: [void, const GLfixed *coords] glRasterPos4xOES: [void, GLfixed x, GLfixed y, GLfixed z, GLfixed w] glRasterPos4xvOES: [void, const GLfixed *coords] glRectxOES: [void, GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2] glRectxvOES: [void, const GLfixed *v1, const GLfixed *v2] glRotatexOES: [void, GLfixed angle, GLfixed x, GLfixed y, GLfixed z] glSampleCoverageOES: [void, GLfixed value, GLboolean invert] glScalexOES: [void, GLfixed x, GLfixed y, GLfixed z] glTexCoord1xOES: [void, GLfixed s] glTexCoord1xvOES: [void, const GLfixed *coords] glTexCoord2xOES: [void, GLfixed s, GLfixed t] glTexCoord2xvOES: [void, const GLfixed *coords] glTexCoord3xOES: [void, GLfixed s, GLfixed t, GLfixed r] glTexCoord3xvOES: [void, const GLfixed *coords] glTexCoord4xOES: [void, GLfixed s, GLfixed t, GLfixed r, GLfixed q] glTexCoord4xvOES: [void, const GLfixed *coords] glTexEnvxOES: [void, GLenum target, GLenum pname, GLfixed param] glTexEnvxvOES: [void, GLenum target, GLenum pname, const GLfixed *params] glTexGenxOES: [void, GLenum coord, GLenum pname, GLfixed param] glTexGenxvOES: [void, GLenum coord, GLenum pname, const GLfixed *params] glTexParameterxOES: [void, GLenum target, GLenum pname, GLfixed param] glTexParameterxvOES: [void, GLenum target, GLenum pname, const GLfixed *params] glTranslatexOES: [void, GLfixed x, GLfixed y, GLfixed z] glVertex2xOES: [void, GLfixed x] glVertex2xvOES: [void, const GLfixed *coords] glVertex3xOES: [void, GLfixed x, GLfixed y] glVertex3xvOES: [void, const GLfixed *coords] glVertex4xOES: [void, GLfixed x, GLfixed y, GLfixed z] glVertex4xvOES: [void, const GLfixed *coords] OES_query_matrix: glQueryMatrixxOES: [GLbitfield, GLfixed *mantissa, GLint *exponent] OES_single_precision: glClearDepthfOES: [void, GLclampf depth] glClipPlanefOES: [void, GLenum plane, const GLfloat *equation] glDepthRangefOES: [void, GLclampf n, GLclampf f] glFrustumfOES: [void, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f] glGetClipPlanefOES: [void, GLenum plane, GLfloat *equation] glOrthofOES: [void, GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f] PGI_misc_hints: glHintPGI: [void, GLenum target, GLint mode] SGIS_detail_texture: glDetailTexFuncSGIS: [void, GLenum target, GLsizei n, const GLfloat *points] glGetDetailTexFuncSGIS: [void, GLenum target, GLfloat *points] SGIS_fog_function: glFogFuncSGIS: [void, GLsizei n, const GLfloat *points] glGetFogFuncSGIS: [void, GLfloat *points] SGIS_multisample: glSampleMaskSGIS: [void, GLclampf value, GLboolean invert] glSamplePatternSGIS: [void, GLenum pattern] SGIS_pixel_texture: glGetPixelTexGenParameterfvSGIS: [void, GLenum pname, GLfloat *params] glGetPixelTexGenParameterivSGIS: [void, GLenum pname, GLint *params] glPixelTexGenParameterfSGIS: [void, GLenum pname, GLfloat param] glPixelTexGenParameterfvSGIS: [void, GLenum pname, const GLfloat *params] glPixelTexGenParameteriSGIS: [void, GLenum pname, GLint param] glPixelTexGenParameterivSGIS: [void, GLenum pname, const GLint *params] SGIS_point_parameters: glPointParameterfSGIS: [void, GLenum pname, GLfloat param] glPointParameterfvSGIS: [void, GLenum pname, const GLfloat *params] SGIS_sharpen_texture: glGetSharpenTexFuncSGIS: [void, GLenum target, GLfloat *points] glSharpenTexFuncSGIS: [void, GLenum target, GLsizei n, const GLfloat *points] SGIS_texture4D: glTexImage4DSGIS: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTexSubImage4DSGIS: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels] SGIS_texture_color_mask: glTextureColorMaskSGIS: [void, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha] SGIS_texture_filter4: glGetTexFilterFuncSGIS: [void, GLenum target, GLenum filter, GLfloat *weights] glTexFilterFuncSGIS: [void, GLenum target, GLenum filter, GLsizei n, const GLfloat *weights] SGIX_async: glAsyncMarkerSGIX: [void, GLuint marker] glDeleteAsyncMarkersSGIX: [void, GLuint marker, GLsizei range] glFinishAsyncSGIX: [GLint, GLuint *markerp] glGenAsyncMarkersSGIX: [GLuint, GLsizei range] glIsAsyncMarkerSGIX: [GLboolean, GLuint marker] glPollAsyncSGIX: [GLint, GLuint *markerp] SGIX_flush_raster: glFlushRasterSGIX: [void] SGIX_fragment_lighting: glFragmentColorMaterialSGIX: [void, GLenum face, GLenum mode] glFragmentLightModelfSGIX: [void, GLenum pname, GLfloat param] glFragmentLightModelfvSGIX: [void, GLenum pname, const GLfloat *params] glFragmentLightModeliSGIX: [void, GLenum pname, GLint param] glFragmentLightModelivSGIX: [void, GLenum pname, const GLint *params] glFragmentLightfSGIX: [void, GLenum light, GLenum pname, GLfloat param] glFragmentLightfvSGIX: [void, GLenum light, GLenum pname, const GLfloat *params] glFragmentLightiSGIX: [void, GLenum light, GLenum pname, GLint param] glFragmentLightivSGIX: [void, GLenum light, GLenum pname, const GLint *params] glFragmentMaterialfSGIX: [void, GLenum face, GLenum pname, GLfloat param] glFragmentMaterialfvSGIX: [void, GLenum face, GLenum pname, const GLfloat *params] glFragmentMaterialiSGIX: [void, GLenum face, GLenum pname, GLint param] glFragmentMaterialivSGIX: [void, GLenum face, GLenum pname, const GLint *params] glGetFragmentLightfvSGIX: [void, GLenum light, GLenum pname, GLfloat *params] glGetFragmentLightivSGIX: [void, GLenum light, GLenum pname, GLint *params] glGetFragmentMaterialfvSGIX: [void, GLenum face, GLenum pname, GLfloat *params] glGetFragmentMaterialivSGIX: [void, GLenum face, GLenum pname, GLint *params] glLightEnviSGIX: [void, GLenum pname, GLint param] SGIX_framezoom: glFrameZoomSGIX: [void, GLint factor] SGIX_igloo_interface: glIglooInterfaceSGIX: [void, GLenum pname, const GLvoid *params] SGIX_instruments: glGetInstrumentsSGIX: [GLint] glInstrumentsBufferSGIX: [void, GLsizei size, GLint *buffer] glPollInstrumentsSGIX: [GLint, GLint *marker_p] glReadInstrumentsSGIX: [void, GLint marker] glStartInstrumentsSGIX: [void] glStopInstrumentsSGIX: [void, GLint marker] SGIX_list_priority: glGetListParameterfvSGIX: [void, GLuint list, GLenum pname, GLfloat *params] glGetListParameterivSGIX: [void, GLuint list, GLenum pname, GLint *params] glListParameterfSGIX: [void, GLuint list, GLenum pname, GLfloat param] glListParameterfvSGIX: [void, GLuint list, GLenum pname, const GLfloat *params] glListParameteriSGIX: [void, GLuint list, GLenum pname, GLint param] glListParameterivSGIX: [void, GLuint list, GLenum pname, const GLint *params] SGIX_pixel_texture: glPixelTexGenSGIX: [void, GLenum mode] SGIX_polynomial_ffd: glDeformSGIX: [void, GLbitfield mask] glDeformationMap3dSGIX: [void, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points] glDeformationMap3fSGIX: [void, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points] glLoadIdentityDeformationMapSGIX: [void, GLbitfield mask] SGIX_reference_plane: glReferencePlaneSGIX: [void, const GLdouble *equation] SGIX_sprite: glSpriteParameterfSGIX: [void, GLenum pname, GLfloat param] glSpriteParameterfvSGIX: [void, GLenum pname, const GLfloat *params] glSpriteParameteriSGIX: [void, GLenum pname, GLint param] glSpriteParameterivSGIX: [void, GLenum pname, const GLint *params] SGIX_tag_sample_buffer: glTagSampleBufferSGIX: [void] SGI_color_table: glColorTableParameterfvSGI: [void, GLenum target, GLenum pname, const GLfloat *params] glColorTableParameterivSGI: [void, GLenum target, GLenum pname, const GLint *params] glColorTableSGI: [void, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table] glCopyColorTableSGI: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width] glGetColorTableParameterfvSGI: [void, GLenum target, GLenum pname, GLfloat *params] glGetColorTableParameterivSGI: [void, GLenum target, GLenum pname, GLint *params] glGetColorTableSGI: [void, GLenum target, GLenum format, GLenum type, GLvoid *table] SUNX_constant_data: glFinishTextureSUNX: [void] SUN_global_alpha: glGlobalAlphaFactorbSUN: [void, GLbyte factor] glGlobalAlphaFactordSUN: [void, GLdouble factor] glGlobalAlphaFactorfSUN: [void, GLfloat factor] glGlobalAlphaFactoriSUN: [void, GLint factor] glGlobalAlphaFactorsSUN: [void, GLshort factor] glGlobalAlphaFactorubSUN: [void, GLubyte factor] glGlobalAlphaFactoruiSUN: [void, GLuint factor] glGlobalAlphaFactorusSUN: [void, GLushort factor] SUN_mesh_array: glDrawMeshArraysSUN: [void, GLenum mode, GLint first, GLsizei count, GLsizei width] SUN_triangle_list: glReplacementCodePointerSUN: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glReplacementCodeubSUN: [void, GLubyte code] glReplacementCodeubvSUN: [void, const GLubyte *code] glReplacementCodeuiSUN: [void, GLuint code] glReplacementCodeuivSUN: [void, const GLuint *code] glReplacementCodeusSUN: [void, GLushort code] glReplacementCodeusvSUN: [void, const GLushort *code] SUN_vertex: glColor3fVertex3fSUN: [void, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z] glColor3fVertex3fvSUN: [void, const GLfloat *c, const GLfloat *v] glColor4fNormal3fVertex3fSUN: [void, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glColor4fNormal3fVertex3fvSUN: [void, const GLfloat *c, const GLfloat *n, const GLfloat *v] glColor4ubVertex2fSUN: [void, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y] glColor4ubVertex2fvSUN: [void, const GLubyte *c, const GLfloat *v] glColor4ubVertex3fSUN: [void, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z] glColor4ubVertex3fvSUN: [void, const GLubyte *c, const GLfloat *v] glNormal3fVertex3fSUN: [void, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glNormal3fVertex3fvSUN: [void, const GLfloat *n, const GLfloat *v] glReplacementCodeuiColor3fVertex3fSUN: [void, GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiColor3fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *c, const GLfloat *v] glReplacementCodeuiColor4fNormal3fVertex3fSUN: [void, GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiColor4fNormal3fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v] glReplacementCodeuiColor4ubVertex3fSUN: [void, GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiColor4ubVertex3fvSUN: [void, const GLuint *rc, const GLubyte *c, const GLfloat *v] glReplacementCodeuiNormal3fVertex3fSUN: [void, GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiNormal3fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *n, const GLfloat *v] glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: [void, GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v] glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: [void, GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v] glReplacementCodeuiTexCoord2fVertex3fSUN: [void, GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiTexCoord2fVertex3fvSUN: [void, const GLuint *rc, const GLfloat *tc, const GLfloat *v] glReplacementCodeuiVertex3fSUN: [void, GLuint rc, GLfloat x, GLfloat y, GLfloat z] glReplacementCodeuiVertex3fvSUN: [void, const GLuint *rc, const GLfloat *v] glTexCoord2fColor3fVertex3fSUN: [void, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z] glTexCoord2fColor3fVertex3fvSUN: [void, const GLfloat *tc, const GLfloat *c, const GLfloat *v] glTexCoord2fColor4fNormal3fVertex3fSUN: [void, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glTexCoord2fColor4fNormal3fVertex3fvSUN: [void, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v] glTexCoord2fColor4ubVertex3fSUN: [void, GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z] glTexCoord2fColor4ubVertex3fvSUN: [void, const GLfloat *tc, const GLubyte *c, const GLfloat *v] glTexCoord2fNormal3fVertex3fSUN: [void, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z] glTexCoord2fNormal3fVertex3fvSUN: [void, const GLfloat *tc, const GLfloat *n, const GLfloat *v] glTexCoord2fVertex3fSUN: [void, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z] glTexCoord2fVertex3fvSUN: [void, const GLfloat *tc, const GLfloat *v] glTexCoord4fColor4fNormal3fVertex4fSUN: [void, GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glTexCoord4fColor4fNormal3fVertex4fvSUN: [void, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v] glTexCoord4fVertex4fSUN: [void, GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glTexCoord4fVertex4fvSUN: [void, const GLfloat *tc, const GLfloat *v] VERSION_1_0: glAccum: [void, GLenum op, GLfloat value] glAlphaFunc: [void, GLenum func, GLfloat ref] glBegin: [void, GLenum mode] glBitmap: [void, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap] glBlendFunc: [void, GLenum sfactor, GLenum dfactor] glCallList: [void, GLuint list] glCallLists: [void, GLsizei n, GLenum type, const GLvoid *lists] glClear: [void, GLbitfield mask] glClearAccum: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] glClearColor: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] glClearDepth: [void, GLdouble depth] glClearIndex: [void, GLfloat c] glClearStencil: [void, GLint s] glClipPlane: [void, GLenum plane, const GLdouble *equation] glColor3b: [void, GLbyte red, GLbyte green, GLbyte blue] glColor3bv: [void, const GLbyte *v] glColor3d: [void, GLdouble red, GLdouble green, GLdouble blue] glColor3dv: [void, const GLdouble *v] glColor3f: [void, GLfloat red, GLfloat green, GLfloat blue] glColor3fv: [void, const GLfloat *v] glColor3i: [void, GLint red, GLint green, GLint blue] glColor3iv: [void, const GLint *v] glColor3s: [void, GLshort red, GLshort green, GLshort blue] glColor3sv: [void, const GLshort *v] glColor3ub: [void, GLubyte red, GLubyte green, GLubyte blue] glColor3ubv: [void, const GLubyte *v] glColor3ui: [void, GLuint red, GLuint green, GLuint blue] glColor3uiv: [void, const GLuint *v] glColor3us: [void, GLushort red, GLushort green, GLushort blue] glColor3usv: [void, const GLushort *v] glColor4b: [void, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha] glColor4bv: [void, const GLbyte *v] glColor4d: [void, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha] glColor4dv: [void, const GLdouble *v] glColor4f: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] glColor4fv: [void, const GLfloat *v] glColor4i: [void, GLint red, GLint green, GLint blue, GLint alpha] glColor4iv: [void, const GLint *v] glColor4s: [void, GLshort red, GLshort green, GLshort blue, GLshort alpha] glColor4sv: [void, const GLshort *v] glColor4ub: [void, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha] glColor4ubv: [void, const GLubyte *v] glColor4ui: [void, GLuint red, GLuint green, GLuint blue, GLuint alpha] glColor4uiv: [void, const GLuint *v] glColor4us: [void, GLushort red, GLushort green, GLushort blue, GLushort alpha] glColor4usv: [void, const GLushort *v] glColorMask: [void, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha] glColorMaterial: [void, GLenum face, GLenum mode] glCopyPixels: [void, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type] glCullFace: [void, GLenum mode] glDeleteLists: [void, GLuint list, GLsizei range] glDepthFunc: [void, GLenum func] glDepthMask: [void, GLboolean flag] glDepthRange: [void, GLdouble near, GLdouble far] glDisable: [void, GLenum cap] glDrawBuffer: [void, GLenum mode] glDrawPixels: [void, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels] glEdgeFlag: [void, GLboolean flag] glEdgeFlagv: [void, const GLboolean *flag] glEnable: [void, GLenum cap] glEnd: [void] glEndList: [void] glEvalCoord1d: [void, GLdouble u] glEvalCoord1dv: [void, const GLdouble *u] glEvalCoord1f: [void, GLfloat u] glEvalCoord1fv: [void, const GLfloat *u] glEvalCoord2d: [void, GLdouble u, GLdouble v] glEvalCoord2dv: [void, const GLdouble *u] glEvalCoord2f: [void, GLfloat u, GLfloat v] glEvalCoord2fv: [void, const GLfloat *u] glEvalMesh1: [void, GLenum mode, GLint i1, GLint i2] glEvalMesh2: [void, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2] glEvalPoint1: [void, GLint i] glEvalPoint2: [void, GLint i, GLint j] glFeedbackBuffer: [void, GLsizei size, GLenum type, GLfloat *buffer] glFinish: [void] glFlush: [void] glFogf: [void, GLenum pname, GLfloat param] glFogfv: [void, GLenum pname, const GLfloat *params] glFogi: [void, GLenum pname, GLint param] glFogiv: [void, GLenum pname, const GLint *params] glFrontFace: [void, GLenum mode] glFrustum: [void, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar] glGenLists: [GLuint, GLsizei range] glGetBooleanv: [void, GLenum pname, GLboolean *params] glGetClipPlane: [void, GLenum plane, GLdouble *equation] glGetDoublev: [void, GLenum pname, GLdouble *params] glGetError: [GLenum] glGetFloatv: [void, GLenum pname, GLfloat *params] glGetIntegerv: [void, GLenum pname, GLint *params] glGetLightfv: [void, GLenum light, GLenum pname, GLfloat *params] glGetLightiv: [void, GLenum light, GLenum pname, GLint *params] glGetMapdv: [void, GLenum target, GLenum query, GLdouble *v] glGetMapfv: [void, GLenum target, GLenum query, GLfloat *v] glGetMapiv: [void, GLenum target, GLenum query, GLint *v] glGetMaterialfv: [void, GLenum face, GLenum pname, GLfloat *params] glGetMaterialiv: [void, GLenum face, GLenum pname, GLint *params] glGetPixelMapfv: [void, GLenum map, GLfloat *values] glGetPixelMapuiv: [void, GLenum map, GLuint *values] glGetPixelMapusv: [void, GLenum map, GLushort *values] glGetPolygonStipple: [void, GLubyte *mask] glGetString: [const GLubyte *, GLenum name] glGetTexEnvfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetTexEnviv: [void, GLenum target, GLenum pname, GLint *params] glGetTexGendv: [void, GLenum coord, GLenum pname, GLdouble *params] glGetTexGenfv: [void, GLenum coord, GLenum pname, GLfloat *params] glGetTexGeniv: [void, GLenum coord, GLenum pname, GLint *params] glGetTexImage: [void, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels] glGetTexLevelParameterfv: [void, GLenum target, GLint level, GLenum pname, GLfloat *params] glGetTexLevelParameteriv: [void, GLenum target, GLint level, GLenum pname, GLint *params] glGetTexParameterfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetTexParameteriv: [void, GLenum target, GLenum pname, GLint *params] glHint: [void, GLenum target, GLenum mode] glIndexMask: [void, GLuint mask] glIndexd: [void, GLdouble c] glIndexdv: [void, const GLdouble *c] glIndexf: [void, GLfloat c] glIndexfv: [void, const GLfloat *c] glIndexi: [void, GLint c] glIndexiv: [void, const GLint *c] glIndexs: [void, GLshort c] glIndexsv: [void, const GLshort *c] glInitNames: [void] glIsEnabled: [GLboolean, GLenum cap] glIsList: [GLboolean, GLuint list] glLightModelf: [void, GLenum pname, GLfloat param] glLightModelfv: [void, GLenum pname, const GLfloat *params] glLightModeli: [void, GLenum pname, GLint param] glLightModeliv: [void, GLenum pname, const GLint *params] glLightf: [void, GLenum light, GLenum pname, GLfloat param] glLightfv: [void, GLenum light, GLenum pname, const GLfloat *params] glLighti: [void, GLenum light, GLenum pname, GLint param] glLightiv: [void, GLenum light, GLenum pname, const GLint *params] glLineStipple: [void, GLint factor, GLushort pattern] glLineWidth: [void, GLfloat width] glListBase: [void, GLuint base] glLoadIdentity: [void] glLoadMatrixd: [void, const GLdouble *m] glLoadMatrixf: [void, const GLfloat *m] glLoadName: [void, GLuint name] glLogicOp: [void, GLenum opcode] glMap1d: [void, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points] glMap1f: [void, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points] glMap2d: [void, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points] glMap2f: [void, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points] glMapGrid1d: [void, GLint un, GLdouble u1, GLdouble u2] glMapGrid1f: [void, GLint un, GLfloat u1, GLfloat u2] glMapGrid2d: [void, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2] glMapGrid2f: [void, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2] glMaterialf: [void, GLenum face, GLenum pname, GLfloat param] glMaterialfv: [void, GLenum face, GLenum pname, const GLfloat *params] glMateriali: [void, GLenum face, GLenum pname, GLint param] glMaterialiv: [void, GLenum face, GLenum pname, const GLint *params] glMatrixMode: [void, GLenum mode] glMultMatrixd: [void, const GLdouble *m] glMultMatrixf: [void, const GLfloat *m] glNewList: [void, GLuint list, GLenum mode] glNormal3b: [void, GLbyte nx, GLbyte ny, GLbyte nz] glNormal3bv: [void, const GLbyte *v] glNormal3d: [void, GLdouble nx, GLdouble ny, GLdouble nz] glNormal3dv: [void, const GLdouble *v] glNormal3f: [void, GLfloat nx, GLfloat ny, GLfloat nz] glNormal3fv: [void, const GLfloat *v] glNormal3i: [void, GLint nx, GLint ny, GLint nz] glNormal3iv: [void, const GLint *v] glNormal3s: [void, GLshort nx, GLshort ny, GLshort nz] glNormal3sv: [void, const GLshort *v] glOrtho: [void, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar] glPassThrough: [void, GLfloat token] glPixelMapfv: [void, GLenum map, GLsizei mapsize, const GLfloat *values] glPixelMapuiv: [void, GLenum map, GLsizei mapsize, const GLuint *values] glPixelMapusv: [void, GLenum map, GLsizei mapsize, const GLushort *values] glPixelStoref: [void, GLenum pname, GLfloat param] glPixelStorei: [void, GLenum pname, GLint param] glPixelTransferf: [void, GLenum pname, GLfloat param] glPixelTransferi: [void, GLenum pname, GLint param] glPixelZoom: [void, GLfloat xfactor, GLfloat yfactor] glPointSize: [void, GLfloat size] glPolygonMode: [void, GLenum face, GLenum mode] glPolygonStipple: [void, const GLubyte *mask] glPopAttrib: [void] glPopMatrix: [void] glPopName: [void] glPushAttrib: [void, GLbitfield mask] glPushMatrix: [void] glPushName: [void, GLuint name] glRasterPos2d: [void, GLdouble x, GLdouble y] glRasterPos2dv: [void, const GLdouble *v] glRasterPos2f: [void, GLfloat x, GLfloat y] glRasterPos2fv: [void, const GLfloat *v] glRasterPos2i: [void, GLint x, GLint y] glRasterPos2iv: [void, const GLint *v] glRasterPos2s: [void, GLshort x, GLshort y] glRasterPos2sv: [void, const GLshort *v] glRasterPos3d: [void, GLdouble x, GLdouble y, GLdouble z] glRasterPos3dv: [void, const GLdouble *v] glRasterPos3f: [void, GLfloat x, GLfloat y, GLfloat z] glRasterPos3fv: [void, const GLfloat *v] glRasterPos3i: [void, GLint x, GLint y, GLint z] glRasterPos3iv: [void, const GLint *v] glRasterPos3s: [void, GLshort x, GLshort y, GLshort z] glRasterPos3sv: [void, const GLshort *v] glRasterPos4d: [void, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glRasterPos4dv: [void, const GLdouble *v] glRasterPos4f: [void, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glRasterPos4fv: [void, const GLfloat *v] glRasterPos4i: [void, GLint x, GLint y, GLint z, GLint w] glRasterPos4iv: [void, const GLint *v] glRasterPos4s: [void, GLshort x, GLshort y, GLshort z, GLshort w] glRasterPos4sv: [void, const GLshort *v] glReadBuffer: [void, GLenum mode] glReadPixels: [void, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels] glRectd: [void, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2] glRectdv: [void, const GLdouble *v1, const GLdouble *v2] glRectf: [void, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2] glRectfv: [void, const GLfloat *v1, const GLfloat *v2] glRecti: [void, GLint x1, GLint y1, GLint x2, GLint y2] glRectiv: [void, const GLint *v1, const GLint *v2] glRects: [void, GLshort x1, GLshort y1, GLshort x2, GLshort y2] glRectsv: [void, const GLshort *v1, const GLshort *v2] glRenderMode: [GLint, GLenum mode] glRotated: [void, GLdouble angle, GLdouble x, GLdouble y, GLdouble z] glRotatef: [void, GLfloat angle, GLfloat x, GLfloat y, GLfloat z] glScaled: [void, GLdouble x, GLdouble y, GLdouble z] glScalef: [void, GLfloat x, GLfloat y, GLfloat z] glScissor: [void, GLint x, GLint y, GLsizei width, GLsizei height] glSelectBuffer: [void, GLsizei size, GLuint *buffer] glShadeModel: [void, GLenum mode] glStencilFunc: [void, GLenum func, GLint ref, GLuint mask] glStencilMask: [void, GLuint mask] glStencilOp: [void, GLenum fail, GLenum zfail, GLenum zpass] glTexCoord1d: [void, GLdouble s] glTexCoord1dv: [void, const GLdouble *v] glTexCoord1f: [void, GLfloat s] glTexCoord1fv: [void, const GLfloat *v] glTexCoord1i: [void, GLint s] glTexCoord1iv: [void, const GLint *v] glTexCoord1s: [void, GLshort s] glTexCoord1sv: [void, const GLshort *v] glTexCoord2d: [void, GLdouble s, GLdouble t] glTexCoord2dv: [void, const GLdouble *v] glTexCoord2f: [void, GLfloat s, GLfloat t] glTexCoord2fv: [void, const GLfloat *v] glTexCoord2i: [void, GLint s, GLint t] glTexCoord2iv: [void, const GLint *v] glTexCoord2s: [void, GLshort s, GLshort t] glTexCoord2sv: [void, const GLshort *v] glTexCoord3d: [void, GLdouble s, GLdouble t, GLdouble r] glTexCoord3dv: [void, const GLdouble *v] glTexCoord3f: [void, GLfloat s, GLfloat t, GLfloat r] glTexCoord3fv: [void, const GLfloat *v] glTexCoord3i: [void, GLint s, GLint t, GLint r] glTexCoord3iv: [void, const GLint *v] glTexCoord3s: [void, GLshort s, GLshort t, GLshort r] glTexCoord3sv: [void, const GLshort *v] glTexCoord4d: [void, GLdouble s, GLdouble t, GLdouble r, GLdouble q] glTexCoord4dv: [void, const GLdouble *v] glTexCoord4f: [void, GLfloat s, GLfloat t, GLfloat r, GLfloat q] glTexCoord4fv: [void, const GLfloat *v] glTexCoord4i: [void, GLint s, GLint t, GLint r, GLint q] glTexCoord4iv: [void, const GLint *v] glTexCoord4s: [void, GLshort s, GLshort t, GLshort r, GLshort q] glTexCoord4sv: [void, const GLshort *v] glTexEnvf: [void, GLenum target, GLenum pname, GLfloat param] glTexEnvfv: [void, GLenum target, GLenum pname, const GLfloat *params] glTexEnvi: [void, GLenum target, GLenum pname, GLint param] glTexEnviv: [void, GLenum target, GLenum pname, const GLint *params] glTexGend: [void, GLenum coord, GLenum pname, GLdouble param] glTexGendv: [void, GLenum coord, GLenum pname, const GLdouble *params] glTexGenf: [void, GLenum coord, GLenum pname, GLfloat param] glTexGenfv: [void, GLenum coord, GLenum pname, const GLfloat *params] glTexGeni: [void, GLenum coord, GLenum pname, GLint param] glTexGeniv: [void, GLenum coord, GLenum pname, const GLint *params] glTexImage1D: [void, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTexImage2D: [void, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTexParameterf: [void, GLenum target, GLenum pname, GLfloat param] glTexParameterfv: [void, GLenum target, GLenum pname, const GLfloat *params] glTexParameteri: [void, GLenum target, GLenum pname, GLint param] glTexParameteriv: [void, GLenum target, GLenum pname, const GLint *params] glTranslated: [void, GLdouble x, GLdouble y, GLdouble z] glTranslatef: [void, GLfloat x, GLfloat y, GLfloat z] glVertex2d: [void, GLdouble x, GLdouble y] glVertex2dv: [void, const GLdouble *v] glVertex2f: [void, GLfloat x, GLfloat y] glVertex2fv: [void, const GLfloat *v] glVertex2i: [void, GLint x, GLint y] glVertex2iv: [void, const GLint *v] glVertex2s: [void, GLshort x, GLshort y] glVertex2sv: [void, const GLshort *v] glVertex3d: [void, GLdouble x, GLdouble y, GLdouble z] glVertex3dv: [void, const GLdouble *v] glVertex3f: [void, GLfloat x, GLfloat y, GLfloat z] glVertex3fv: [void, const GLfloat *v] glVertex3i: [void, GLint x, GLint y, GLint z] glVertex3iv: [void, const GLint *v] glVertex3s: [void, GLshort x, GLshort y, GLshort z] glVertex3sv: [void, const GLshort *v] glVertex4d: [void, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertex4dv: [void, const GLdouble *v] glVertex4f: [void, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertex4fv: [void, const GLfloat *v] glVertex4i: [void, GLint x, GLint y, GLint z, GLint w] glVertex4iv: [void, const GLint *v] glVertex4s: [void, GLshort x, GLshort y, GLshort z, GLshort w] glVertex4sv: [void, const GLshort *v] glViewport: [void, GLint x, GLint y, GLsizei width, GLsizei height] VERSION_1_1: glAreTexturesResident: [GLboolean, GLsizei n, const GLuint *textures, GLboolean *residences] glArrayElement: [void, GLint i] glBindTexture: [void, GLenum target, GLuint texture] glColorPointer: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glCopyTexImage1D: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border] glCopyTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border] glCopyTexSubImage1D: [void, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width] glCopyTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height] glDeleteTextures: [void, GLsizei n, const GLuint *textures] glDisableClientState: [void, GLenum array] glDrawArrays: [void, GLenum mode, GLint first, GLsizei count] glDrawElements: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices] glEdgeFlagPointer: [void, GLsizei stride, const GLvoid *pointer] glEnableClientState: [void, GLenum array] glGenTextures: [void, GLsizei n, GLuint *textures] glGetPointerv: [void, GLenum pname, GLvoid **params] glIndexPointer: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glIndexub: [void, GLubyte c] glIndexubv: [void, const GLubyte *c] glInterleavedArrays: [void, GLenum format, GLsizei stride, const GLvoid *pointer] glIsTexture: [GLboolean, GLuint texture] glNormalPointer: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glPolygonOffset: [void, GLfloat factor, GLfloat units] glPopClientAttrib: [void] glPrioritizeTextures: [void, GLsizei n, const GLuint *textures, const GLfloat *priorities] glPushClientAttrib: [void, GLbitfield mask] glTexCoordPointer: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glTexSubImage1D: [void, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels] glTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels] glVertexPointer: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] VERSION_1_2: glBlendColor: [void, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha] glBlendEquation: [void, GLenum mode] glColorSubTable: [void, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data] glColorTable: [void, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table] glColorTableParameterfv: [void, GLenum target, GLenum pname, const GLfloat *params] glColorTableParameteriv: [void, GLenum target, GLenum pname, const GLint *params] glConvolutionFilter1D: [void, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image] glConvolutionFilter2D: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image] glConvolutionParameterf: [void, GLenum target, GLenum pname, GLfloat params] glConvolutionParameterfv: [void, GLenum target, GLenum pname, const GLfloat *params] glConvolutionParameteri: [void, GLenum target, GLenum pname, GLint params] glConvolutionParameteriv: [void, GLenum target, GLenum pname, const GLint *params] glCopyColorSubTable: [void, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width] glCopyColorTable: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width] glCopyConvolutionFilter1D: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width] glCopyConvolutionFilter2D: [void, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height] glCopyTexSubImage3D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height] glDrawRangeElements: [void, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices] glGetColorTable: [void, GLenum target, GLenum format, GLenum type, GLvoid *table] glGetColorTableParameterfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetColorTableParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetConvolutionFilter: [void, GLenum target, GLenum format, GLenum type, GLvoid *image] glGetConvolutionParameterfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetConvolutionParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetHistogram: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values] glGetHistogramParameterfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetHistogramParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetMinmax: [void, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values] glGetMinmaxParameterfv: [void, GLenum target, GLenum pname, GLfloat *params] glGetMinmaxParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetSeparableFilter: [void, GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span] glHistogram: [void, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink] glMinmax: [void, GLenum target, GLenum internalformat, GLboolean sink] glResetHistogram: [void, GLenum target] glResetMinmax: [void, GLenum target] glSeparableFilter2D: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column] glTexImage3D: [void, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels] glTexSubImage3D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels] VERSION_1_3: glActiveTexture: [void, GLenum texture] glClientActiveTexture: [void, GLenum texture] glCompressedTexImage1D: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexImage2D: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexImage3D: [void, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage1D: [void, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage2D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data] glCompressedTexSubImage3D: [void, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data] glGetCompressedTexImage: [void, GLenum target, GLint level, GLvoid *img] glLoadTransposeMatrixd: [void, const GLdouble *m] glLoadTransposeMatrixf: [void, const GLfloat *m] glMultTransposeMatrixd: [void, const GLdouble *m] glMultTransposeMatrixf: [void, const GLfloat *m] glMultiTexCoord1d: [void, GLenum target, GLdouble s] glMultiTexCoord1dv: [void, GLenum target, const GLdouble *v] glMultiTexCoord1f: [void, GLenum target, GLfloat s] glMultiTexCoord1fv: [void, GLenum target, const GLfloat *v] glMultiTexCoord1i: [void, GLenum target, GLint s] glMultiTexCoord1iv: [void, GLenum target, const GLint *v] glMultiTexCoord1s: [void, GLenum target, GLshort s] glMultiTexCoord1sv: [void, GLenum target, const GLshort *v] glMultiTexCoord2d: [void, GLenum target, GLdouble s, GLdouble t] glMultiTexCoord2dv: [void, GLenum target, const GLdouble *v] glMultiTexCoord2f: [void, GLenum target, GLfloat s, GLfloat t] glMultiTexCoord2fv: [void, GLenum target, const GLfloat *v] glMultiTexCoord2i: [void, GLenum target, GLint s, GLint t] glMultiTexCoord2iv: [void, GLenum target, const GLint *v] glMultiTexCoord2s: [void, GLenum target, GLshort s, GLshort t] glMultiTexCoord2sv: [void, GLenum target, const GLshort *v] glMultiTexCoord3d: [void, GLenum target, GLdouble s, GLdouble t, GLdouble r] glMultiTexCoord3dv: [void, GLenum target, const GLdouble *v] glMultiTexCoord3f: [void, GLenum target, GLfloat s, GLfloat t, GLfloat r] glMultiTexCoord3fv: [void, GLenum target, const GLfloat *v] glMultiTexCoord3i: [void, GLenum target, GLint s, GLint t, GLint r] glMultiTexCoord3iv: [void, GLenum target, const GLint *v] glMultiTexCoord3s: [void, GLenum target, GLshort s, GLshort t, GLshort r] glMultiTexCoord3sv: [void, GLenum target, const GLshort *v] glMultiTexCoord4d: [void, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q] glMultiTexCoord4dv: [void, GLenum target, const GLdouble *v] glMultiTexCoord4f: [void, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q] glMultiTexCoord4fv: [void, GLenum target, const GLfloat *v] glMultiTexCoord4i: [void, GLenum target, GLint s, GLint t, GLint r, GLint q] glMultiTexCoord4iv: [void, GLenum target, const GLint *v] glMultiTexCoord4s: [void, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q] glMultiTexCoord4sv: [void, GLenum target, const GLshort *v] glSampleCoverage: [void, GLfloat value, GLboolean invert] VERSION_1_4: glBlendFuncSeparate: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] glFogCoordPointer: [void, GLenum type, GLsizei stride, const GLvoid *pointer] glFogCoordd: [void, GLdouble coord] glFogCoorddv: [void, const GLdouble *coord] glFogCoordf: [void, GLfloat coord] glFogCoordfv: [void, const GLfloat *coord] glMultiDrawArrays: [void, GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount] glMultiDrawElements: [void, GLenum mode, const GLsizei *count, GLenum type, GLvoid*const *indices, GLsizei drawcount] glPointParameterf: [void, GLenum pname, GLfloat param] glPointParameterfv: [void, GLenum pname, const GLfloat *params] glPointParameteri: [void, GLenum pname, GLint param] glPointParameteriv: [void, GLenum pname, const GLint *params] glSecondaryColor3b: [void, GLbyte red, GLbyte green, GLbyte blue] glSecondaryColor3bv: [void, const GLbyte *v] glSecondaryColor3d: [void, GLdouble red, GLdouble green, GLdouble blue] glSecondaryColor3dv: [void, const GLdouble *v] glSecondaryColor3f: [void, GLfloat red, GLfloat green, GLfloat blue] glSecondaryColor3fv: [void, const GLfloat *v] glSecondaryColor3i: [void, GLint red, GLint green, GLint blue] glSecondaryColor3iv: [void, const GLint *v] glSecondaryColor3s: [void, GLshort red, GLshort green, GLshort blue] glSecondaryColor3sv: [void, const GLshort *v] glSecondaryColor3ub: [void, GLubyte red, GLubyte green, GLubyte blue] glSecondaryColor3ubv: [void, const GLubyte *v] glSecondaryColor3ui: [void, GLuint red, GLuint green, GLuint blue] glSecondaryColor3uiv: [void, const GLuint *v] glSecondaryColor3us: [void, GLushort red, GLushort green, GLushort blue] glSecondaryColor3usv: [void, const GLushort *v] glSecondaryColorPointer: [void, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] glWindowPos2d: [void, GLdouble x, GLdouble y] glWindowPos2dv: [void, const GLdouble *v] glWindowPos2f: [void, GLfloat x, GLfloat y] glWindowPos2fv: [void, const GLfloat *v] glWindowPos2i: [void, GLint x, GLint y] glWindowPos2iv: [void, const GLint *v] glWindowPos2s: [void, GLshort x, GLshort y] glWindowPos2sv: [void, const GLshort *v] glWindowPos3d: [void, GLdouble x, GLdouble y, GLdouble z] glWindowPos3dv: [void, const GLdouble *v] glWindowPos3f: [void, GLfloat x, GLfloat y, GLfloat z] glWindowPos3fv: [void, const GLfloat *v] glWindowPos3i: [void, GLint x, GLint y, GLint z] glWindowPos3iv: [void, const GLint *v] glWindowPos3s: [void, GLshort x, GLshort y, GLshort z] glWindowPos3sv: [void, const GLshort *v] VERSION_1_5: glBeginQuery: [void, GLenum target, GLuint id] glBindBuffer: [void, GLenum target, GLuint buffer] glBufferData: [void, GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage] glBufferSubData: [void, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data] glDeleteBuffers: [void, GLsizei n, const GLuint *buffers] glDeleteQueries: [void, GLsizei n, const GLuint *ids] glEndQuery: [void, GLenum target] glGenBuffers: [void, GLsizei n, GLuint *buffers] glGenQueries: [void, GLsizei n, GLuint *ids] glGetBufferParameteriv: [void, GLenum target, GLenum pname, GLint *params] glGetBufferPointerv: [void, GLenum target, GLenum pname, GLvoid *params] glGetBufferSubData: [void, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data] glGetQueryObjectiv: [void, GLuint id, GLenum pname, GLint *params] glGetQueryObjectuiv: [void, GLuint id, GLenum pname, GLuint *params] glGetQueryiv: [void, GLenum target, GLenum pname, GLint *params] glIsBuffer: [GLboolean, GLuint buffer] glIsQuery: [GLboolean, GLuint id] glMapBuffer: [GLvoid *, GLenum target, GLenum access] glUnmapBuffer: [GLboolean, GLenum target] VERSION_2_0: glAttachShader: [void, GLuint program, GLuint shader] glBindAttribLocation: [void, GLuint program, GLuint index, const GLchar *name] glBlendEquationSeparate: [void, GLenum modeRGB, GLenum modeAlpha] glCompileShader: [void, GLuint shader] glCreateProgram: [GLuint] glCreateShader: [GLuint, GLenum type] glDeleteProgram: [void, GLuint program] glDeleteShader: [void, GLuint shader] glDetachShader: [void, GLuint program, GLuint shader] glDisableVertexAttribArray: [void, GLuint index] glDrawBuffers: [void, GLsizei n, const GLenum *bufs] glEnableVertexAttribArray: [void, GLuint index] glGetActiveAttrib: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name] glGetActiveUniform: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name] glGetAttachedShaders: [void, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj] glGetAttribLocation: [GLint, GLuint program, const GLchar *name] glGetProgramInfoLog: [void, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog] glGetProgramiv: [void, GLuint program, GLenum pname, GLint *params] glGetShaderInfoLog: [void, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog] glGetShaderSource: [void, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source] glGetShaderiv: [void, GLuint shader, GLenum pname, GLint *params] glGetUniformLocation: [GLint, GLuint program, const GLchar *name] glGetUniformfv: [void, GLuint program, GLint location, GLfloat *params] glGetUniformiv: [void, GLuint program, GLint location, GLint *params] glGetVertexAttribPointerv: [void, GLuint index, GLenum pname, GLvoid *pointer] glGetVertexAttribdv: [void, GLuint index, GLenum pname, GLdouble *params] glGetVertexAttribfv: [void, GLuint index, GLenum pname, GLfloat *params] glGetVertexAttribiv: [void, GLuint index, GLenum pname, GLint *params] glIsProgram: [GLboolean, GLuint program] glIsShader: [GLboolean, GLuint shader] glLinkProgram: [void, GLuint program] glShaderSource: [void, GLuint shader, GLsizei count, GLchar*const *string, const GLint *length] glStencilFuncSeparate: [void, GLenum face, GLenum func, GLint ref, GLuint mask] glStencilMaskSeparate: [void, GLenum face, GLuint mask] glStencilOpSeparate: [void, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass] glUniform1f: [void, GLint location, GLfloat v0] glUniform1fv: [void, GLint location, GLsizei count, const GLfloat *value] glUniform1i: [void, GLint location, GLint v0] glUniform1iv: [void, GLint location, GLsizei count, const GLint *value] glUniform2f: [void, GLint location, GLfloat v0, GLfloat v1] glUniform2fv: [void, GLint location, GLsizei count, const GLfloat *value] glUniform2i: [void, GLint location, GLint v0, GLint v1] glUniform2iv: [void, GLint location, GLsizei count, const GLint *value] glUniform3f: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2] glUniform3fv: [void, GLint location, GLsizei count, const GLfloat *value] glUniform3i: [void, GLint location, GLint v0, GLint v1, GLint v2] glUniform3iv: [void, GLint location, GLsizei count, const GLint *value] glUniform4f: [void, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3] glUniform4fv: [void, GLint location, GLsizei count, const GLfloat *value] glUniform4i: [void, GLint location, GLint v0, GLint v1, GLint v2, GLint v3] glUniform4iv: [void, GLint location, GLsizei count, const GLint *value] glUniformMatrix2fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix3fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix4fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUseProgram: [void, GLuint program] glValidateProgram: [void, GLuint program] glVertexAttrib1d: [void, GLuint index, GLdouble x] glVertexAttrib1dv: [void, GLuint index, const GLdouble *v] glVertexAttrib1f: [void, GLuint index, GLfloat x] glVertexAttrib1fv: [void, GLuint index, const GLfloat *v] glVertexAttrib1s: [void, GLuint index, GLshort x] glVertexAttrib1sv: [void, GLuint index, const GLshort *v] glVertexAttrib2d: [void, GLuint index, GLdouble x, GLdouble y] glVertexAttrib2dv: [void, GLuint index, const GLdouble *v] glVertexAttrib2f: [void, GLuint index, GLfloat x, GLfloat y] glVertexAttrib2fv: [void, GLuint index, const GLfloat *v] glVertexAttrib2s: [void, GLuint index, GLshort x, GLshort y] glVertexAttrib2sv: [void, GLuint index, const GLshort *v] glVertexAttrib3d: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z] glVertexAttrib3dv: [void, GLuint index, const GLdouble *v] glVertexAttrib3f: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z] glVertexAttrib3fv: [void, GLuint index, const GLfloat *v] glVertexAttrib3s: [void, GLuint index, GLshort x, GLshort y, GLshort z] glVertexAttrib3sv: [void, GLuint index, const GLshort *v] glVertexAttrib4Nbv: [void, GLuint index, const GLbyte *v] glVertexAttrib4Niv: [void, GLuint index, const GLint *v] glVertexAttrib4Nsv: [void, GLuint index, const GLshort *v] glVertexAttrib4Nub: [void, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w] glVertexAttrib4Nubv: [void, GLuint index, const GLubyte *v] glVertexAttrib4Nuiv: [void, GLuint index, const GLuint *v] glVertexAttrib4Nusv: [void, GLuint index, const GLushort *v] glVertexAttrib4bv: [void, GLuint index, const GLbyte *v] glVertexAttrib4d: [void, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w] glVertexAttrib4dv: [void, GLuint index, const GLdouble *v] glVertexAttrib4f: [void, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w] glVertexAttrib4fv: [void, GLuint index, const GLfloat *v] glVertexAttrib4iv: [void, GLuint index, const GLint *v] glVertexAttrib4s: [void, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w] glVertexAttrib4sv: [void, GLuint index, const GLshort *v] glVertexAttrib4ubv: [void, GLuint index, const GLubyte *v] glVertexAttrib4uiv: [void, GLuint index, const GLuint *v] glVertexAttrib4usv: [void, GLuint index, const GLushort *v] glVertexAttribPointer: [void, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer] VERSION_2_1: glUniformMatrix2x3fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix2x4fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix3x2fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix3x4fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix4x2fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] glUniformMatrix4x3fv: [void, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value] VERSION_3_0: glBeginConditionalRender: [void, GLuint id, GLenum mode] glBeginTransformFeedback: [void, GLenum primitiveMode] glBindBufferBase: [void, GLenum target, GLuint index, GLuint buffer] glBindBufferRange: [void, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size] glBindFragDataLocation: [void, GLuint program, GLuint color, const GLchar *name] glClampColor: [void, GLenum target, GLenum clamp] glClearBufferfi: [void, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil] glClearBufferfv: [void, GLenum buffer, GLint drawbuffer, const GLfloat *value] glClearBufferiv: [void, GLenum buffer, GLint drawbuffer, const GLint *value] glClearBufferuiv: [void, GLenum buffer, GLint drawbuffer, const GLuint *value] glColorMaski: [void, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a] glDisablei: [void, GLenum target, GLuint index] glEnablei: [void, GLenum target, GLuint index] glEndConditionalRender: [void] glEndTransformFeedback: [void] glGetBooleani_v: [void, GLenum target, GLuint index, GLboolean *data] glGetFragDataLocation: [GLint, GLuint program, const GLchar *name] glGetIntegeri_v: [void, GLenum target, GLuint index, GLint *data] glGetStringi: [const GLubyte *, GLenum name, GLuint index] glGetTexParameterIiv: [void, GLenum target, GLenum pname, GLint *params] glGetTexParameterIuiv: [void, GLenum target, GLenum pname, GLuint *params] glGetTransformFeedbackVarying: [void, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name] glGetUniformuiv: [void, GLuint program, GLint location, GLuint *params] glGetVertexAttribIiv: [void, GLuint index, GLenum pname, GLint *params] glGetVertexAttribIuiv: [void, GLuint index, GLenum pname, GLuint *params] glIsEnabledi: [GLboolean, GLenum target, GLuint index] glTexParameterIiv: [void, GLenum target, GLenum pname, const GLint *params] glTexParameterIuiv: [void, GLenum target, GLenum pname, const GLuint *params] glTransformFeedbackVaryings: [void, GLuint program, GLsizei count, GLchar*const *varyings, GLenum bufferMode] glUniform1ui: [void, GLint location, GLuint v0] glUniform1uiv: [void, GLint location, GLsizei count, const GLuint *value] glUniform2ui: [void, GLint location, GLuint v0, GLuint v1] glUniform2uiv: [void, GLint location, GLsizei count, const GLuint *value] glUniform3ui: [void, GLint location, GLuint v0, GLuint v1, GLuint v2] glUniform3uiv: [void, GLint location, GLsizei count, const GLuint *value] glUniform4ui: [void, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3] glUniform4uiv: [void, GLint location, GLsizei count, const GLuint *value] glVertexAttribI1i: [void, GLuint index, GLint x] glVertexAttribI1iv: [void, GLuint index, const GLint *v] glVertexAttribI1ui: [void, GLuint index, GLuint x] glVertexAttribI1uiv: [void, GLuint index, const GLuint *v] glVertexAttribI2i: [void, GLuint index, GLint x, GLint y] glVertexAttribI2iv: [void, GLuint index, const GLint *v] glVertexAttribI2ui: [void, GLuint index, GLuint x, GLuint y] glVertexAttribI2uiv: [void, GLuint index, const GLuint *v] glVertexAttribI3i: [void, GLuint index, GLint x, GLint y, GLint z] glVertexAttribI3iv: [void, GLuint index, const GLint *v] glVertexAttribI3ui: [void, GLuint index, GLuint x, GLuint y, GLuint z] glVertexAttribI3uiv: [void, GLuint index, const GLuint *v] glVertexAttribI4bv: [void, GLuint index, const GLbyte *v] glVertexAttribI4i: [void, GLuint index, GLint x, GLint y, GLint z, GLint w] glVertexAttribI4iv: [void, GLuint index, const GLint *v] glVertexAttribI4sv: [void, GLuint index, const GLshort *v] glVertexAttribI4ubv: [void, GLuint index, const GLubyte *v] glVertexAttribI4ui: [void, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w] glVertexAttribI4uiv: [void, GLuint index, const GLuint *v] glVertexAttribI4usv: [void, GLuint index, const GLushort *v] glVertexAttribIPointer: [void, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer] VERSION_3_1: glDrawArraysInstanced: [void, GLenum mode, GLint first, GLsizei count, GLsizei instancecount] glDrawElementsInstanced: [void, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount] glPrimitiveRestartIndex: [void, GLuint index] glTexBuffer: [void, GLenum target, GLenum internalformat, GLuint buffer] VERSION_3_2: glFramebufferTexture: [void, GLenum target, GLenum attachment, GLuint texture, GLint level] glGetBufferParameteri64v: [void, GLenum target, GLenum pname, GLint64 *params] glGetInteger64i_v: [void, GLenum target, GLuint index, GLint64 *data] VERSION_3_3: glVertexAttribDivisor: [void, GLuint index, GLuint divisor] VERSION_4_0: glBlendEquationSeparatei: [void, GLuint buf, GLenum modeRGB, GLenum modeAlpha] glBlendEquationi: [void, GLuint buf, GLenum mode] glBlendFuncSeparatei: [void, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha] glBlendFunci: [void, GLuint buf, GLenum src, GLenum dst] glMinSampleShading: [void, GLfloat value] |
Added jni/glshim/src/CMakeLists.txt.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | include_directories(util) file(GLOB_RECURSE GL_SOURCES gl/*.c gl/*.cpp) file(GLOB UTIL_SOURCES util/*.c util/math/*.c) set(GL_SOURCES ${GL_SOURCES} ${UTIL_SOURCES}) add_library(GL SHARED ${GL_SOURCES}) set_target_properties(GL PROPERTIES VERSION 1 SOVERSION 1.2.0) if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_link_libraries(GL) endif() add_library(GL_static STATIC EXCLUDE_FROM_ALL ${GL_SOURCES}) set_target_properties(GL_static PROPERTIES OUTPUT_NAME GL) add_library(GL2 SHARED EXCLUDE_FROM_ALL ${GL_SOURCES}) set_target_properties(GL2 PROPERTIES COMPILE_FLAGS -DUSE_ES2) INSTALL(TARGETS GL RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) |
Added jni/glshim/src/config.h.
> > > > > | 1 2 3 4 5 | #define SYS_proxy 351 #define MAX_EVAL_ORDER 30 #define MAX_TEX 4 #define GL_TEXTURE_MAX (GL_TEXTURE0 + MAX_TEX) |
Added jni/glshim/src/gl/array.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | #include "array.h" #include "eval.h" #include "gl_str.h" GLvoid *gl_copy_array(const GLvoid *src, GLenum from, GLsizei width, GLsizei stride, GLenum to, GLsizei to_width, GLsizei skip, GLsizei count, GLboolean normalize) { if (! src || !count) return NULL; if (! stride) stride = width * gl_sizeof(from); const char *unknown_str = "libGL: gl_copy_array -> unsupported type %s\n"; GLvoid *dst = malloc(count * to_width * gl_sizeof(to)); GLsizei from_size = gl_sizeof(from) * width; GLsizei to_size = gl_sizeof(to) * to_width; if (to_width < width) { printf("Warning: gl_copy_array: %i < %i\n", to_width, width); return NULL; } // if stride is weird, we need to be able to arbitrarily shift src // so we leave it in a uintptr_t and cast after incrementing uintptr_t in = (uintptr_t)src; in += stride * skip; if (from == to && to_width >= width) { GL_TYPE_SWITCH(out, dst, to, for (int i = skip; i < (skip + count); i++) { memcpy(out, (GLvoid *)in, from_size); for (int j = width; j < to_width; j++) { out[j] = 0; } out += to_width; in += stride; }, default: printf(unknown_str, gl_str(from)); return NULL; ) } else { GL_TYPE_SWITCH(out, dst, to, for (int i = skip; i < (skip + count); i++) { GL_TYPE_SWITCH(input, in, from, for (int j = 0; j < width; j++) { if (from != to && normalize) { out[j] = input[j] * gl_max_value(to); out[j] /= gl_max_value(from); } else { out[j] = input[j]; } } for (int j = width; j < to_width; j++) { if (j == 3) out[j] = 1; else out[j] = 0; } out += to_width; in += stride; , default: printf(unknown_str, gl_str(from)); return NULL; ) }, default: printf(unknown_str, gl_str(to)); return NULL; ) } return dst; } GLvoid *gl_copy_pointer(pointer_state_t *ptr, GLsizei width, GLsizei skip, GLsizei count, GLboolean normalize) { return gl_copy_array(ptr->pointer, ptr->type, ptr->size, ptr->stride, GL_FLOAT, width, skip, count, normalize); } GLfloat *gl_pointer_index(pointer_state_t *p, GLint index, GLfloat buf[4]) { GLsizei size = gl_sizeof(p->type); GLsizei stride = p->stride ? p->stride : size * p->size; uintptr_t ptr = (uintptr_t)p->pointer + (stride * index); GL_TYPE_SWITCH(src, ptr, p->type, for (int i = 0; i < p->size; i++) { buf[i] = src[i]; } // zero anything not set by the pointer for (int i = p->size; i < 4; i++) { buf[i] = 0; }, default: printf("libGL: unsupported pointer type: %s\n", gl_str(p->type)); ) return buf; } GLfloat *copy_eval_double(GLenum target, GLint ustride, GLint uorder, GLint vstride, GLint vorder, const GLdouble *src) { GLsizei width = get_map_width(target); GLsizei dwidth = (uorder == 2 && vorder == 2) ? 0 : uorder * vorder; GLsizei hwidth = (uorder > vorder ? uorder : vorder) * width; GLsizei elements; GLsizei uinc = ustride - vorder * vstride; if (hwidth > dwidth) { elements = (uorder * vorder * width + hwidth); } else { elements = (uorder * vorder * width + dwidth); } GLfloat *points = malloc(elements * sizeof(GLfloat)); GLfloat *dst = points; for (int i = 0; i < uorder; i++, src += uinc) { for (int j = 0; j < vorder; j++, src += vstride) { for (int k = 0; k < width; k++) { *dst++ = src[k]; } } } return points; } void normalize_indices(GLushort *indices, GLsizei *max, GLsizei *min, GLsizei count) { *max = 0; *min = -1; for (int i = 0; i < count; i++) { GLsizei n = indices[i]; if (*min == -1) *min = n; *min = (n < *min) ? n : *min; *max = (n > *max) ? n : *max; } for (int i = 0; i < count; i++) { indices[i] -= *min; } } |
Added jni/glshim/src/gl/array.h.
> > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include "gl.h" #ifndef GL_ARRAY_H #define GL_ARRAY_H #include "types.h" GLvoid *gl_copy_array(const GLvoid *src, GLenum from, GLsizei width, GLsizei stride, GLenum to, GLsizei to_width, GLsizei skip, GLsizei count, GLboolean normalize); GLvoid *gl_copy_pointer(pointer_state_t *ptr, GLsizei width, GLsizei skip, GLsizei count, GLboolean); GLfloat *gl_pointer_index(pointer_state_t *ptr, GLint index, GLfloat buf[4]); GLfloat *copy_eval_double(GLenum target, GLint ustride, GLint uorder, GLint vstride, GLint vorder, const GLdouble *points); void normalize_indices(GLushort *indices, GLsizei *max, GLsizei *min, GLsizei count); #endif |
Added jni/glshim/src/gl/blend.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include "loader.h" #ifndef USE_ES2 void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { PUSH_IF_COMPILING(glBlendColor); PROXY_OES(glBlendColorOES); } void glBlendEquation(GLenum mode) { PUSH_IF_COMPILING(glBlendEquation); PROXY_OES(glBlendEquationOES); } void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { PUSH_IF_COMPILING(glBlendEquationSeparate); PROXY_OES(glBlendEquationSeparateOES); } void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { PUSH_IF_COMPILING(glBlendFuncSeparate); PROXY_OES(glBlendFuncSeparateOES); } void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { printf("warning: neutered glBlendFuncSeparatei()\n"); glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); } void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha) { printf("warning: neutered glBlendEquationSeparatei()\n"); glBlendEquationSeparate(modeRGB, modeAlpha); } #endif |
Added jni/glshim/src/gl/block.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 | #include "block.h" #include "gl_helpers.h" #include "line.h" #include "loader.h" #include "matrix.h" #include "render.h" #include "texgen.h" #include "texture.h" #define alloc_sublist(n, type, cap) \ (GLfloat *)malloc(n * gl_sizeof(type) * cap) #define realloc_sublist(ref, n, type, cap) \ if (ref) \ ref = (GLfloat *)realloc(ref, n * gl_sizeof(type) * cap) static void q2t_calc(int len) { if (len <= state.q2t.len) return; if (state.q2t.cache) free(state.q2t.cache); state.q2t.cache = malloc((len * 1.5 + 6) * sizeof(GLushort)); state.q2t.len = len; int a = 0, b = 1, c = 2, d = 3; int winding[6] = { a, b, d, b, c, d, }; GLushort *indices = state.q2t.cache; for (int i = 0; i < len; i += 4) { for (int j = 0; j < 6; j++) { indices[j] = i + winding[j]; } indices += 6; } } block_t *bl_new(GLenum mode) { block_t *block = calloc(1, sizeof(block_t)); block->cap = DEFAULT_BLOCK_CAPACITY; block->open = true; block->mode = mode; block->incomplete.color = -1; block->incomplete.normal = -1; for (int i = 0; i < MAX_TEX; i++) { block->incomplete.tex[i] = -1; } return block; } void bl_free(block_t *block) { free(block->vert); free(block->normal); free(block->color); for (int i = 0; i < MAX_TEX; i++) { free(block->tex[i]); } free(block->indices); free(block); } static inline void bl_grow(block_t *block) { if (! block->vert) { block->vert = alloc_sublist(3, GL_FLOAT, block->cap); } if (block->len >= block->cap) { block->cap += DEFAULT_BLOCK_CAPACITY; // TODO: store list types on block and use block->types.vert, etc directly? realloc_sublist(block->vert, 3, GL_FLOAT, block->cap); realloc_sublist(block->normal, 3, GL_FLOAT, block->cap); realloc_sublist(block->color, 4, GL_FLOAT, block->cap); for (int i = 0; i < MAX_TEX; i++) { realloc_sublist(block->tex[i], 2, GL_FLOAT, block->cap); } } } void bl_q2t(block_t *block) { if (!block->len || !block->vert || block->q2t) return; // TODO: split to multiple blocks if block->len > 65535 q2t_calc(block->len); if (block->indices) { GLushort *indices = malloc(block->len); for (int i = 0; i < block->len; i++) { indices[i] = block->indices[state.q2t.cache[i]]; } free(block->indices); block->indices = indices; } block->q2t = true; block->count = block->len * 1.5; return; } // affects global state based on the ending state of a block // (used when a display list executes or a global block ends) void bl_pollute(block_t *block) { // artificial (non-glBegin) blocks don't pollute global state // and empty blocks would cause undefined memcpy (negative index) if (!block || block->len <= 0 || block->artificial) { return; } int last = (block->len - 1); for (int i = 0; i < MAX_TEX; i++) { if (block->tex[i]) { glMultiTexCoord2fv(GL_TEXTURE0 + i, block->tex[i] + (2 * last)); } } if (block->color) { glColor4fv(block->color + (4 * last)); } if (block->normal) { glNormal3fv(block->normal + (3 * last)); } } void bl_end(block_t *block) { if (! block->open) return; // only call this here if we're not compiling if (! state.list.active) { bl_pollute(block); } block->open = false; for (int i = 0; i < MAX_TEX; i++) { gltexture_t *bound = state.texture.bound[i]; if (block->tex[i] && bound) { if (bound->width != bound->nwidth || bound->height != bound->nheight) { tex_coord_npot(block->tex[i], block->len, bound->width, bound->height, bound->nwidth, bound->nheight); } // GL_ARB_texture_rectangle if (state.texture.rect_arb[i]) { tex_coord_rect_arb(block->tex[i], block->len, bound->width, bound->height); } } } switch (block->mode) { case GL_QUADS: block->mode = GL_TRIANGLES; bl_q2t(block); break; case GL_POLYGON: block->mode = GL_TRIANGLE_FAN; break; case GL_QUAD_STRIP: block->mode = GL_TRIANGLE_STRIP; break; } } void bl_draw(block_t *block) { if (! block || block->len == 0) { return; } int pos; // texture is never incomplete, because we check enabled state on start? // TODO: the texture array could exist but be incomplete :( for (int i = 0; i < MAX_TEX; i++) { if ((pos = block->incomplete.tex[i]) >= 0) { for (int j = 0; j < block->len; j++) { memcpy(block->tex[i] + (2 * j), CURRENT->tex[i], 2 * sizeof(GLfloat)); } } } if ((pos = block->incomplete.color) >= 0) { for (int i = 0; i < pos; i++) { memcpy(block->color + (4 * i), CURRENT->color, 4 * sizeof(GLfloat)); } } if ((pos = block->incomplete.normal) >= 0) { for (int i = 0; i < pos; i++) { memcpy(block->normal + (3 * i), CURRENT->normal, 3 * sizeof(GLfloat)); } } if (state.render.mode == GL_SELECT) { return gl_select_block(block); } else if (state.render.mode == GL_FEEDBACK) { return gl_feedback_block(block); } // glTexGen for (int i = 0; i < MAX_TEX; i++) { if (state.enable.texgen_s[i] || state.enable.texgen_t[i]) { gen_tex_coords(block, i); } } // copy vertex data for local matrix calculations GLfloat *vert, *tex[MAX_TEX] = {0}; #ifdef LOCAL_MATRIX vert = malloc(block->len * 3 * sizeof(GLfloat)); for (int i = 0; i < block->len; i++) { gl_transform_vertex(&vert[i * 3], &block->vert[i * 3]); } for (int t = 0; t < MAX_TEX; t++) { if (block->tex[t]) { tex[t] = malloc(block->len * 2 * sizeof(GLfloat)); for (int i = 0; i < block->len; i++) { gl_transform_texture(GL_TEXTURE0 + t, &tex[t][i * 2], &block->tex[t][i * 2]); } } } #else vert = block->vert; for (int i = 0; i < MAX_TEX; i++) { tex[i] = block->tex[i]; } #endif LOAD_GLES(glDrawArrays); LOAD_GLES(glDrawElements); glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); #ifdef USE_ES2 if (block->vert) { glEnableVertexAttribArray(0); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, block->vert); } gles_glDrawArrays(block->mode, 0, block->len); #else if (vert) { glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, vert); } else { glDisableClientState(GL_VERTEX_ARRAY); } if (block->normal) { glEnableClientState(GL_NORMAL_ARRAY); glNormalPointer(GL_FLOAT, 0, block->normal); } else { glDisableClientState(GL_NORMAL_ARRAY); } if (block->color) { glEnableClientState(GL_COLOR_ARRAY); glColorPointer(4, GL_FLOAT, 0, block->color); } else { glDisableClientState(GL_COLOR_ARRAY); } bool stipple = false; // TODO: how do I stipple with texture? // TODO: what about multitexturing? if (! tex[0]) { // TODO: do we need to support GL_LINE_STRIP? if (block->mode == GL_LINES && state.enable.line_stipple) { stipple = true; glPushAttrib(GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT); glEnable(GL_BLEND); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE); tex[0] = gen_stipple_tex_coords(vert, block->len); bind_stipple_tex(); } } for (int i = 0; i < MAX_TEX; i++) { GLuint old = state.texture.client + GL_TEXTURE0; if (tex[i]) { glClientActiveTexture(GL_TEXTURE0 + i); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(2, GL_FLOAT, 0, tex[i]); glClientActiveTexture(old); } else if (state.enable.tex_coord_array[i]) { glClientActiveTexture(GL_TEXTURE0 + i); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glClientActiveTexture(old); } } GLushort *indices = block->indices; // if glDrawElements or glArrayElement was used, we should have already updated block->indices with q2t if (block->q2t && !indices) indices = state.q2t.cache; if (indices) { gles_glDrawElements(block->mode, block->count, GL_UNSIGNED_SHORT, indices); } else { gles_glDrawArrays(block->mode, 0, block->len); } if (stipple) { glPopAttrib(); free(tex[0]); } #endif glPopClientAttrib(); #ifdef LOCAL_MATRIX free(vert); for (int i = 0; i < MAX_TEX; i++) { free(tex[i]); } #endif } void bl_vertex3f(block_t *block, GLfloat x, GLfloat y, GLfloat z) { bl_grow(block); if (block->normal) { GLfloat *normal = block->normal + (block->len * 3); memcpy(normal, CURRENT->normal, sizeof(GLfloat) * 3); } if (block->color) { GLfloat *color = block->color + (block->len * 4); memcpy(color, CURRENT->color, sizeof(GLfloat) * 4); } for (int i = 0; i < MAX_TEX; i++) { if (block->tex[i]) { GLfloat *tex = block->tex[i] + (block->len * 2); memcpy(tex, CURRENT->tex[i], sizeof(GLfloat) * 2); } } GLfloat *vert = block->vert + (block->len++ * 3); vert[0] = x; vert[1] = y; vert[2] = z; } void bl_track_color(block_t *block) { if (! block->color) { block->color = alloc_sublist(4, GL_FLOAT, block->cap); if (state.list.active) { block->incomplete.color = block->len - 1; } else { for (int i = 0; i < block->len; i++) { memcpy(block->color + (4 * i), CURRENT->color, 4 * sizeof(GLfloat)); } } } } void bl_track_normal(block_t *block) { if (! block->normal) { block->normal = alloc_sublist(3, GL_FLOAT, block->cap); if (state.list.active) { block->incomplete.normal = block->len - 1; } else { for (int i = 0; i < block->len; i++) { memcpy(block->normal + (3 * i), CURRENT->normal, 3 * sizeof(GLfloat)); } } } } void bl_track_tex(block_t *block, GLenum target) { target -= GL_TEXTURE0; if (! block->tex[target]) { block->tex[target] = alloc_sublist(2, GL_FLOAT, block->cap); if (state.list.active) { block->incomplete.tex[target] = block->len - 1; } else { for (int j = 0; j < block->len; j++) { memcpy(block->tex[target] + (2 * j), CURRENT->tex[target], 2 * sizeof(GLfloat)); } } } } |
Added jni/glshim/src/gl/block.h.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #ifndef BLOCK_H #define BLOCK_H #include "types.h" #define DEFAULT_BLOCK_CAPACITY 16 #define RENDER_BLOCK_FORMAT -1 extern block_t *bl_new(GLenum mode); extern void bl_free(block_t *block); extern void bl_draw(block_t *block); extern void bl_q2t(block_t *block); extern void bl_end(block_t *block); extern void bl_vertex3f(block_t *block, GLfloat x, GLfloat y, GLfloat z); extern void bl_track_color(block_t *block); extern void bl_track_normal(block_t *block); extern void bl_track_tex(block_t *block, GLenum target); extern void bl_pollute(block_t *block); extern void bl_push_call(block_t *block, packed_call_t *data); #endif |
Added jni/glshim/src/gl/clear.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include "error.h" #include "loader.h" void glClear(GLbitfield mask) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glClear); PROXY_GLES(glClear); } void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glClearColor); PROXY_GLES(glClearColor); } void glClearDepthf(GLclampf depth) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glClearDepthf); PROXY_GLES(glClearDepthf); } void glClearStencil(GLint s) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glClearStencil); PROXY_GLES(glClearStencil); } |
Added jni/glshim/src/gl/const.h.
> > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #ifndef CONST_H #define CONST_H #ifdef __linux__ #include <linux/limits.h> #endif #ifndef PATH_MAX #define PATH_MAX 254 #endif #ifndef MIN #define MIN(a, b) (((a) < (b) ? (a) : (b))) #endif #ifndef MAX #define MAX(a, b) (((a) > (b) ? (a) : (b))) #endif #endif |
Added jni/glshim/src/gl/defines.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <GL/gl.h> #ifndef MIN #define MIN(a, b) (((a) < (b) ? (a) : (b))) #endif #ifndef MAX #define MAX(a, b) (((a) > (b) ? (a) : (b))) #endif // newly-defined GL functions GLboolean glIsList(GLuint list); GLuint glGenLists(GLsizei range); void glActiveTextureARB(GLenum texture); void glArrayElement(GLint i); void glBegin(GLenum mode); void glCallList(GLuint list); void glCallLists(GLsizei n, GLenum type, const GLvoid *lists); void glClearDepth(GLdouble depth); void glDeleteList(GLuint list); void glDeleteLists(GLuint list, GLsizei range); void glDrawArrays(GLenum mode, GLint first, GLsizei count); void glEnd(); void glEndList(); void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); void glGetDoublev(GLenum pname, GLdouble *params); void glIndexf(GLfloat i); void glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer); void glListBase(GLuint base); void glLockArraysEXT(GLint first, GLsizei count); void glNewList(GLuint list, GLenum mode); void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); void glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b); void glTexCoord2f(GLfloat s, GLfloat t); void glUnlockArraysEXT(); void glVertex2f(GLfloat x, GLfloat y); void glVertex2i(GLint x, GLint y); void glVertex3f(GLfloat x, GLfloat y, GLfloat z); // custom functions void glPushCall(void *call); |
Added jni/glshim/src/gl/depth.c.
> > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include "error.h" #include "loader.h" void glDepthFunc(GLenum func) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glDepthFunc); PROXY_GLES(glDepthFunc); } void glDepthMask(GLboolean flag) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glDepthMask); PROXY_GLES(glDepthMask); } void glDepthRangef(GLclampf near, GLclampf far) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glDepthRangef); PROXY_GLES(glDepthRangef); } |
Added jni/glshim/src/gl/error.h.
> > > > | 1 2 3 4 | #include "get.h" #define ERROR(pname) do { gl_set_error(pname); return; } while (0) #define ERROR_IN_BLOCK() if (state.block.active) { ERROR(GL_INVALID_OPERATION); } |
Added jni/glshim/src/gl/eval.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | // TODO: glIsEnabled(), glGetMap() // TODO: GL_AUTO_NORMAL #include "array.h" #include "eval.h" #include "gl_str.h" #include "math/eval.h" static inline map_state_t **get_map_pointer(GLenum target) { switch (target) { case GL_MAP1_COLOR_4: return &state.map1.color4; case GL_MAP1_INDEX: return &state.map1.index; case GL_MAP1_TEXTURE_COORD_1: return &state.map1.texture1; case GL_MAP1_TEXTURE_COORD_2: return &state.map1.texture2; case GL_MAP1_TEXTURE_COORD_3: return &state.map1.texture3; case GL_MAP1_TEXTURE_COORD_4: return &state.map1.texture4; case GL_MAP1_VERTEX_3: return &state.map1.vertex3; case GL_MAP1_VERTEX_4: return &state.map1.vertex4; case GL_MAP2_COLOR_4: return &state.map2.color4; case GL_MAP2_INDEX: return &state.map2.index; case GL_MAP2_TEXTURE_COORD_1: return &state.map2.texture1; case GL_MAP2_TEXTURE_COORD_2: return &state.map2.texture2; case GL_MAP2_TEXTURE_COORD_3: return &state.map2.texture3; case GL_MAP2_TEXTURE_COORD_4: return &state.map2.texture4; case GL_MAP2_VERTEX_3: return &state.map2.vertex3; case GL_MAP2_VERTEX_4: return &state.map2.vertex4; default: printf("libGL: unsupported glMap target %s\n", gl_str(target)); } return NULL; } #define set_map_coords(n) \ map->n._1 = n##1; \ map->n._2 = n##2; \ map->n.d = 1.0/(n##2 - n##1); \ map->n.stride = n##stride; \ map->n.order = n##order; #define case_state(dims, magic, name) \ case magic: { \ map->width = get_map_width(magic); \ map_statef_t *m = (map_statef_t *)state.map##dims.name; \ if (m) { \ if (m->free) \ free((void *)m->points); \ free(m); \ } \ state.map##dims.name = (map_state_t *)map; \ break; \ } #define map_switch(dims) \ switch (target) { \ case_state(dims, GL_MAP##dims##_COLOR_4, color4); \ case_state(dims, GL_MAP##dims##_INDEX, index); \ case_state(dims, GL_MAP##dims##_NORMAL, normal); \ case_state(dims, GL_MAP##dims##_TEXTURE_COORD_1, texture1); \ case_state(dims, GL_MAP##dims##_TEXTURE_COORD_2, texture2); \ case_state(dims, GL_MAP##dims##_TEXTURE_COORD_3, texture3); \ case_state(dims, GL_MAP##dims##_TEXTURE_COORD_4, texture4); \ case_state(dims, GL_MAP##dims##_VERTEX_3, vertex3); \ case_state(dims, GL_MAP##dims##_VERTEX_4, vertex4); \ } void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, const GLdouble *points) { map_statef_t *map = malloc(sizeof(map_statef_t)); map->type = GL_FLOAT; map->dims = 1; map->free = true; set_map_coords(u); map_switch(1); map->points = copy_eval_double(target, ustride, uorder, 0, 1, points); } void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, const GLfloat *points) { map_statef_t *map = malloc(sizeof(map_statef_t)); map->type = GL_FLOAT; map->dims = 1; map->free = false; set_map_coords(u); map_switch(1); map->points = points; } void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points) { map_statef_t *map = malloc(sizeof(map_statef_t)); map->type = GL_FLOAT; map->dims = 2; map->free = true; set_map_coords(u); set_map_coords(v); map_switch(2); map->points = copy_eval_double(target, ustride, uorder, vstride, vorder, points); } void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points) { map_statef_t *map = malloc(sizeof(map_statef_t)); map->type = GL_FLOAT; map->dims = 2; map->free = false; set_map_coords(u); set_map_coords(v); map_switch(2); map->points = points; } #undef set_map_coords #undef case_state #undef map_switch #define p_map(d, name, func, code) { \ map_state_t *_map = state.map##d.name; \ if (_map) { \ if (_map->type == GL_DOUBLE) { \ map_stated_t *map = (map_stated_t *)_map; \ printf("double: not implemented\n"); \ } else if (_map->type == GL_FLOAT) { \ map_statef_t *map = (map_statef_t *)_map; \ GLfloat out[4]; \ code \ func##v(out); \ } \ }} #define iter_maps(d, code) \ p_map(d, color4, glColor4f, code); \ p_map(d, index, glIndexf, code); \ p_map(d, normal, glNormal3f, code); \ p_map(d, texture1, glTexCoord1f, code); \ p_map(d, texture2, glTexCoord2f, code); \ p_map(d, texture3, glTexCoord3f, code); \ p_map(d, texture4, glTexCoord4f, code); \ p_map(d, vertex3, glVertex3f, code); \ p_map(d, vertex4, glVertex4f, code); void glEvalCoord1f(GLfloat u) { iter_maps(1, GLfloat uu = (u - map->u._1) * map->u.d; _math_horner_bezier_curve(map->points, out, uu, map->width, map->u.order); ) } void glEvalCoord2f(GLfloat u, GLfloat v) { iter_maps(2, GLfloat uu = (u - map->u._1) * map->u.d; GLfloat vv = (v - map->v._1) * map->v.d; // TODO: GL_AUTONORMAL _math_horner_bezier_surf((GLfloat *)map->points, out, uu, vv, map->width, map->u.order, map->v.order); ) } #undef p_map #undef iter_maps void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2) { // TODO: double support? map_statef_t *map; if (! state.map_grid) state.map_grid = malloc(sizeof(map_statef_t)); map = (map_statef_t *)state.map_grid; map->dims = 1; map->u.n = un; map->u._1 = u1; map->u._2 = u2; } void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) { // TODO: double support? map_statef_t *map; if (! state.map_grid) state.map_grid = malloc(sizeof(map_statef_t)); map = (map_statef_t *)state.map_grid; map->dims = 2; map->u.n = un; map->u._1 = u1; map->u._2 = u2; map->v.n = vn; map->v._1 = v1; map->v._2 = v2; } static inline GLenum eval_mesh_prep(map_statef_t **map, GLenum mode) { if (state.map2.vertex4) { *map = (map_statef_t *)state.map2.vertex4; } else if (state.map2.vertex3) { *map = (map_statef_t *)state.map2.vertex3; } else { return 0; } if ((*map)->type == GL_DOUBLE) { printf("libGL: GL_DOUBLE map not implemented\n"); return 0; } switch (mode) { case GL_POINT: return GL_POINTS; case GL_LINE: return GL_LINE_STRIP; case GL_FILL: return GL_TRIANGLE_STRIP; case 0: return 1; default: printf("Unsupported glEvalMesh mode: %s\n", gl_str_primitive(mode)); return 0; } } void glEvalMesh1(GLenum mode, GLint i1, GLint i2) { map_statef_t *map; GLenum renderMode = eval_mesh_prep(&map, mode); if (! renderMode) return; GLfloat u, du, u1; du = map->u.d; GLint i; glBegin(renderMode); for (u = u1, i = i1; i <= i2; i++, u += du) { glEvalCoord1f(u); } glEnd(); } void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) { map_statef_t *map; GLenum renderMode = eval_mesh_prep(&map, mode); if (! renderMode) return; GLfloat u, du, u1, v, dv, v1; du = map->u.d; dv = map->v.d; GLint i, j; glBegin(renderMode); for (v = v1, j = j1; j <= j2; j++, v += dv) { for (u = u1, i = i1; i <= i2; i++, u += du) { glEvalCoord2f(u, v); if (mode == GL_FILL) glEvalCoord2f(u, v + dv); } } glEnd(); if (mode == GL_LINE) { glBegin(renderMode); for (u = u1, i = i1; i <= i2; i++, u += du) { for (v = v1, j = j1; j <= j2; j++, v += dv) { glEvalCoord2f(u, v); } } glEnd(); } } void glEvalPoint1(GLint i) { map_statef_t *map; if (eval_mesh_prep(&map, 0)) glEvalCoord1f(i + map->u.d); } void glEvalPoint2(GLint i, GLint j) { map_statef_t *map; if (eval_mesh_prep(&map, 0)) glEvalCoord2f(i + map->u.d, j + map->v.d); } #define GL_GET_MAP(t, type) \ void glGetMap##t##v(GLenum target, GLenum query, type *v) { \ map_statef_t *map = *(map_statef_t **)get_map_pointer(target); \ if (map) { \ switch (query) { \ case GL_COEFF: { \ const GLfloat *points = map->points; \ for (int i = 0; i < map->u.order; i++) { \ if (map->dims == 2) { \ for (int j = 0; j < map->v.order; j++) { \ *v++ = *points++; \ } \ } else { \ *v++ = *points++; \ } \ } \ return; \ } \ case GL_ORDER: \ *v++ = map->u.order; \ if (map->dims == 2) \ *v++ = map->v.order; \ return; \ case GL_DOMAIN: \ *v++ = map->u._1; \ *v++ = map->u._2; \ if (map->dims == 2) { \ *v++ = map->u._1; \ *v++ = map->u._2; \ } \ return; \ } \ } \ } GL_GET_MAP(i, GLint) GL_GET_MAP(f, GLfloat) GL_GET_MAP(d, GLdouble) #undef GL_GET_MAP |
Added jni/glshim/src/gl/eval.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #ifndef GL_MAP_H #define GL_MAP_H #include <GL/gl.h> void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); void glEvalCoord1d(GLdouble u); void glEvalCoord1f(GLfloat u); void glEvalCoord2d(GLdouble u, GLdouble v); void glEvalCoord2f(GLfloat u, GLfloat v); void glEvalMesh1(GLenum mode, GLint i1, GLint i2); void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); void glEvalPoint1(GLint i); void glEvalPoint2(GLint i, GLint j); void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); void glGetMapdv(GLenum target, GLenum query, GLdouble *v); void glGetMapfv(GLenum target, GLenum query, GLfloat *v); void glGetMapiv(GLenum target, GLenum query, GLint *v); static const GLsizei get_map_width(GLenum target) { switch (target) { case GL_MAP1_COLOR_4: return 4; case GL_MAP1_INDEX: return 3; case GL_MAP1_NORMAL: return 3; case GL_MAP1_TEXTURE_COORD_1: return 1; case GL_MAP1_TEXTURE_COORD_2: return 2; case GL_MAP1_TEXTURE_COORD_3: return 3; case GL_MAP1_TEXTURE_COORD_4: return 4; case GL_MAP1_VERTEX_3: return 3; case GL_MAP1_VERTEX_4: return 4; case GL_MAP2_COLOR_4: return 4; case GL_MAP2_INDEX: return 3; case GL_MAP2_NORMAL: return 3; case GL_MAP2_TEXTURE_COORD_1: return 1; case GL_MAP2_TEXTURE_COORD_2: return 2; case GL_MAP2_TEXTURE_COORD_3: return 3; case GL_MAP2_TEXTURE_COORD_4: return 4; case GL_MAP2_VERTEX_3: return 3; case GL_MAP2_VERTEX_4: return 4; } return 0; } #endif |
Added jni/glshim/src/gl/get.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | #include <GL/gl.h> #include "error.h" #include "gl_helpers.h" #include "gl_str.h" #include "loader.h" #include "matrix.h" void gl_set_error(GLenum error) { LOAD_GLES(glGetError); // call upstream glGetError to clear the driver's error flag gles_glGetError(); state.error = error; } // calls upstream glGetError and saves the flag for the next caller GLenum gl_get_error() { LOAD_GLES(glGetError); state.error = gles_glGetError(); return state.error; } GLenum glGetError() { LOAD_GLES(glGetError); if (state.block.active) { return GL_INVALID_OPERATION; } GLenum error = gles_glGetError(); if (error == GL_NO_ERROR) { error = state.error; } state.error = GL_NO_ERROR; return error; } // config functions const GLubyte *glGetString(GLenum name) { LOAD_GLES(glGetString); if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return NULL; } switch (name) { case GL_VERSION: #ifdef USE_ES2 return (GLubyte *)"4.3 glshim wrapper"; #else return (GLubyte *)"1.4 glshim wrapper"; #endif case GL_EXTENSIONS: return (const GLubyte *)(char *){ #ifndef USE_ES2 // "GL_ARB_vertex_buffer_object " "GL_ARB_multitexture " "GL_ARB_texture_cube_map " "GL_EXT_secondary_color " "GL_EXT_texture_env_combine " "GL_EXT_texture_env_dot3 " // blending extensions "GL_EXT_blend_color " "GL_EXT_blend_equation_separate " "GL_EXT_blend_func_separate " "GL_EXT_blend_logic_op " "GL_EXT_blend_subtract " #else "GL_ARB_vertex_shader " "GL_ARB_fragment_shader " "GL_ARB_vertex_buffer_object " "GL_EXT_framebuffer_object " #endif }; default: return gles_glGetString(name); } } static void gl_get(GLenum pname, GLenum type, GLvoid *params) { LOAD_GLES(glGetBooleanv); LOAD_GLES(glGetFloatv); LOAD_GLES(glGetIntegerv); ERROR_IN_BLOCK(); int width = 1; switch (pname) { // GL_BOOL case GL_CURRENT_RASTER_POSITION_VALID: case GL_TEXTURE_GEN_Q: case GL_TEXTURE_GEN_R: case GL_TEXTURE_GEN_S: case GL_TEXTURE_GEN_T: { enable_state_t *enable = &state.enable; GLboolean tmp[4]; GLboolean *out = tmp; if (type == GL_BOOL) { out = params; } switch (pname) { case GL_CURRENT_RASTER_POSITION_VALID: *out = state.raster.valid; break; case GL_TEXTURE_GEN_Q: *out = enable->texgen_q[state.texture.active]; break; case GL_TEXTURE_GEN_R: *out = enable->texgen_r[state.texture.active]; break; case GL_TEXTURE_GEN_S: *out = enable->texgen_s[state.texture.active]; break; case GL_TEXTURE_GEN_T: *out = enable->texgen_t[state.texture.active]; break; } if (type != GL_BOOL) { for (int i = 0; i < width; i++) { if (type == GL_INT) { GLint *ret = params; ret[i] = out[i]; } else if (type == GL_FLOAT) { GLfloat *ret = params; ret[i] = out[i]; } } } break; } // GL_FLOAT case GL_CURRENT_COLOR: case GL_CURRENT_NORMAL: case GL_CURRENT_RASTER_COLOR: case GL_CURRENT_RASTER_POSITION: case GL_CURRENT_TEXTURE_COORDS: case GL_MODELVIEW_MATRIX: case GL_PROJECTION_MATRIX: case GL_TEXTURE_MATRIX: { bool scale = false; GLfloat tmp[4]; GLfloat *out = tmp; if (type == GL_FLOAT) { out = params; } switch (pname) { case GL_CURRENT_COLOR: width = 4; memcpy(out, &CURRENT->color, sizeof(GLfloat) * 4); break; case GL_CURRENT_NORMAL: width = 3; memcpy(out, &CURRENT->normal, sizeof(GLfloat) * 3); break; case GL_CURRENT_RASTER_COLOR: width = 4; memcpy(out, &state.raster.color, sizeof(GLfloat) * 4); break; case GL_CURRENT_RASTER_POSITION: width = 4; memcpy(out, &state.raster.pos, sizeof(GLfloat) * 4); break; case GL_CURRENT_TEXTURE_COORDS: width = 4; memcpy(out, &CURRENT->tex, sizeof(GLfloat) * 2); // TODO: need to update this when I track 4d texture coordinates out[3] = 0; out[4] = 0; break; case GL_MODELVIEW_MATRIX: width = 4; gl_get_matrix(GL_MODELVIEW, out); break; case GL_PROJECTION_MATRIX: width = 4; gl_get_matrix(GL_PROJECTION, out); break; case GL_TEXTURE_MATRIX: width = 4; gl_get_matrix(GL_TEXTURE, out); break; } if (type != GL_FLOAT) { for (int i = 0; i < width; i++) { if (type == GL_INT) { GLint *ret = params; if (scale) { ret[i] = out[i] * gl_max_value(type); } else { ret[i] = out[i]; } } else if (type == GL_BOOL) { GLboolean *ret = params; ret[i] = !! out[i]; } } } break; } // GL_INT case GL_ATTRIB_STACK_DEPTH: case GL_AUX_BUFFERS: case GL_CLIENT_ATTRIB_STACK_DEPTH: case GL_MAX_ATTRIB_STACK_DEPTH: case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: case GL_MAX_ELEMENTS_INDICES: case GL_MAX_MODELVIEW_STACK_DEPTH: case GL_MAX_NAME_STACK_DEPTH: case GL_MAX_PROJECTION_STACK_DEPTH: case GL_MAX_TEXTURE_STACK_DEPTH: case GL_MODELVIEW_STACK_DEPTH: case GL_NAME_STACK_DEPTH: case GL_PROJECTION_STACK_DEPTH: case GL_TEXTURE_STACK_DEPTH: { GLint tmp[4]; GLint *out = tmp; if (type == GL_INT) { out = params; } switch (pname) { case GL_ATTRIB_STACK_DEPTH: *out = tack_len(&state.stack.attrib); break; case GL_AUX_BUFFERS: *out = 0; break; case GL_CLIENT_ATTRIB_STACK_DEPTH: *out = tack_len(&state.stack.client); break; case GL_MAX_ATTRIB_STACK_DEPTH: case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: case GL_MAX_ELEMENTS_INDICES: case GL_MAX_LIST_NESTING: case GL_MAX_MODELVIEW_STACK_DEPTH: case GL_MAX_NAME_STACK_DEPTH: case GL_MAX_PROJECTION_STACK_DEPTH: case GL_MAX_TEXTURE_STACK_DEPTH: // NOTE: GL_MAX_ELEMENTS_INDICES is *actually* 65535, the others in this group are arbitrary *out = 65535; break; case GL_MODELVIEW_STACK_DEPTH: *out = tack_len(&state.matrix.model.stack); break; case GL_NAME_STACK_DEPTH: *out = tack_len(&state.select.names); break; case GL_PROJECTION_STACK_DEPTH: *out = tack_len(&state.matrix.projection.stack); break; case GL_TEXTURE_STACK_DEPTH: *out = tack_len(&state.matrix.texture[state.texture.active].stack); break; } if (type != GL_INT) { for (int i = 0; i < width; i++) { if (type == GL_FLOAT) { GLfloat *ret = params; ret[i] = out[i]; } else if (type == GL_BOOL) { GLboolean *ret = params; ret[i] = !! out[i]; } } } break; } default: { GLenum saved = glGetError(); switch (type) { case GL_BOOL: gles_glGetBooleanv(pname, params); break; case GL_FLOAT: gles_glGetFloatv(pname, params); break; case GL_INT: gles_glGetIntegerv(pname, params); break; } GLenum error = gl_get_error(); if (error == GL_INVALID_ENUM) { fprintf(stderr, "libGL: GL_INVALID_ENUM when calling glGet<%s>(%s)\n", gl_str(type), gl_str(pname)); } else if (! error) { gl_set_error(saved); } break; } } } void glGetBooleanv(GLenum pname, GLboolean *params) { gl_get(pname, GL_BOOL, params); } void glGetFloatv(GLenum pname, GLfloat *params) { gl_get(pname, GL_FLOAT, params); } void glGetIntegerv(GLenum pname, GLint *params) { gl_get(pname, GL_INT, params); } /* void glGetFixedv(GLenum pname, GLfloat *params) { // meh } */ |
Added jni/glshim/src/gl/get.h.
> > > > | 1 2 3 4 | #include <GL/gl.h> GLenum gl_get_error(); void gl_set_error(GLenum error); |
Added jni/glshim/src/gl/gl.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 | #include "array.h" #include "block.h" #include "error.h" #include "list.h" #include "loader.h" #include "texture.h" #include "types.h" #ifdef _THREAD_SAFE static pthread_once_t glonce = PTHREAD_ONCE_INIT; static pthread_key_t glkey; static const glstate_t state_template = #else glstate_t state = #endif { 0, .current = { .color = {1.0f, 1.0f, 1.0f, 1.0f}, .normal = {0.0f, 0.0f, 1.0f}, .tex = {[0 ... MAX_TEX - 1] = {0.0f, 0.0f}}, }, .matrix = { .mode = GL_MODELVIEW, }, .render = { .mode = GL_RENDER, }, .raster = { .buf = NULL, .pos = {0.0f, 0.0f, 0.0f, 1.0f}, .color = {1.0f, 1.0f, 1.0f, 1.0f}, .pixel = 0xFFFFFFFF, .valid = 1, }, .stack = {0}, .texgen = {[0 ... MAX_TEX - 1] = { .R = GL_EYE_LINEAR, .Q = GL_EYE_LINEAR, .S = GL_EYE_LINEAR, .T = GL_EYE_LINEAR, .Rv = {0, 0, 0, 0}, .Qv = {0, 0, 0, 0}, .Sv = {1, 0, 0, 0}, .Tv = {0, 1, 0, 0}, }}, .mvp_dirty = true, .stippleFactor = 1, .stipplePattern = 0xFFFF, .stippleData = NULL, .stippleTexture = 0, .q2t = { NULL, 0 }, }; #ifdef _THREAD_SAFE static void tsd_done(void *stptr) { if (stptr != NULL) { free(stptr); } } static void once_init(void) { pthread_key_create(&glkey, tsd_done); } glstate_t *_gl_get_state(void) { glstate_t *stptr; if (glonce == PTHREAD_ONCE_INIT) { pthread_once(&glonce, once_init); } stptr = (glstate_t *)pthread_getspecific(glkey); if (stptr == NULL) { stptr = malloc(sizeof (glstate_t)); *stptr = state_template; pthread_setspecific(glkey, stptr); } return stptr; } #endif static void proxy_glEnable(GLenum cap, bool enable, void (*next)(GLenum)) { #define proxy_enable(constant, name) \ case constant: \ if (state.enable.name != enable) { \ state.enable.name = enable; \ next(cap); \ } \ break #define enable(constant, name) \ case constant: state.enable.name = enable; break; // TODO: maybe could be weird behavior if someone tried to: // 1. enable GL_TEXTURE_1D // 2. enable GL_TEXTURE_2D // 3. disable GL_TEXTURE_1D // 4. render. GL_TEXTURE_2D would be disabled. cap = map_tex_target(cap); switch (cap) { proxy_enable(GL_BLEND, blend); proxy_enable(GL_TEXTURE_2D, texture_2d[state.texture.active]); enable(GL_TEXTURE_GEN_R, texgen_r[state.texture.active]); enable(GL_TEXTURE_GEN_Q, texgen_q[state.texture.active]); enable(GL_TEXTURE_GEN_S, texgen_s[state.texture.active]); enable(GL_TEXTURE_GEN_T, texgen_t[state.texture.active]); enable(GL_LINE_STIPPLE, line_stipple); // for glDrawArrays proxy_enable(GL_VERTEX_ARRAY, vertex_array); proxy_enable(GL_NORMAL_ARRAY, normal_array); proxy_enable(GL_COLOR_ARRAY, color_array); proxy_enable(GL_TEXTURE_COORD_ARRAY, tex_coord_array[state.texture.client]); default: next(cap); break; } #undef proxy_enable #undef enable } void glEnable(GLenum cap) { PUSH_IF_COMPILING(glEnable); LOAD_GLES(glEnable); ERROR_IN_BLOCK(); proxy_glEnable(cap, true, gles_glEnable); } void glDisable(GLenum cap) { PUSH_IF_COMPILING(glDisable); ERROR_IN_BLOCK(); LOAD_GLES(glDisable); proxy_glEnable(cap, false, gles_glDisable); } #ifndef USE_ES2 void glEnableClientState(GLenum cap) { LOAD_GLES(glEnableClientState); ERROR_IN_BLOCK(); proxy_glEnable(cap, true, gles_glEnableClientState); } void glDisableClientState(GLenum cap) { LOAD_GLES(glDisableClientState); ERROR_IN_BLOCK(); proxy_glEnable(cap, false, gles_glDisableClientState); } #endif GLboolean glIsEnabled(GLenum cap) { LOAD_GLES(glIsEnabled); if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return 0; } switch (cap) { case GL_LINE_STIPPLE: return state.enable.line_stipple; case GL_TEXTURE_GEN_S: return state.enable.texgen_s[state.texture.active]; case GL_TEXTURE_GEN_T: return state.enable.texgen_t[state.texture.active]; case GL_TEXTURE_COORD_ARRAY: return state.enable.tex_coord_array[state.texture.client]; default: return gles_glIsEnabled(cap); } } static block_t *block_from_arrays(GLenum mode, GLsizei skip, GLsizei count) { block_t *block = bl_new(mode); block->artificial = true; block->len = block->cap = count; if (state.enable.vertex_array) { block->vert = gl_copy_pointer(&state.pointers.vertex, 3, skip, count, false); } if (state.enable.color_array) { block->color = gl_copy_pointer(&state.pointers.color, 4, skip, count, true); } if (state.enable.normal_array) { block->normal = gl_copy_pointer(&state.pointers.normal, 3, skip, count, false); } for (int i = 0; i < MAX_TEX; i++) { if (state.enable.tex_coord_array[i]) { block->tex[i] = gl_copy_pointer(&state.pointers.tex_coord[i], 2, skip, count, false); } } return block; } static inline bool should_intercept_render(GLenum mode) { #ifdef LOCAL_MATRIX // gotta force this for matrix stack return true; #endif bool texgen_enabled = false; for (int i = 0; i < MAX_TEX; i++) { texgen_enabled |= state.enable.texgen_s[i] || state.enable.texgen_t[i]; } return ( (state.enable.vertex_array && ! gl_valid_vertex_type(state.pointers.vertex.type)) || (texgen_enabled) || (mode == GL_LINES && state.enable.line_stipple) || (mode == GL_QUADS) || (state.render.mode == GL_FEEDBACK || state.render.mode == GL_SELECT) ); } void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *uindices) { // TODO: split for count > 65535? GLushort *indices = gl_copy_array(uindices, type, 1, 0, GL_UNSIGNED_SHORT, 1, 0, count, false); // TODO: do this in a more direct fashion. if (should_intercept_render(mode)) { glBegin(mode); state.block.active->artificial = true; for (int i = 0; i < count; i++) { glArrayElement(indices[i]); } glEnd(); free(indices); return; } displaylist_t *list = state.list.active; if (list) { GLsizei min, max; normalize_indices(indices, &max, &min, count); block_t *block = block_from_arrays(mode, min, max + 1); block->indices = indices; block->count = count; bl_end(block); if (list) { dl_append_block(list, block); } else { bl_draw(block); bl_free(block); } } else { LOAD_GLES(glDrawElements); gles_glDrawElements(mode, count, type, indices); free(indices); } } void glDrawArrays(GLenum mode, GLint first, GLsizei count) { if (mode == GL_QUAD_STRIP) mode = GL_TRIANGLE_STRIP; displaylist_t *active = state.list.active; if (active) { block_t *block = block_from_arrays(mode, first, count); bl_end(block); dl_append_block(active, block); return; } if (should_intercept_render(mode)) { block_t *block = block_from_arrays(mode, first, count); bl_end(block); bl_draw(block); bl_free(block); } else { LOAD_GLES(glDrawArrays); gles_glDrawArrays(mode, first, count); } } #ifndef USE_ES2 #define clone_gl_pointer(t, s)\ t.size = s; t.type = type; t.stride = stride; t.pointer = pointer; void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { LOAD_GLES(glVertexPointer); clone_gl_pointer(state.pointers.vertex, size); gles_glVertexPointer(size, type, stride, pointer); } void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { LOAD_GLES(glColorPointer); clone_gl_pointer(state.pointers.color, size); gles_glColorPointer(size, type, stride, pointer); } void glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) { LOAD_GLES(glNormalPointer); clone_gl_pointer(state.pointers.normal, 3); gles_glNormalPointer(type, stride, pointer); } void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { LOAD_GLES(glTexCoordPointer); clone_gl_pointer(state.pointers.tex_coord[state.texture.client], size); gles_glTexCoordPointer(size, type, stride, pointer); } #undef clone_gl_pointer #endif void glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer) { if (stride < 0) { ERROR(GL_INVALID_VALUE); } uintptr_t ptr = (uintptr_t)pointer; // element lengths GLsizei tex = 0, color = 0, normal = 0, vert = 0; // element formats GLenum tf, cf, nf, vf; tf = cf = nf = vf = GL_FLOAT; switch (format) { case GL_V2F: vert = 2; break; case GL_V3F: vert = 3; break; case GL_C4UB_V2F: color = 4; cf = GL_UNSIGNED_BYTE; vert = 2; break; case GL_C4UB_V3F: color = 4; cf = GL_UNSIGNED_BYTE; vert = 3; break; case GL_C3F_V3F: color = 3; vert = 4; break; case GL_N3F_V3F: normal = 3; vert = 3; break; case GL_C4F_N3F_V3F: color = 4; normal = 3; vert = 3; break; case GL_T2F_V3F: tex = 2; vert = 3; break; case GL_T4F_V4F: tex = 4; vert = 4; break; case GL_T2F_C4UB_V3F: tex = 2; color = 4; cf = GL_UNSIGNED_BYTE; vert = 3; break; case GL_T2F_C3F_V3F: tex = 2; color = 3; vert = 3; break; case GL_T2F_N3F_V3F: tex = 2; normal = 3; vert = 3; break; case GL_T2F_C4F_N3F_V3F: tex = 2; color = 4; normal = 3; vert = 3; break; case GL_T4F_C4F_N3F_V4F: tex = 4; color = 4; normal = 3; vert = 4; break; default: ERROR(GL_INVALID_ENUM); } if (! stride) stride = tex * gl_sizeof(tf) + color * gl_sizeof(cf) + normal * gl_sizeof(nf) + vert * gl_sizeof(vf); if (tex) { glTexCoordPointer(tex, tf, stride, (GLvoid *)ptr); ptr += tex * gl_sizeof(tf); } if (color) { glColorPointer(color, cf, stride, (GLvoid *)ptr); ptr += color * gl_sizeof(cf); } if (normal) { glNormalPointer(nf, stride, (GLvoid *)ptr); ptr += normal * gl_sizeof(nf); } if (vert) glVertexPointer(vert, vf, stride, (GLvoid *)ptr); } // immediate mode functions void glBegin(GLenum mode) { if (! gl_valid_mode(mode)) { ERROR(GL_INVALID_ENUM); } ERROR_IN_BLOCK(); block_t *block = state.block.active = bl_new(mode); displaylist_t *list = state.list.active; if (list) { dl_append_block(list, block); } } void glEnd() { block_t *block = state.block.active; if (! block) { ERROR(GL_INVALID_OPERATION); } state.block.active = NULL; bl_end(block); // render if we're not in a display list if (! state.list.active) { bl_draw(block); bl_free(block); } } void glVertex3f(GLfloat x, GLfloat y, GLfloat z) { block_t *block = state.block.active; if (block) { bl_vertex3f(block, x, y, z); } } void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) { block_t *block = state.block.active; if (block) { bl_track_normal(block); } GLfloat *normal = CURRENT->normal; normal[0] = nx; normal[1] = ny; normal[2] = nz; if (! block) { PUSH_IF_COMPILING(glNormal3f); LOAD_GLES(glNormal3f); gles_glNormal3f(nx, ny, nz); } } void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { block_t *block = state.block.active; if (block) { bl_track_color(block); } GLfloat *color = CURRENT->color; color[0] = red; color[1] = green; color[2] = blue; color[3] = alpha; #ifndef USE_ES2 if (! block) { PUSH_IF_COMPILING(glColor4f); LOAD_GLES(glColor4f); gles_glColor4f(red, green, blue, alpha); } #endif } void glTexCoord2f(GLfloat s, GLfloat t) { glMultiTexCoord2f(GL_TEXTURE0, s, t); } void glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t) { block_t *block = state.block.active; if (block) { bl_track_tex(block, target); } GLfloat *tex = CURRENT->tex[target - GL_TEXTURE0]; tex[0] = s; tex[1] = t; if (! block) { PUSH_IF_COMPILING(glMultiTexCoord2f); } } void glArrayElement(GLint i) { if (i < 0) { ERROR(GL_INVALID_VALUE); } GLfloat *v, buf[4]; pointer_state_t *p; p = &state.pointers.color; if (state.enable.color_array && p->pointer) { v = gl_pointer_index(p, i, buf); GLuint scale = gl_max_value(p->type); // color[3] defaults to 1.0f if (p->size < 4) v[3] = 1.0f; // scale color coordinates to a 0 - 1.0 range for (int i = 0; i < p->size; i++) { v[i] /= scale; } glColor4fv(v); } p = &state.pointers.normal; if (state.enable.normal_array && p->pointer) { v = gl_pointer_index(p, i, buf); glNormal3fv(v); } for (int i = 0; i < MAX_TEX; i++) { p = &state.pointers.tex_coord[i]; if (state.enable.tex_coord_array[i] && p->pointer) { v = gl_pointer_index(p, i, buf); glMultiTexCoord2fv(GL_TEXTURE0 + i, v); } } p = &state.pointers.vertex; if (state.enable.vertex_array && p->pointer) { v = gl_pointer_index(p, i, buf); if (p->size == 4) { glVertex4fv(v); } else { glVertex3fv(v); } } } // TODO: between a lock and unlock, I can assume the array pointers are unchanged // so I can build a block_t on the first call and hold onto it // maybe I need a way to call a block_t with (first, count) void glLockArraysEXT(GLint first, GLsizei count) { state.block.locked = true; } void glUnlockArraysEXT() { state.block.locked = false; } // display lists static displaylist_t *get_list(GLuint list) { return tack_get(&state.lists, list - 1); } GLuint glGenLists(GLsizei range) { if (range < 0) { gl_set_error(GL_INVALID_VALUE); return 0; } if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return 0; } int start = tack_len(&state.lists); for (int i = 0; i < range; i++) { tack_set(&state.lists, start + i, NULL); } return start + 1; } void glNewList(GLuint list, GLenum mode) { // TODO: make sure this doesn't break anything if (list == 0) { ERROR(GL_INVALID_VALUE); } if (mode != GL_COMPILE && mode != GL_COMPILE_AND_EXECUTE) { ERROR(GL_INVALID_ENUM); } if (state.block.active || state.list.active) { ERROR(GL_INVALID_OPERATION); } displaylist_t *dl = dl_alloc(); if (dl == NULL) { ERROR(GL_OUT_OF_MEMORY); } state.list.name = list; state.list.mode = mode; state.list.active = dl; } void glEndList() { GLuint list = state.list.name; displaylist_t *dl = state.list.active; if (!dl || state.block.active) { ERROR(GL_INVALID_OPERATION); } displaylist_t *old = get_list(list); if (old) { dl_free(old); } tack_set(&state.lists, list - 1, dl); state.list.active = NULL; if (state.list.mode == GL_COMPILE_AND_EXECUTE) { glCallList(list); } } void glCallList(GLuint list) { displaylist_t *l = get_list(list); displaylist_t *active = state.list.active; if (l) { if (active) { dl_extend(active, l); } else { dl_call(l); } } } void glPushCall(void *call) { displaylist_t *active = state.list.active; if (active) { dl_append(active, call); } } void glCallLists(GLsizei n, GLenum type, const GLvoid *lists) { #define call(name, type) \ case name: glCallList(((type *)lists)[i] + state.list.base); break // seriously wtf #define call_bytes(name, stride) \ case name: \ l = (GLubyte *)lists; \ list = 0; \ for (j = 0; j < stride; j++) { \ list += *(l + (i * stride + j)) << (stride - j); \ } \ glCallList(list + state.list.base); \ break if (n < 0) { ERROR(GL_INVALID_VALUE); } unsigned int i, j; GLuint list; GLubyte *l; for (i = 0; i < n; i++) { switch (type) { call(GL_BYTE, GLbyte); call(GL_UNSIGNED_BYTE, GLubyte); call(GL_SHORT, GLshort); call(GL_UNSIGNED_SHORT, GLushort); call(GL_INT, GLint); call(GL_UNSIGNED_INT, GLuint); call(GL_FLOAT, GLfloat); call_bytes(GL_2_BYTES, 2); call_bytes(GL_3_BYTES, 3); call_bytes(GL_4_BYTES, 4); default: ERROR(GL_INVALID_ENUM); } } #undef call #undef call_bytes } void glDeleteList(GLuint list) { displaylist_t *l = get_list(list); if (l) { if (state.list.active == l) { state.list.active = NULL; } dl_free(l); tack_set(&state.lists, list - 1, NULL); } // lists just grow upwards, maybe use a better storage mechanism? } void glDeleteLists(GLuint list, GLsizei range) { if (range < 0) { ERROR(GL_INVALID_VALUE); } ERROR_IN_BLOCK(); for (int i = 0; i < range; i++) { glDeleteList(list + i); } } void glListBase(GLuint base) { state.list.base = base; } GLboolean glIsList(GLuint list) { if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return 0; } return get_list(list) ? true : false; } |
Added jni/glshim/src/gl/gl.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <dlfcn.h> #include <inttypes.h> #include <math.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "types.h" #ifdef __linux__ #include <linux/limits.h> #endif #ifndef PATH_MAX #define PATH_MAX 254 #endif #ifdef __ARM_NEON__ #include <arm_neon.h> #endif #ifndef GL_H #define GL_H #include "../config.h" #include "wrap/es.h" #define CURRENT (state.list.active ? &state.list.current : &state.current) #include "gl_helpers.h" #include "defines.h" #endif |
Added jni/glshim/src/gl/light.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include "error.h" #include "gl_str.h" #include "light.h" #include "loader.h" #include "matrix.h" #ifndef USE_ES2 void glLightModelf(GLenum pname, GLfloat param) { LOAD_GLES(glLightModelf); ERROR_IN_BLOCK(); switch (pname) { case GL_LIGHT_MODEL_AMBIENT: case GL_LIGHT_MODEL_TWO_SIDE: gles_glLightModelf(pname, param); default: printf("stubbed glLightModelf(%s, %.2f)\n", gl_str(pname), param); break; } } void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) { PUSH_IF_COMPILING(glMaterialfv); LOAD_GLES(glMaterialfv); gles_glMaterialfv(GL_FRONT_AND_BACK, pname, params); } #ifdef LOCAL_MATRIX void glLightfv(GLenum light, GLenum pname, const GLfloat *params) { LOAD_GLES(glLightfv); ERROR_IN_BLOCK(); GLfloat tmp[4]; switch (pname) { case GL_POSITION: gl_transform_light(tmp, params); params = tmp; default: gles_glLightfv(light, pname, params); break; } } #endif #endif |
Added jni/glshim/src/gl/light.h.
> > > | 1 2 3 | #include "gl.h" void glLightModelf(GLenum pname, GLfloat param); |
Added jni/glshim/src/gl/line.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include "line.h" void glLineStipple(GLint factor, GLushort pattern) { state.stippleFactor = factor; state.stipplePattern = pattern; if (state.stippleData != NULL) { free(state.stippleData); } state.stippleData = (GLubyte *)malloc(sizeof(GLubyte) * 16); for (int i = 0; i < 16; i++) { state.stippleData[i] = (state.stipplePattern >> i) & 1 ? 255 : 0; } glPushAttrib(GL_TEXTURE_BIT); if (! state.stippleTexture) glGenTextures(1, &state.stippleTexture); glBindTexture(GL_TEXTURE_2D, state.stippleTexture); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 16, 1, 0, GL_ALPHA, GL_UNSIGNED_BYTE, state.stippleData); glPopAttrib(); } void bind_stipple_tex() { glBindTexture(GL_TEXTURE_2D, state.stippleTexture); } GLfloat *gen_stipple_tex_coords(GLfloat *vert, int length) { // generate our texture coords GLfloat *tex = (GLfloat *)malloc(length * 2 * sizeof(GLfloat)); GLfloat *texPos = tex; GLfloat *vertPos = vert; GLfloat x1, x2, y1, y2; GLfloat len; for (int i = 0; i < length / 2; i++) { x1 = *vertPos++; y1 = *vertPos++; vertPos++; // z x2 = *vertPos++; y2 = *vertPos++; vertPos++; len = sqrt(pow(x2-x1, 2) + pow(y2-y1, 2)) / state.stippleFactor * 16; *texPos++ = 0; *texPos++ = 0; *texPos++ = len; *texPos++ = 0; } return tex; } |
Added jni/glshim/src/gl/line.h.
> > > > | 1 2 3 4 | #include "gl.h" extern GLfloat *gen_stipple_tex_coords(GLfloat *vert, int length); extern void bind_stipple_tex(); |
Added jni/glshim/src/gl/list.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #include <stdio.h> #include "block.h" #include "gl.h" #include "list.h" displaylist_t *dl_alloc() { displaylist_t *dl = calloc(1, sizeof(displaylist_t)); if (dl != NULL) { dl->open = true; } return dl; } void dl_free(displaylist_t *dl) { int len = tack_len(&dl->calls); for (int i = 0; i < len; i++) { dl_decref(tack_get(&dl->calls, i)); } free(dl); tack_clear(&dl->calls); } void dl_incref(packed_call_t *call) { call->refs++; } void dl_decref(packed_call_t *call) { // TODO: thread safety? if (--call->refs == 0) { if (call->format == RENDER_BLOCK_FORMAT) { block_call_t *bcall = (block_call_t *)call; bl_free(bcall->block); } free(call); } } void dl_append(displaylist_t *dl, packed_call_t *call) { if (! dl->open) { printf("libGL: warning: trying to append to closed display list\n"); return; } tack_push(&dl->calls, call); dl_incref(call); } void dl_append_block(displaylist_t *dl, block_t *block) { block_call_t *call = malloc(sizeof(block_call_t)); call->format = RENDER_BLOCK_FORMAT; call->refs = 0; call->block = block; dl_append(dl, (packed_call_t *)call); } void dl_extend(displaylist_t *dl, displaylist_t *append) { int len = tack_len(&append->calls); for (int i = 0; i < len; i++) { // TODO: reference count dl_append(dl, tack_get(&append->calls, i)); } } void dl_close(displaylist_t *dl) { dl->open = false; } void dl_call(displaylist_t *dl) { int len = tack_len(&dl->calls); for (int i = 0; i < len; i++) { packed_call_t *call = tack_get(&dl->calls, i); switch (call->format) { case RENDER_BLOCK_FORMAT: { block_t *block = ((block_call_t *)call)->block; bl_draw(block); bl_pollute(block); break; } default: glPackedCall(call); break; } } } |
Added jni/glshim/src/gl/list.h.
> > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #ifndef DISPLAYLIST_H #define DISPLAYLIST_H #include <GL/gl.h> #include <stdbool.h> #include <stdint.h> #include "types.h" extern displaylist_t *dl_alloc(); extern void dl_append(displaylist_t *dl, packed_call_t *call); extern void dl_append_block(displaylist_t *dl, block_t *block); extern void dl_call(displaylist_t *dl); extern void dl_close(displaylist_t *dl); extern void dl_decref(packed_call_t *call); extern void dl_extend(displaylist_t *dl, displaylist_t *append); extern void dl_free(displaylist_t *dl); extern void dl_incref(packed_call_t *call); #endif |
Added jni/glshim/src/gl/loader.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include "loader.h" void *gles = NULL; static const char *lib_ext[] = { "so", "so.1", "so.2", "dylib", "dll", NULL, }; static const char *gles_lib[] = { #ifdef USE_ES2 "libGLESv2_CM", "libGLESv2", #else "libGLESv1_CM", "libGLES_CM", #endif // USE_ES2 NULL }; void *open_lib(const char **names, const char *override) { void *lib = NULL; char path_name[PATH_MAX + 1]; int flags = RTLD_LOCAL | RTLD_NOW; #ifdef RTLD_DEEPBIND flags |= RTLD_DEEPBIND; #endif if (override) { if ((lib = dlopen(override, flags))) { strncpy(path_name, override, PATH_MAX); printf("loaded library: %s\n", path_name); return lib; } } for (int i = 0; names[i]; i++) { for (int e = 0; lib_ext[e]; e++) { snprintf(path_name, PATH_MAX, "%s.%s", names[i], lib_ext[e]); if ((lib = dlopen(path_name, flags))) { printf("loaded library: %s\n", path_name); return lib; } } } return lib; } void load_gles_lib() { if (gles) { return; } char *override = getenv("LIBGL_GLES"); gles = open_lib(gles_lib, override); WARN_NULL(gles); } |
Added jni/glshim/src/gl/loader.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #ifndef LOADER_H #define LOADER_H #include <dlfcn.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef ANDROID #include <android/log.h> #endif #include "const.h" #ifdef USE_ES2 #include "wrap/gles2.h" #else #include "wrap/gles.h" #endif // will become references to dlopen'd gles extern void *gles; extern void *open_lib(const char **names, const char *override); extern void load_gles_lib(); #ifndef WARN_NULL #ifdef ANDROID #define WARN_NULL(name) if (name == NULL) __android_log_print(ANDROID_LOG_ERROR, "libGL", "'%s' is NULL", #name); #else #define WARN_NULL(name) if (name == NULL) printf("libGL: warning, " #name " is NULL\n"); #endif #endif #ifndef LOAD_RAW #define LOAD_RAW(lib, name, ...) \ static name##_PTR lib##_##name; \ { \ static bool first = true; \ if (first) { \ first = false; \ if (lib == NULL) { \ load_##lib##_lib(); \ } \ if (lib != NULL) { \ lib##_##name = (name##_PTR)__VA_ARGS__; \ } \ } \ } #endif #define LOAD_LIB(lib, name) LOAD_RAW(lib, name, dlsym(lib, #name)) #define LOAD_GLES(name) \ LOAD_GLES_SILENT(name); \ WARN_NULL(gles_##name); #define LOAD_OES(name) \ LOAD_GLES_SILENT(name); \ WARN_NULL(gles_##name); #define LOAD_GLES_SILENT(name) LOAD_LIB(gles, name) #ifndef PUSH_IF_COMPILING_EXT #define PUSH_IF_COMPILING_EXT(name, ...) \ if (state.list.active) { \ push_##name(__VA_ARGS__); \ return (name##_RETURN)0; \ } #endif #ifndef PUSH_IF_COMPILING #define PUSH_IF_COMPILING(name) PUSH_IF_COMPILING_EXT(name, name##_ARG_NAMES) #endif #ifndef PROXY #define PROXY(load_name, lib, name) \ LOAD_##load_name(name); \ if (lib##_##name != NULL) { \ return lib##_##name(name##_ARG_NAMES); \ } #endif #define PROXY_GLES(name) PROXY(GLES_SILENT, gles, name) #define PROXY_OES(name) PROXY(OES, gles, name) #endif |
Added jni/glshim/src/gl/matrix.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | #include "error.h" #include "loader.h" #include "matrix.h" #include "types.h" #include "vectorial/simd4f.h" #include "vectorial/simd4x4f.h" #ifdef LOCAL_MATRIX #define PROXY_MATRIX(name) #else #define PROXY_MATRIX(name) PROXY_GLES(name) #endif // helper functions static matrix_state_t *get_matrix_state(GLenum mode) { matrix_state_t *m; switch (mode) { case GL_MODELVIEW: m = &state.matrix.model; break; case GL_PROJECTION: m = &state.matrix.projection; break; case GL_TEXTURE: m = &state.matrix.texture[state.texture.client]; break; /* defined in ARB_imaging extension case GL_COLOR: m = &state.matrix.color; break; */ } if (! m->init) { simd4x4f_identity(&m->matrix); m->init = true; } return m; } static void transpose(GLfloat *out, const GLfloat *m) { simd4x4f tmp; simd4x4f_uload(&tmp, m); simd4x4f_transpose_inplace(&tmp); simd4x4f_ustore(&tmp, out); } static simd4x4f *get_matrix(GLenum mode) { return &get_matrix_state(mode)->matrix; } static simd4x4f *get_current_matrix() { return get_matrix(state.matrix.mode); } static matrix_state_t *get_current_state() { return get_matrix_state(state.matrix.mode); } static void update_mvp() { simd4x4f *model = get_matrix(GL_MODELVIEW); simd4x4f *projection = get_matrix(GL_PROJECTION); simd4x4f_matrix_mul(projection, model, &state.mvp); state.mvp_dirty = false; } static void upload_matrix() { LOAD_GLES(glLoadMatrixf); GLfloat tmp[16]; simd4x4f_ustore(get_current_matrix(), tmp); gles_glLoadMatrixf(tmp); } // GL matrix functions void glLoadIdentity() { PUSH_IF_COMPILING(glLoadIdentity); ERROR_IN_BLOCK(); state.mvp_dirty = true; simd4x4f_identity(get_current_matrix()); PROXY_MATRIX(glLoadIdentity); } void glLoadMatrixf(const GLfloat *m) { PUSH_IF_COMPILING(glLoadMatrixf); ERROR_IN_BLOCK(); state.mvp_dirty = true; simd4x4f_uload(get_current_matrix(), m); PROXY_MATRIX(glLoadMatrixf); } void glLoadTransposeMatrixf(const GLfloat *m) { PUSH_IF_COMPILING(glLoadTransposeMatrixf); ERROR_IN_BLOCK(); GLfloat tmp[16]; transpose(tmp, m); glLoadMatrixf(tmp); } void glMatrixMode(GLenum mode) { PUSH_IF_COMPILING(glMatrixMode); ERROR_IN_BLOCK(); switch (mode) { case GL_MODELVIEW: case GL_PROJECTION: case GL_TEXTURE: case GL_COLOR: break; default: ERROR(GL_INVALID_ENUM); } state.matrix.mode = mode; PROXY_MATRIX(glMatrixMode); } void glMultMatrixf(const GLfloat *m) { PUSH_IF_COMPILING(glMultMatrixf); ERROR_IN_BLOCK(); state.mvp_dirty = true; simd4x4f out, load, *cur = get_current_matrix(); simd4x4f_uload(&load, m); simd4x4f_matrix_mul(cur, &load, &out); *cur = out; upload_matrix(); } void glMultTransposeMatrixf(const GLfloat *m) { PUSH_IF_COMPILING(glMultTransposeMatrixf); ERROR_IN_BLOCK(); GLfloat tmp[16]; transpose(tmp, m); glMultMatrixf(tmp); } void glPopMatrix() { PUSH_IF_COMPILING(glPopMatrix); ERROR_IN_BLOCK(); state.mvp_dirty = true; matrix_state_t *m = get_current_state(); simd4x4f *top = tack_pop(&m->stack); if (top == NULL) { ERROR(GL_STACK_UNDERFLOW); } m->matrix = *top; free(top); upload_matrix(); } void glPushMatrix() { PUSH_IF_COMPILING(glPushMatrix); ERROR_IN_BLOCK(); matrix_state_t *m = get_current_state(); simd4x4f *push = malloc(sizeof(simd4x4f)); *push = m->matrix; tack_push(&m->stack, push); } // GL transform functions void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { PUSH_IF_COMPILING(glRotatef); ERROR_IN_BLOCK(); state.mvp_dirty = true; float radians = angle * VECTORIAL_PI / 180; simd4x4f *m = get_current_matrix(), rotate, out; simd4x4f_axis_rotation(&rotate, radians, simd4f_create(x, y, z, 1.0f)); simd4x4f_matrix_mul(m, &rotate, &out); *m = out; upload_matrix(); } void glScalef(GLfloat x, GLfloat y, GLfloat z) { PUSH_IF_COMPILING(glScalef); ERROR_IN_BLOCK(); state.mvp_dirty = true; simd4x4f *m = get_current_matrix(), scale, out; simd4x4f_scaling(&scale, x, y, z); simd4x4f_matrix_mul(m, &scale, &out); *m = out; upload_matrix(); } void glTranslatef(GLfloat x, GLfloat y, GLfloat z) { PUSH_IF_COMPILING(glTranslatef); ERROR_IN_BLOCK(); state.mvp_dirty = true; simd4x4f *m = get_current_matrix(), translate, out; simd4x4f_translation(&translate, x, y, z); simd4x4f_matrix_mul(m, &translate, &out); *m = out; upload_matrix(); } void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { PUSH_IF_COMPILING(glOrthof); ERROR_IN_BLOCK(); if (left == right || bottom == top || near == far) { ERROR(GL_INVALID_VALUE); } state.mvp_dirty = true; simd4x4f *m = get_current_matrix(), ortho, out; simd4x4f_ortho(&ortho, left, right, bottom, top, near, far); simd4x4f_matrix_mul(m, &ortho, &out); *m = out; upload_matrix(); } void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { PUSH_IF_COMPILING(glFrustumf); ERROR_IN_BLOCK(); if (near < 0 || far < 0 || left == right || bottom == top || near == far) { ERROR(GL_INVALID_VALUE); } state.mvp_dirty = true; simd4x4f *m = get_current_matrix(), frustum, out; simd4x4f_frustum(&frustum, left, right, bottom, top, near, far); simd4x4f_matrix_mul(m, &frustum, &out); *m = out; upload_matrix(); } void gl_get_matrix(GLenum mode, GLfloat *out) { simd4x4f_ustore(get_matrix(mode), out); } void gl_transform_light(GLfloat out[4], const GLfloat in[4]) { simd4x4f *model = get_matrix(GL_MODELVIEW); simd4f coord = simd4f_create(in[0], in[1], in[2], in[3]); simd4f tmp; simd4x4f_matrix_vector_mul(model, &coord, &tmp); simd4f_ustore4(coord, out); } void gl_transform_texture(GLenum texture, GLfloat out[2], const GLfloat in[2]) { matrix_state_t *unit = &state.matrix.texture[texture - GL_TEXTURE0]; if (! unit->init) { out[0] = in[0]; out[1] = in[1]; } else { simd4f coord = simd4f_create(in[0], in[1], 0.0f, 1.0f); simd4f tmp; simd4x4f_matrix_vector_mul(&unit->matrix, &coord, &tmp); simd4f_ustore2(coord, out); } } void gl_transform_vertex(GLfloat out[3], GLfloat in[3]) { if (state.mvp_dirty) { update_mvp(); } simd4f tmp, vert = simd4f_create(in[0], in[1], in[2], 1); simd4x4f_matrix_vector_mul(&state.mvp, &vert, &tmp); tmp = simd4f_div(tmp, simd4f_splat_w(tmp)); simd4f_ustore3(tmp, out); } |
Added jni/glshim/src/gl/matrix.h.
> > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #ifndef GL_MATRIX_H #define GL_MATRIX_H #include <GL/gl.h> void glLoadIdentity(); void glLoadMatrixf(const GLfloat *m); void glMatrixMode(GLenum mode); void glMultMatrixf(const GLfloat *m); void glPopMatrix(); void glPushMatrix(); void gl_get_matrix(GLenum mode, GLfloat *out); void gl_transform_light(GLfloat out[3], const GLfloat in[3]); void gl_transform_texture(GLenum texture, GLfloat out[2], const GLfloat in[2]); void gl_transform_vertex(GLfloat out[3], GLfloat in[3]); #endif |
Added jni/glshim/src/gl/pixel.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | #include <stdio.h> #include <stdlib.h> #include <string.h> #include "pixel.h" #include "gl_helpers.h" #include "gl_str.h" static const colorlayout_t *get_color_map(GLenum format) { #define map(fmt, ...) \ case fmt: { \ static colorlayout_t layout = {fmt, __VA_ARGS__}; \ return &layout; } switch (format) { map(GL_ALPHA, -1, -1, -1, 0); map(GL_BGR, 2, 1, 0, -1); map(GL_BGRA, 2, 1, 0, 3); map(GL_LUMINANCE, 0, 0, 0, -1); map(GL_LUMINANCE_ALPHA, 0, 0, 0, 1); map(GL_RED, 0, -1, -1, -1); map(GL_RG, 0, 1, -1, -1); map(GL_RGB, 0, 1, 2, -1); map(GL_RGBA, 0, 1, 2, 3); default: fprintf(stderr, "get_color_map(): Unsupported pixel format %s\n", gl_str(format)); break; } static colorlayout_t null = {0}; return &null; #undef map } static inline bool remap_pixel(const GLvoid *src, GLvoid *dst, const colorlayout_t *src_color, GLenum src_type, const colorlayout_t *dst_color, GLenum dst_type) { #define type_case(constant, type, ...) \ case constant: { \ const type *s = (const type *)src; \ type *d = (type *)dst; \ type v = *s; \ __VA_ARGS__ \ break; \ } #define default(arr, amod, vmod, key, def) \ key >= 0 ? arr[amod key] vmod : def #define carefully(arr, amod, key, value) \ if (key >= 0) d[amod key] = value; #define read_each(amod, vmod) \ pixel.r = default(s, amod, vmod, src_color->red, 0); \ pixel.g = default(s, amod, vmod, src_color->green, 0); \ pixel.b = default(s, amod, vmod, src_color->blue, 0); \ pixel.a = default(s, amod, vmod, src_color->alpha, 1.0f); #define write_each(amod, vmod) \ carefully(d, amod, dst_color->red, pixel.r vmod) \ carefully(d, amod, dst_color->green, pixel.g vmod) \ carefully(d, amod, dst_color->blue, pixel.b vmod) \ carefully(d, amod, dst_color->alpha, pixel.a vmod) // this pixel stores our intermediate color // it will be RGBA and normalized to between (0.0 - 1.0f) pixel_t pixel; switch (src_type) { type_case(GL_DOUBLE, GLdouble, read_each(,)) type_case(GL_FLOAT, GLfloat, read_each(,)) case GL_UNSIGNED_INT_8_8_8_8_REV: type_case(GL_UNSIGNED_BYTE, GLubyte, read_each(, / 255.0f)) type_case(GL_UNSIGNED_INT_8_8_8_8, GLubyte, read_each(3 - , / 255.0f)) type_case(GL_UNSIGNED_SHORT_1_5_5_5_REV, GLushort, s = (GLushort[]){ v & 31, ((v & 0x03e0) >> 5), ((v & 0x7c00) >> 10), ((v & 0x8000) >> 15)* 31, }; read_each(, / 31.0f); ) default: // TODO: add glSetError? fprintf(stderr, "remap_pixel(): Unsupported source data type: %s\n", gl_str(src_type)); return false; break; } switch (dst_type) { type_case(GL_FLOAT, GLfloat, write_each(,)) type_case(GL_UNSIGNED_BYTE, GLubyte, write_each(, * 255.0)) // TODO: force 565 to RGB? then we can change [4] -> 3 type_case(GL_UNSIGNED_SHORT_5_6_5, GLushort, GLfloat color[3]; color[dst_color->red] = pixel.r; color[dst_color->green] = pixel.g; color[dst_color->blue] = pixel.b; *d = (((GLuint)(color[0] * 31) & 0x1f) << 11) | (((GLuint)(color[1] * 63) & 0x3f) << 5) | (((GLuint)(color[2] * 31) & 0x1f)); ) type_case(GL_UNSIGNED_SHORT_5_5_5_1, GLushort, GLfloat color[4]; color[dst_color->red] = pixel.r; color[dst_color->green] = pixel.g; color[dst_color->blue] = pixel.b; color[dst_color->alpha] = pixel.a; // TODO: can I macro this or something? it follows a pretty strict form. *d = (((GLuint)(color[0] * 31) & 0x1f) << 0) | (((GLuint)(color[1] * 31) & 0x1f) << 5) | (((GLuint)(color[2] * 31) & 0x1f) << 10) | (((GLuint)(color[3] * 1) & 0x01) << 15); ) type_case(GL_UNSIGNED_SHORT_4_4_4_4, GLushort, GLfloat color[4]; color[dst_color->red] = pixel.r; color[dst_color->green] = pixel.g; color[dst_color->blue] = pixel.b; color[dst_color->alpha] = pixel.a; *d = (((GLushort)(color[0] * 15) & 0x0f) << 12) | (((GLushort)(color[1] * 15) & 0x0f) << 8) | (((GLushort)(color[2] * 15) & 0x0f) << 4) | (((GLushort)(color[3] * 15) & 0x0f)); ) default: fprintf(stderr, "remap_pixel(): Unsupported target data type: %s\n", gl_str(dst_type)); return false; break; } return true; #undef type_case #undef default #undef carefully #undef read_each #undef write_each } bool pixel_convert_direct(const GLvoid *src, GLvoid *dst, GLuint width, GLenum src_format, GLenum src_type, GLsizei src_stride, GLenum dst_format, GLenum dst_type, GLsizei dst_stride) { const colorlayout_t *src_color, *dst_color; src_color = get_color_map(src_format); dst_color = get_color_map(dst_format); uintptr_t src_pos = (uintptr_t)src; uintptr_t dst_pos = (uintptr_t)dst; for (int i = 0; i < width; i++) { if (! remap_pixel((const GLvoid *)src_pos, (GLvoid *)dst_pos, src_color, src_type, dst_color, dst_type)) { // checking a boolean for each pixel like this might be a slowdown? // probably depends on how well branch prediction performs return false; } src_pos += src_stride; dst_pos += dst_stride; } return true; } bool pixel_convert(const GLvoid *src, GLvoid **dst, GLuint width, GLuint height, GLenum src_format, GLenum src_type, GLenum dst_format, GLenum dst_type) { const colorlayout_t *src_color, *dst_color; GLuint pixels = width * height; GLuint dst_size = pixels * gl_pixel_sizeof(dst_format, dst_type); src_color = get_color_map(src_format); dst_color = get_color_map(dst_format); if (!dst_size || !gl_pixel_sizeof(src_format, src_type) || !src_color->type || !dst_color->type) return false; if (src_type == dst_type && src_color->type == dst_color->type) { if (*dst != src) { *dst = malloc(dst_size); memcpy(*dst, src, dst_size); return true; } } else { GLsizei src_stride = gl_pixel_sizeof(src_format, src_type); GLsizei dst_stride = gl_pixel_sizeof(dst_format, dst_type); *dst = malloc(dst_size); return pixel_convert_direct( src, *dst, pixels, src_format, src_type, src_stride, dst_format, dst_type, dst_stride); } return false; } bool pixel_scale(const GLvoid *old, GLvoid **new, GLuint width, GLuint height, GLfloat ratio, GLenum format, GLenum type) { GLuint pixel_size, new_width, new_height; new_width = width * ratio; new_height = height * ratio; fprintf(stderr, "scaling %ux%u -> %ux%u\n", width, height, new_width, new_height); GLvoid *dst; uintptr_t src, pos, pixel; pixel_size = gl_pixel_sizeof(format, type); dst = malloc(pixel_size * new_width * new_height); src = (uintptr_t)old; pos = (uintptr_t)dst; for (int x = 0; x < new_width; x++) { for (int y = 0; y < new_height; y++) { pixel = src + (x / ratio) + (y / ratio) * width; memcpy((GLvoid *)pos, (GLvoid *)pixel, pixel_size); pos += pixel_size; } } *new = dst; return true; } bool pixel_to_ppm(const GLvoid *pixels, GLuint width, GLuint height, GLenum format, GLenum type, GLuint name) { if (! pixels) return false; const GLvoid *src; char filename[64]; int size = 4 * 3 * width * height; if (format == GL_RGB && type == GL_UNSIGNED_BYTE) { src = pixels; } else { if (! pixel_convert(pixels, (GLvoid **)&src, width, height, format, type, GL_RGB, GL_UNSIGNED_BYTE)) { return false; } } snprintf(filename, 64, "/tmp/tex.%d.ppm", name); FILE *fd = fopen(filename, "w"); fprintf(fd, "P6 %d %d %d\n", width, height, 255); fwrite(src, 1, size, fd); fclose(fd); return true; } |
Added jni/glshim/src/gl/pixel.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #ifndef PIXEL_H #define PIXEL_H #include <GL/gl.h> #include <stdbool.h> typedef struct { GLenum type; GLint red, green, blue, alpha; } colorlayout_t; typedef struct { GLfloat r, g, b, a; } pixel_t; bool pixel_convert(const GLvoid *src, GLvoid **dst, GLuint width, GLuint height, GLenum src_format, GLenum src_type, GLenum dst_format, GLenum dst_type); bool pixel_convert_direct(const GLvoid *src, GLvoid *dst, GLuint pixels, GLenum src_format, GLenum src_type, GLsizei src_stride, GLenum dst_format, GLenum dst_type, GLsizei dst_stride); bool pixel_scale(const GLvoid *src, GLvoid **dst, GLuint width, GLuint height, GLfloat ratio, GLenum format, GLenum type); bool pixel_to_ppm(const GLvoid *pixels, GLuint width, GLuint height, GLenum format, GLenum type, GLuint name); #endif |
Added jni/glshim/src/gl/raster.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | #include "error.h" #include "loader.h" #include "pixel.h" #include "raster.h" #include "texture.h" /* raster engine: we render pixels to memory somewhere until someone else wants to use the framebuffer then we throw 'em quickly into a texture, render to the whole screen then let the other function do their thing */ // TODO: glWindowPos void glRasterPos3f(GLfloat x, GLfloat y, GLfloat z) { if (state.block.active) { ERROR(GL_INVALID_OPERATION); } PROXY_GLES(glRasterPos3f); raster_state_t *raster = &state.raster; // TODO: glRasterPos4f? // TODO: actually project, and clear the valid bit if we end up outside the viewport raster->pos.x = x; raster->pos.y = y; raster->pos.z = z; raster->valid = 1; GLuint *dst = NULL; GLfloat *color = raster->color; if (pixel_convert(CURRENT->color, (GLvoid **)&dst, 1, 1, GL_RGBA, GL_FLOAT, GL_RGBA, GL_UNSIGNED_BYTE)) { memcpy(color, CURRENT->color, sizeof(GLfloat) * 4); raster->pixel = *dst; free(dst); } else { for (int i = 0; i < 4; i++) { color[i] = 1.0f; } raster->pixel = 0xFFFFFFFF; } } void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { PUSH_IF_COMPILING(glViewport); PROXY_GLES(glViewport); if (state.raster.buf) { render_raster(); } gles_glViewport(x, y, width, height); viewport_state_t *viewport = &state.viewport; viewport->x = x; viewport->y = y; viewport->width = width; viewport->height = height; viewport->nwidth = npot(width); viewport->nheight = npot(height); } void init_raster() { if (!state.viewport.width || !state.viewport.height) { glGetIntegerv(GL_VIEWPORT, (GLint *)&state.viewport); state.viewport.nwidth = npot(state.viewport.width); state.viewport.nheight = npot(state.viewport.height); } if (! state.raster.buf) { state.raster.buf = (GLubyte *)malloc(4 * state.viewport.nwidth * state.viewport.nheight * sizeof(GLubyte)); } } void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) { PROXY_GLES(glBitmap); raster_state_t *raster = &state.raster; if (! raster->valid) { return; } // TODO: negative width/height mirrors bitmap? if (!width && !height) { raster->pos.x += xmove; raster->pos.y -= ymove; return; } init_raster(); const GLubyte *from; GLuint *to; int x, y; // copy to pixel data // TODO: strip blank lines and mirror vertically? for (y = 0; y < height; y++) { to = (GLuint *)raster->buf + (GLuint)(raster->pos.x + ((raster->pos.y - y) * state.viewport.nwidth)); from = bitmap + (y * 2); for (x = 0; x < width; x += 8) { if (raster->pos.x + x > state.viewport.width || raster->pos.y - y > state.viewport.height) continue; GLubyte b = *from++; for (int j = 8; j--; ) { *to++ = (b & (1 << j)) ? raster->pixel : 0; } } } raster->pos.x += xmove; raster->pos.y += ymove; } void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data) { raster_state_t *raster = &state.raster; if (! raster->valid) { return; } const GLubyte *from, *pixels = data; GLubyte *to; GLvoid *dst = NULL; PROXY_GLES(glDrawPixels); init_raster(); if (! pixel_convert(data, &dst, width, height, format, type, GL_RGBA, GL_UNSIGNED_BYTE)) { return; } pixels = (GLubyte *)dst; // shrink our pixel ranges to stay inside the viewport int ystart = MAX(0, -raster->pos.y); height = MIN(raster->pos.y, height); int xstart = MAX(0, -raster->pos.x); int screen_width = MIN(state.viewport.width - raster->pos.x, width); for (int y = ystart; y < height; y++) { to = raster->buf + 4 * (GLuint)(raster->pos.x + ((raster->pos.y - y) * state.viewport.nwidth)); from = pixels + 4 * (xstart + y * width); memcpy(to, from, 4 * screen_width); } if (pixels != data) free((void *)pixels); } void render_raster() { if (!state.viewport.width || !state.viewport.height || !state.raster.buf) return; // FIXME #ifndef USE_ES2 glPushAttrib(GL_TEXTURE_BIT | GL_ENABLE_BIT); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); GLfloat vert[] = { -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0, }; float sw = state.viewport.width / (GLfloat)state.viewport.nwidth; float sh = state.viewport.height / (GLfloat)state.viewport.nheight; GLfloat tex[] = { 0, sh, sw, sh, sw, 0, 0, 0, }; glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT | GL_CLIENT_PIXEL_STORE_BIT); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glVertexPointer(3, GL_FLOAT, 0, vert); glTexCoordPointer(2, GL_FLOAT, 0, tex); glEnable(GL_BLEND); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE); GLuint texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glPixelStorei(GL_PACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); glPixelStorei(GL_UNPACK_SKIP_ROWS, 0); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, state.viewport.nwidth, state.viewport.nheight, 0, GL_RGBA, GL_UNSIGNED_BYTE, state.raster.buf); LOAD_GLES(glDrawArrays); gles_glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDeleteTextures(1, &texture); glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glPopClientAttrib(); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glPopAttrib(); #endif free(state.raster.buf); state.raster.buf = NULL; } |
Added jni/glshim/src/gl/raster.h.
> > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include "gl.h" #ifndef RASTER_H #define RASTER_H extern void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); extern void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data); extern void glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); extern void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); extern void render_raster(); #endif |
Added jni/glshim/src/gl/render.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 | #include <stdio.h> #include "defines.h" #include "error.h" #include "gl_str.h" #include "matrix.h" #include "types.h" GLint glRenderMode(GLenum mode) { // If the feedback data required more room than was available in buffer, glRenderMode returns a negative value int ret = 0; if (mode != GL_SELECT && mode != GL_FEEDBACK && mode != GL_RENDER) { gl_set_error(GL_INVALID_ENUM); return 0; } if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return 0; } if (state.render.mode == GL_SELECT) { ret = state.select.overflow ? -1 : state.select.count / 4; } else if (state.render.mode == GL_FEEDBACK) { ret = state.feedback.overflow ? -1 : state.feedback.values; } if (mode == GL_SELECT) { if (state.select.buffer == NULL) { gl_set_error(GL_INVALID_OPERATION); return 0; } state.select.count = 0; } else if (mode == GL_FEEDBACK) { if (state.feedback.buffer == NULL) { gl_set_error(GL_INVALID_OPERATION); return 0; } state.feedback.count = 0; } state.render.mode = mode; return ret; } void glInitNames() { ERROR_IN_BLOCK(); tack_clear(&state.select.names); } void glPopName() { ERROR_IN_BLOCK(); if (state.render.mode != GL_SELECT) { return; } if (tack_pop(&state.select.names) == NULL) { ERROR(GL_STACK_UNDERFLOW); } } void glPushName(GLuint name) { ERROR_IN_BLOCK(); if (state.render.mode != GL_SELECT) { return; } tack_push(&state.select.names, (void *) name); } void glLoadName(GLuint name) { if (state.render.mode != GL_SELECT) { return; } ERROR_IN_BLOCK(); int len = tack_len(&state.select.names); if (len > 0) { tack_set(&state.select.names, len - 1, (void *) name); } else { ERROR(GL_INVALID_OPERATION); } } void glSelectBuffer(GLsizei size, GLuint *buffer) { if (size < 0) { ERROR(GL_INVALID_VALUE); } if (state.block.active || state.render.mode == GL_SELECT) { ERROR(GL_INVALID_OPERATION); } state.feedback.overflow = false; state.select.buffer = buffer; state.select.size = size; } static bool test_point(GLfloat v[3]) { // test if a point is inside the viewport return (v[0] >= -1.0f && v[0] <= 1.0f && v[1] >= -1.0f && v[1] <= 1.0f); } static bool test_line(GLfloat a[3], GLfloat b[3]) { // test if a line intersects the viewport GLfloat vx, vy; vx = b[0] - a[0]; vy = b[1] - a[1]; GLfloat p[4] = {-vx, vx, -vy, vy}; GLfloat q[4] = {a[0] + 1.0f, -1.0f - a[0], a[1] + 1.0f, -1.0f - a[1]}; GLfloat u1 = -1e10; GLfloat u2 = 1e10; for (int i = 0; i < 4; i++) { if (p[i] == 0.0f) { if (q[i] < 0) { return false; } } else { GLfloat t = q[i] / p[i]; if ((p[i] < 0.0f) && (u1 < t)) { u1 = t; } else if ((p[i] > 0.0f) && (u2 > t)) { u2 = t; } } } if ((u1 > u2) || (u1 > 1) || (u1 < 0)) { return false; } return true; } static bool test_tri(GLfloat a[3], GLfloat b[3], GLfloat c[3]) { #define sign(p1, p2, p3) (p1[0]-p3[0])*(p2[1]-p3[1])-(p2[0]-p3[0])*(p1[1]-p3[1]) // test if the viewport is inside a triangle for (int i = 0; i < 4; i++) { bool b1, b2, b3; GLfloat pt[2] = { (i % 2) ? -1.0f : 1.0f, (i > 2) ? -1.0f : 1.0f, }; b1 = (sign(pt, a, b)) < 0.0f; b2 = (sign(pt, b, c)) < 0.0f; b3 = (sign(pt, c, a)) < 0.0f; if ((b1 == b2) && (b2 == b3)) { return true; } } return false; #undef sign } static inline int _index(block_t *block, int i) { if (block->indices) { i = block->indices[i]; } return i; } static inline GLfloat *_vert(block_t *block, int i) { return &block->vert[_index(block, i) * 3]; } static void select_match(block_t *block, GLfloat zmin, GLfloat zmax, int i) { #define push(val) state.select.buffer[state.select.count++] = val; GLfloat cur[3]; int len; for (; i < block->len; i++) { gl_transform_vertex(cur, _vert(block, i)); zmin = MIN(zmin, cur[2]); zmax = MAX(zmax, cur[2]); } if (zmin < 0.0f) { zmin = 0.0f; } if (zmax > 1.0f) { zmax = 1.0f; } len = tack_len(&state.select.names); if (state.select.count + 3 + len < state.select.size) { push(len); push(zmin * INT_MAX); push(zmax * INT_MAX); for (i = 0; i < len; i++) { push((GLuint) tack_peek_n(&state.select.names, i)); } } #undef push } void gl_select_block(block_t *block) { if (block->len == 0) { return; } GLfloat zmax = 0.0f, zmin = 1.0f; #define test(func, ...) if (test_##func(__VA_ARGS__)) { select_match(block, zmin, zmax, i); return; } #define test_point(a) test(point, a) #define test_line(a, b) test(line, a, b) #define test_tri(a, b, c) test(tri, a, b, c) GLfloat data[3][3], first[3], *tmp; GLfloat *a = data[0], *b = data[1], *c = data[2]; gl_transform_vertex(first, _vert(block, 0)); for (int i = 0; i < block->len; i++) { tmp = c; c = b; b = a; a = tmp; gl_transform_vertex(a, _vert(block, i)); zmin = MIN(zmin, a[2]); zmax = MAX(zmax, a[2]); switch (block->mode) { case GL_LINES: if (i % 2 == 1) { test_point(a); test_point(b); test_line(a, b); } break; case GL_LINE_LOOP: // catch the loop segment if (i == block->len - 1) { test_line(a, first); } case GL_LINE_STRIP: if (i > 0) { if (i == 1) { test_point(b); } test_point(a); test_line(a, b); } break; case GL_TRIANGLES: if (i % 3 == 2) { test_point(a); test_point(b); test_point(c); test_line(a, b); test_line(b, c); test_line(c, a); test_tri(a, b, c); } case GL_TRIANGLE_FAN: // this isn't *quite* right // as the point won't be drawn if we run out of verts test_point(a); if (i > 1) { test_line(a, b); test_line(a, first); test_tri(first, a, b); } break; case GL_TRIANGLE_STRIP: test_point(a); if (i == 1) { test_line(a, b); } else if (i > 1) { test_line(a, b); test_tri(a, b, c); } break; case GL_POINTS: test_point(a); break; default: printf("warning: unsupported GL_SELECT mode: %s\n", gl_str(block->mode)); return; } } #undef test_point #undef test_line #undef test_tri } void glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer) { if (size < 0) { ERROR(GL_INVALID_VALUE); } if (state.block.active || state.render.mode == GL_FEEDBACK) { ERROR(GL_INVALID_OPERATION); } state.feedback.buffer = buffer; state.feedback.overflow = false; state.feedback.size = size; state.feedback.type = type; state.feedback.values = 0; switch (type) { case GL_2D: case GL_3D: break; case GL_3D_COLOR: case GL_3D_COLOR_TEXTURE: case GL_4D_COLOR_TEXTURE: printf("warning: GL_FEEDBACK does not transform color]n"); break; default: ERROR(GL_INVALID_ENUM); break; } } static bool feedback_overflow(int n) { if (state.feedback.count + n > state.feedback.size) { state.feedback.overflow = true; return true; } return false; } static void feedback_push(GLfloat value) { if (state.render.mode != GL_FEEDBACK || !state.feedback.buffer || feedback_overflow(1)) { return; } state.feedback.values += 1; state.feedback.buffer[state.feedback.count++] = value; } static void feedback_push_n(GLfloat *values, int length) { for (int i = 0; i < length; i++) { feedback_push(values[i]); } } static void feedback_polygon(int n) { feedback_push(GL_POLYGON_TOKEN); feedback_push(n); } static int feedback_sizeof(GLenum type) { switch (type) { case GL_2D: return 2; case GL_3D: return 3; case GL_3D_COLOR: return 7; case GL_3D_COLOR_TEXTURE: return 11; case GL_4D_COLOR_TEXTURE: return 12; default: printf("warning: unknown feedback_sizeof(%s)\n", gl_str(type)); return 0; } } static void feedback_vertex(block_t *block, int i) { static GLfloat color[] = {0, 0, 0, 1}; static GLfloat tex[] = {0, 0, 0, 0}; GLfloat v[4], *c, *t; c = block->color ?: color; // glFeedbackBuffer returns only the texture coordinate of texture unit GL_TEXTURE0. t = block->tex[0] ?: tex; // TODO: this will be called extra times on stuff like triangle strips gl_transform_vertex(v, &block->vert[i * 3]); switch (state.feedback.type) { case GL_2D: feedback_push_n(v, 2); break; case GL_3D: feedback_push_n(v, 3); break; case GL_3D_COLOR: feedback_push_n(v, 3); feedback_push_n(c, 4); break; case GL_3D_COLOR_TEXTURE: feedback_push_n(v, 3); feedback_push_n(c, 4); feedback_push_n(t, 2); // we only store 2d texture coordinates for now feedback_push(0.0f); feedback_push(0.0f); break; case GL_4D_COLOR_TEXTURE: feedback_push_n(v, 3); // our vertices are already normalized, so W is redundant here feedback_push(1.0f); feedback_push_n(c, 4); feedback_push_n(t, 4); break; } } void gl_feedback_block(block_t *block) { if (block->len == 0) { return; } int size = feedback_sizeof(state.feedback.type); GLfloat *v, *c, *t; int v1, v2, v3; int first = _index(block, 0); for (int j = 0; j < block->len; j++) { int i = _index(block, j); v2 = v1; v3 = v2; v1 = i; // TODO: overflow'd feedback returns -1 in glRenderMode #define polygon(n) { if (feedback_overflow(size * n)) return; feedback_polygon(n); state.feedback.values -= 1; } switch (block->mode) { case GL_LINES: if (i % 2 == 1) { polygon(2); feedback_vertex(block, v2); feedback_vertex(block, v1); } break; case GL_LINE_LOOP: // catch the loop segment if (i == block->len - 1) { polygon(2); feedback_vertex(block, v1); feedback_vertex(block, first); } case GL_LINE_STRIP: if (i > 0) { polygon(2); feedback_vertex(block, v2); feedback_vertex(block, v1); } break; case GL_TRIANGLES: if (i % 3 == 2) { polygon(3); feedback_vertex(block, v3); feedback_vertex(block, v2); feedback_vertex(block, v1); } case GL_TRIANGLE_FAN: if (i > 1) { polygon(3); feedback_vertex(block, v2); feedback_vertex(block, v1); feedback_vertex(block, first); } break; case GL_TRIANGLE_STRIP: if (i > 1) { polygon(3); feedback_vertex(block, v3); feedback_vertex(block, v2); feedback_vertex(block, v1); } break; case GL_POINTS: polygon(1); feedback_vertex(block, v1); break; default: printf("warning: unsupported GL_SELECT mode: %s\n", gl_str(block->mode)); return; } } } void glPassThrough(GLfloat token) { ERROR_IN_BLOCK(); if (feedback_overflow(2)) return; feedback_push(GL_PASS_THROUGH_TOKEN); feedback_push(token); state.feedback.values -= 1; } |
Added jni/glshim/src/gl/render.h.
> > > > | 1 2 3 4 | #include "block.h" void gl_feedback_block(block_t *block); void gl_select_block(block_t *block); |
Added jni/glshim/src/gl/skip.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | // don't auto-wrap these functions #define skip_glColor4ub // clear.c #define skip_glClear #define skip_glClearColor #define skip_glClearDepthf #define skip_glClearStencil // depth.c #define skip_glDepthFunc #define skip_glDepthMask #define skip_glDepthRangef // gl.c #define skip_glColor4f #define skip_glDisable #define skip_glEnable #define skip_glIsEnabled #define skip_glNormal3f // get.c #define skip_glGetBooleanv #define skip_glGetError #define skip_glGetFloatv #define skip_glGetIntegerv #define skip_glGetString // matrix.cpp #define skip_glFrustumf #define skip_glLoadIdentity #define skip_glLoadMatrixf #define skip_glMatrixMode #define skip_glMultMatrixf #define skip_glOrthof #define skip_glPopMatrix #define skip_glPushMatrix #define skip_glRotatef #define skip_glScalef #define skip_glTranslatef // light.c #define skip_glLightModelf #ifdef LOCAL_MATRIX #define skip_glLightfv #endif #define skip_glMaterialfv // raster.c #define skip_glViewport // texture.c #define skip_glActiveTexture #define skip_glBindTexture #define skip_glClientActiveTexture #define skip_glDeleteTextures #define skip_glMultiTexCoord4f #define skip_glPixelStorei #define skip_glTexEnvf #define skip_glTexImage2D #define skip_glTexParameteri #define skip_glTexSubImage2D // glDrawArrays #define skip_glDrawArrays #define skip_glDrawElements #define skip_glVertexPointer #define skip_glColorPointer #define skip_glNormalPointer #define skip_glTexCoordPointer #define skip_glDisableClientState #define skip_glEnableClientState // don't compile these into display lists #define direct_glColorPointer #define direct_glDeleteLists #define direct_glDisableClientState #define direct_glEdgeFlagPointer #define direct_glEnableClientState #define direct_glFeedbackBuffer #define direct_glFinish #define direct_glFlush #define direct_glGenLists #define direct_glIndexPointer #define direct_glInterleavedArrays #define direct_glIsEnabled #define direct_glIsList #define direct_glNormalPointer #define direct_glPopClientAttrib #define direct_glPixelStore #define direct_glPushClientAttrib #define direct_glReadPixels #define direct_glRenderMode #define direct_glSelectBuffer #define direct_glTexCoordPointer #define direct_glVertexPointer |
Added jni/glshim/src/gl/stack.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 | #include "error.h" #include "stack.h" void glPushAttrib(GLbitfield mask) { ERROR_IN_BLOCK(); glstack_t *cur = malloc(sizeof(glstack_t)); cur->mask = mask; cur->clip_planes_enabled = NULL; cur->clip_planes = NULL; cur->lights_enabled = NULL; cur->lights = NULL; // TODO: GL_ACCUM_BUFFER_BIT // TODO: will tracking these myself be much faster than glGet? if (mask & GL_COLOR_BUFFER_BIT) { cur->alpha_test = glIsEnabled(GL_ALPHA_TEST); glGetIntegerv(GL_ALPHA_TEST_FUNC, &cur->alpha_test_func); glGetFloatv(GL_ALPHA_TEST_REF, &cur->alpha_test_ref); cur->blend = glIsEnabled(GL_BLEND); glGetIntegerv(GL_BLEND_SRC, &cur->blend_src_func); glGetIntegerv(GL_BLEND_DST, &cur->blend_dst_func); cur->dither = glIsEnabled(GL_DITHER); cur->color_logic_op = glIsEnabled(GL_COLOR_LOGIC_OP); glGetIntegerv(GL_LOGIC_OP_MODE, &cur->logic_op); glGetFloatv(GL_COLOR_CLEAR_VALUE, cur->clear_color); glGetFloatv(GL_COLOR_WRITEMASK, cur->color_mask); } if (mask & GL_CURRENT_BIT) { glGetFloatv(GL_CURRENT_COLOR, cur->color); glGetFloatv(GL_CURRENT_NORMAL, cur->normal); for (int i = 0; i < MAX_TEX; i++) { memcpy(cur->tex[i], state.current.tex[i], 2 * sizeof(GLfloat)); } } if (mask & GL_DEPTH_BUFFER_BIT) { cur->depth_test = glIsEnabled(GL_DEPTH_TEST); glGetIntegerv(GL_DEPTH_FUNC, &cur->depth_func); glGetFloatv(GL_DEPTH_CLEAR_VALUE, &cur->clear_depth); glGetIntegerv(GL_DEPTH_WRITEMASK, &cur->depth_mask); } if (mask & GL_ENABLE_BIT) { int i; GLint max_clip_planes; glGetIntegerv(GL_MAX_CLIP_PLANES, &max_clip_planes); cur->clip_planes_enabled = (GLboolean *)malloc(max_clip_planes * sizeof(GLboolean)); for (i = 0; i < max_clip_planes; i++) { *(cur->clip_planes_enabled + i) = glIsEnabled(GL_CLIP_PLANE0 + i); } GLint max_lights; glGetIntegerv(GL_MAX_LIGHTS, &max_lights); cur->lights_enabled = (GLboolean *)malloc(max_lights * sizeof(GLboolean)); for (i = 0; i < max_lights; i++) { *(cur->lights_enabled + i) = glIsEnabled(GL_LIGHT0 + i); } cur->alpha_test = glIsEnabled(GL_ALPHA_TEST); cur->blend = glIsEnabled(GL_BLEND); cur->cull_face = glIsEnabled(GL_CULL_FACE); cur->depth_test = glIsEnabled(GL_DEPTH_TEST); cur->dither = glIsEnabled(GL_DITHER); cur->fog = glIsEnabled(GL_FOG); cur->lighting = glIsEnabled(GL_LIGHTING); cur->line_smooth = glIsEnabled(GL_LINE_SMOOTH); cur->line_stipple = glIsEnabled(GL_LINE_STIPPLE); cur->color_logic_op = glIsEnabled(GL_COLOR_LOGIC_OP); cur->multisample = glIsEnabled(GL_MULTISAMPLE); cur->normalize = glIsEnabled(GL_NORMALIZE); cur->point_smooth = glIsEnabled(GL_POINT_SMOOTH); cur->polygon_offset_fill = glIsEnabled(GL_POLYGON_OFFSET_FILL); cur->sample_alpha_to_coverage = glIsEnabled(GL_SAMPLE_ALPHA_TO_COVERAGE); cur->sample_alpha_to_one = glIsEnabled(GL_SAMPLE_ALPHA_TO_ONE); cur->sample_coverage = glIsEnabled(GL_SAMPLE_COVERAGE); cur->scissor_test = glIsEnabled(GL_SCISSOR_TEST); cur->stencil_test = glIsEnabled(GL_STENCIL_TEST); cur->texture_2d = glIsEnabled(GL_TEXTURE_2D); } // TODO: GL_EVAL_BIT if (mask & GL_FOG_BIT) { cur->fog = glIsEnabled(GL_FOG); glGetFloatv(GL_FOG_COLOR, cur->fog_color); glGetFloatv(GL_FOG_DENSITY, &cur->fog_density); glGetFloatv(GL_FOG_START, &cur->fog_start); glGetFloatv(GL_FOG_END, &cur->fog_end); glGetIntegerv(GL_FOG_MODE, &cur->fog_mode); } if (mask & GL_HINT_BIT) { glGetIntegerv(GL_PERSPECTIVE_CORRECTION_HINT, &cur->perspective_hint); glGetIntegerv(GL_POINT_SMOOTH_HINT, &cur->point_smooth_hint); glGetIntegerv(GL_LINE_SMOOTH_HINT, &cur->line_smooth_hint); glGetIntegerv(GL_FOG_HINT, &cur->fog_hint); glGetIntegerv(GL_GENERATE_MIPMAP_HINT, &cur->mipmap_hint); } if (mask & GL_LIGHTING_BIT) { cur->lighting = glIsEnabled(GL_LIGHTING); glGetIntegerv(GL_LIGHT_MODEL_AMBIENT, cur->light_model_ambient); glGetIntegerv(GL_LIGHT_MODEL_TWO_SIDE, &cur->light_model_two_side); int i; GLint max_lights; glGetIntegerv(GL_MAX_LIGHTS, &max_lights); cur->lights_enabled = (GLboolean *)malloc(max_lights * sizeof(GLboolean)); cur->lights = (GLfloat *)malloc(max_lights * sizeof(GLfloat)); for (i = 0; i < max_lights; i++) { *(cur->lights_enabled + i) = glIsEnabled(GL_LIGHT0 + i); /* TODO: record all data about the lights glGetFloatv(GL_LIGHT0 + i, cur->lights + i); */ } glGetIntegerv(GL_SHADE_MODEL, &cur->shade_model); } if (mask & GL_LINE_BIT) { cur->line_smooth = glIsEnabled(GL_LINE_SMOOTH); // TODO: stipple stuff here glGetFloatv(GL_LINE_WIDTH, &cur->line_width); } if (mask & GL_LIST_BIT) { // TODO: local storage of glListBase } if (mask & GL_MULTISAMPLE_BIT) { cur->multisample = glIsEnabled(GL_MULTISAMPLE); cur->sample_alpha_to_coverage = glIsEnabled(GL_SAMPLE_ALPHA_TO_COVERAGE); cur->sample_alpha_to_one = glIsEnabled(GL_SAMPLE_ALPHA_TO_ONE); cur->sample_coverage = glIsEnabled(GL_SAMPLE_COVERAGE); } // TODO: GL_PIXEL_MODE_BIT if (mask & GL_POINT_BIT) { cur->point_smooth = glIsEnabled(GL_POINT_SMOOTH); glGetFloatv(GL_POINT_SIZE, &cur->point_size); } // TODO: GL_POLYGON_BIT // TODO: GL_POLYGON_STIPPLE_BIT if (mask & GL_SCISSOR_BIT) { cur->scissor_test = glIsEnabled(GL_SCISSOR_TEST); glGetFloatv(GL_SCISSOR_BOX, cur->scissor_box); } // TODO: GL_STENCIL_BUFFER_BIT // TODO: incomplete if (mask & GL_TEXTURE_BIT) { glGetIntegerv(GL_TEXTURE_BINDING_2D, &cur->texture); } // TODO: GL_TRANSFORM_BIT // TODO: GL_VIEWPORT_BIT tack_push(&state.stack.attrib, cur); } void glPushClientAttrib(GLbitfield mask) { glclientstack_t *cur = malloc(sizeof(glclientstack_t)); cur->mask = mask; if (mask & GL_CLIENT_PIXEL_STORE_BIT) { glGetIntegerv(GL_PACK_ALIGNMENT, &cur->pack_align); glGetIntegerv(GL_UNPACK_ALIGNMENT, &cur->unpack_align); cur->unpack_row_length = state.texture.unpack_row_length; cur->unpack_skip_pixels = state.texture.unpack_skip_pixels; cur->unpack_skip_rows = state.texture.unpack_skip_rows; } if (mask & GL_CLIENT_VERTEX_ARRAY_BIT) { cur->vert_enable = state.enable.vertex_array; cur->color_enable = state.enable.color_array; cur->normal_enable = state.enable.normal_array; memcpy(&cur->tex_enable, &state.enable.tex_coord_array, sizeof(GLboolean) * MAX_TEX); memcpy(&cur->verts, &state.pointers.vertex, sizeof(pointer_state_t)); memcpy(&cur->color, &state.pointers.color, sizeof(pointer_state_t)); memcpy(&cur->normal, &state.pointers.normal, sizeof(pointer_state_t)); memcpy(&cur->tex, &state.pointers.tex_coord, sizeof(pointer_state_t) * MAX_TEX); } tack_push(&state.stack.client, cur); } #define enable_disable(pname, enabled) \ if (enabled) glEnable(pname); \ else glDisable(pname) #define v2(c) c[0], c[1] #define v3(c) v2(c), c[2] #define v4(c) v3(c), c[3] void glPopAttrib() { ERROR_IN_BLOCK(); glstack_t *cur = tack_pop(&state.stack.attrib); if (cur == NULL) { ERROR(GL_STACK_UNDERFLOW); } if (cur->mask & GL_COLOR_BUFFER_BIT) { #ifndef USE_ES2 enable_disable(GL_ALPHA_TEST, cur->alpha_test); glAlphaFunc(cur->alpha_test_func, cur->alpha_test_ref); #endif enable_disable(GL_BLEND, cur->blend); glBlendFunc(cur->blend_src_func, cur->blend_dst_func); enable_disable(GL_DITHER, cur->dither); #ifndef USE_ES2 enable_disable(GL_COLOR_LOGIC_OP, cur->color_logic_op); glLogicOp(cur->logic_op); #endif GLfloat *c; glClearColor(v4(cur->clear_color)); glColorMask(v4(cur->color_mask)); } if (cur->mask & GL_CURRENT_BIT) { glColor4f(v4(cur->color)); #ifndef USE_ES2 glNormal3f(v3(cur->normal)); #endif for (int i = 0; i < MAX_TEX; i++) { glMultiTexCoord2f(GL_TEXTURE0 + i, v2(cur->tex[i])); } } if (cur->mask & GL_DEPTH_BUFFER_BIT) { enable_disable(GL_DEPTH_TEST, cur->depth_test); glDepthFunc(cur->depth_func); glClearDepth(cur->clear_depth); glDepthMask(cur->depth_mask); } if (cur->mask & GL_ENABLE_BIT) { int i; GLint max_clip_planes; glGetIntegerv(GL_MAX_CLIP_PLANES, &max_clip_planes); for (i = 0; i < max_clip_planes; i++) { enable_disable(GL_CLIP_PLANE0 + i, *(cur->clip_planes_enabled + i)); } GLint max_lights; glGetIntegerv(GL_MAX_LIGHTS, &max_lights); for (i = 0; i < max_lights; i++) { enable_disable(GL_LIGHT0 + i, *(cur->lights_enabled + i)); } enable_disable(GL_ALPHA_TEST, cur->alpha_test); enable_disable(GL_BLEND, cur->blend); enable_disable(GL_CULL_FACE, cur->cull_face); enable_disable(GL_DEPTH_TEST, cur->depth_test); enable_disable(GL_DITHER, cur->dither); enable_disable(GL_FOG, cur->fog); enable_disable(GL_LIGHTING, cur->lighting); enable_disable(GL_LINE_SMOOTH, cur->line_smooth); enable_disable(GL_LINE_STIPPLE, cur->line_stipple); enable_disable(GL_COLOR_LOGIC_OP, cur->color_logic_op); enable_disable(GL_MULTISAMPLE, cur->multisample); enable_disable(GL_NORMALIZE, cur->normalize); enable_disable(GL_POINT_SMOOTH, cur->point_smooth); enable_disable(GL_POLYGON_OFFSET_FILL, cur->polygon_offset_fill); enable_disable(GL_SAMPLE_ALPHA_TO_COVERAGE, cur->sample_alpha_to_coverage); enable_disable(GL_SAMPLE_ALPHA_TO_ONE, cur->sample_alpha_to_one); enable_disable(GL_SAMPLE_COVERAGE, cur->sample_coverage); enable_disable(GL_SCISSOR_TEST, cur->scissor_test); enable_disable(GL_STENCIL_TEST, cur->stencil_test); enable_disable(GL_TEXTURE_2D, cur->texture_2d); } #ifndef USE_ES2 if (cur->mask & GL_FOG_BIT) { enable_disable(GL_FOG, cur->fog); glFogfv(GL_FOG_COLOR, cur->fog_color); glFogf(GL_FOG_DENSITY, cur->fog_density); glFogf(GL_FOG_START, cur->fog_start); glFogf(GL_FOG_END, cur->fog_end); glFogf(GL_FOG_MODE, cur->fog_mode); } #endif if (cur->mask & GL_HINT_BIT) { enable_disable(GL_PERSPECTIVE_CORRECTION_HINT, cur->perspective_hint); enable_disable(GL_POINT_SMOOTH_HINT, cur->point_smooth_hint); enable_disable(GL_LINE_SMOOTH_HINT, cur->line_smooth_hint); enable_disable(GL_FOG_HINT, cur->fog_hint); enable_disable(GL_GENERATE_MIPMAP_HINT, cur->mipmap_hint); } if (cur->mask & GL_LINE_BIT) { enable_disable(GL_LINE_SMOOTH, cur->line_smooth); // TODO: stipple stuff here glLineWidth(cur->line_width); } if (cur->mask & GL_MULTISAMPLE_BIT) { enable_disable(GL_MULTISAMPLE, cur->multisample); enable_disable(GL_SAMPLE_ALPHA_TO_COVERAGE, cur->sample_alpha_to_coverage); enable_disable(GL_SAMPLE_ALPHA_TO_ONE, cur->sample_alpha_to_one); enable_disable(GL_SAMPLE_COVERAGE, cur->sample_coverage); } #ifndef USE_ES2 if (cur->mask & GL_POINT_BIT) { enable_disable(GL_POINT_SMOOTH, cur->point_smooth); glPointSize(cur->point_size); } #endif if (cur->mask & GL_SCISSOR_BIT) { enable_disable(GL_SCISSOR_TEST, cur->scissor_test); glScissor(v4(cur->scissor_box)); } if (cur->mask & GL_TEXTURE_BIT) { glBindTexture(GL_TEXTURE_2D, cur->texture); } free(cur->clip_planes_enabled); free(cur->clip_planes); free(cur->lights_enabled); free(cur->lights); free(cur); } #undef enable_disable #define enable_disable(pname, enabled) \ if (enabled) glEnableClientState(pname); \ else glDisableClientState(pname) void glPopClientAttrib() { glclientstack_t *cur = tack_pop(&state.stack.client); if (cur == NULL) { ERROR(GL_STACK_UNDERFLOW); } if (cur->mask & GL_CLIENT_PIXEL_STORE_BIT) { glPixelStorei(GL_PACK_ALIGNMENT, cur->pack_align); glPixelStorei(GL_UNPACK_ALIGNMENT, cur->unpack_align); glPixelStorei(GL_UNPACK_ROW_LENGTH, cur->unpack_row_length); glPixelStorei(GL_UNPACK_SKIP_PIXELS, cur->unpack_skip_pixels); glPixelStorei(GL_UNPACK_SKIP_ROWS, cur->unpack_skip_rows); } if (cur->mask & GL_CLIENT_VERTEX_ARRAY_BIT) { enable_disable(GL_VERTEX_ARRAY, cur->vert_enable); enable_disable(GL_NORMAL_ARRAY, cur->normal_enable); enable_disable(GL_COLOR_ARRAY, cur->color_enable); for (int i = 0; i < MAX_TEX; i++) { GLboolean bit = cur->tex_enable[i]; if (bit != state.enable.tex_coord_array[i]) { enable_disable(GL_TEXTURE_COORD_ARRAY, bit); } } memcpy(&state.pointers.vertex, &cur->verts, sizeof(pointer_state_t)); memcpy(&state.pointers.color, &cur->color, sizeof(pointer_state_t)); memcpy(&state.pointers.normal, &cur->normal, sizeof(pointer_state_t)); memcpy(&state.pointers.tex_coord, &cur->tex, sizeof(pointer_state_t) * MAX_TEX); } free(cur); } #undef enable_disable #undef v2 #undef v3 #undef v4 |
Added jni/glshim/src/gl/stack.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #ifndef GL_STACK_H #define GL_STACK_H #include "types.h" typedef struct { GLbitfield mask; // GL_COLOR_BUFFER_BIT GLboolean alpha_test; GLint alpha_test_func; GLclampf alpha_test_ref; GLboolean blend; GLint blend_src_func; GLint blend_dst_func; GLboolean dither; GLboolean color_logic_op; GLint logic_op; GLfloat clear_color[4]; GLfloat color_mask[4]; // GL_CURRENT_BIT GLfloat color[4]; GLfloat normal[4]; GLfloat tex[MAX_TEX][4]; // TODO: can only fill this via raster.c GLfloat raster_pos[3]; GLboolean raster_valid; // GL_DEPTH_BUFFER_BIT GLboolean depth_test; GLint depth_func; GLfloat clear_depth; GLint depth_mask; // GL_ENABLE_BIT GLboolean cull_face; GLboolean normalize; GLboolean polygon_offset_fill; GLboolean stencil_test; GLboolean texture_2d; // GL_FOG_BIT GLboolean fog; GLfloat fog_color[4]; GLfloat fog_density; GLfloat fog_start; GLfloat fog_end; GLint fog_mode; // GL_HINT_BIT GLint perspective_hint; GLint point_smooth_hint; GLint line_smooth_hint; GLint fog_hint; GLint mipmap_hint; // GL_LIGHTING_BIT GLboolean lighting; GLboolean *lights_enabled; GLfloat *lights; GLint light_model_ambient[4]; GLint light_model_two_side; GLint shade_model; // GL_LINE_BIT GLboolean line_smooth; GLboolean line_stipple; // TODO: needs to be hooked locally? GLfloat line_width; // GL_LIST_BIT GLint list_base; // GL_MULTISAMPLE_BIT GLboolean multisample; GLboolean sample_alpha_to_coverage; GLboolean sample_alpha_to_one; GLboolean sample_coverage; // GL_POINT_BIT GLboolean point_smooth; GLfloat point_size; // TODO: GL_POLYGON_BIT // TODO: GL_POLYGON_STIPPLE_BIT // GL_SCISSOR_BIT GLboolean scissor_test; GLfloat scissor_box[4]; // TODO: GL_STENCIL_BUFFER_BIT // GL_TEXTURE_BIT GLint texture; // TODO: GL_TRANSFORM_BIT // TODO: GL_VIEWPORT_BIT // dynamically-sized shenanigans GLboolean *clip_planes_enabled; GLfloat *clip_planes; } glstack_t; typedef struct { GLbitfield mask; // GL_CLIENT_PIXEL_STORE_BIT GLint pack_align; GLint unpack_align; GLuint unpack_row_length; GLuint unpack_skip_pixels; GLuint unpack_skip_rows; // GL_CLIENT_VERTEX_ARRAY_BIT GLboolean vert_enable; GLboolean color_enable; GLboolean tex_enable[MAX_TEX]; GLboolean normal_enable; pointer_state_t verts; pointer_state_t color; pointer_state_t normal; pointer_state_t tex[MAX_TEX]; } glclientstack_t; void glPushClientAttrib(GLbitfield mask); void glPopClientAttrib(); void glPushAttrib(GLbitfield mask); void glPopAttrib(); #endif |
Added jni/glshim/src/gl/texgen.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | #include <stdio.h> #include "block.h" #include "error.h" #include "texgen.h" #include "vectorial/simd4f.h" #include "vectorial/simd4x4f.h" void glTexGeni(GLenum coord, GLenum pname, GLint param) { GLfloat fp = param; glTexGenfv(coord, pname, &fp); } void glTexGenfv(GLenum coord, GLenum pname, const GLfloat *param) { // pname is in: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE, GL_EYE_PLANE ERROR_IN_BLOCK(); texgen_state_t *texgen = &state.texgen[state.texture.active]; if (pname == GL_TEXTURE_GEN_MODE) { switch ((GLenum)*param) { case GL_SPHERE_MAP: if (coord == GL_R || coord == GL_Q) { ERROR(GL_INVALID_ENUM); } case GL_OBJECT_LINEAR: case GL_EYE_LINEAR: // TODO: missing GL_NORMAL_MAP implementation case GL_NORMAL_MAP: case GL_REFLECTION_MAP: break; default: ERROR(GL_INVALID_ENUM); } switch (coord) { case GL_R: texgen->R = *param; break; case GL_Q: texgen->Q = *param; break; case GL_S: texgen->S = *param; break; case GL_T: texgen->T = *param; break; } } else { GLfloat *target = NULL; switch (coord) { case GL_R: target = texgen->Rv; break; case GL_Q: target = texgen->Qv; break; case GL_S: target = texgen->Sv; break; case GL_T: target = texgen->Tv; break; default: ERROR(GL_INVALID_ENUM); return; } memcpy(target, param, 4 * sizeof(GLfloat)); } } static inline void tex_coord_loop(block_t *block, GLfloat *out, GLenum type, GLfloat *Sp, GLfloat *Tp) { GLfloat *vert = block->vert; GLfloat *normal = block->normal; // if we get sphere map and no normal, just barf and return? simd4x4f matrix; if (type != GL_OBJECT_LINEAR) { // TODO: make sure this loads it properly glGetFloatv(GL_MODELVIEW_MATRIX, (float *)&matrix); } simd4f s_plane, t_plane; s_plane = simd4f_uload4(Sp); if (Tp != NULL) { t_plane = simd4f_uload4(Tp); } for (int i = 0; i < block->len; i++) { if (! block->normal) { normal = CURRENT->normal; } GLfloat tmp[2]; simd4f v = simd4f_create(vert[0], vert[1], vert[2], 1); switch (type) { case GL_OBJECT_LINEAR: simd4f_ustore2(simd4f_dot4(v, s_plane), tmp); out[0] = tmp[0]; if (Tp) { simd4f_ustore2(simd4f_dot4(v, t_plane), tmp); out[1] = tmp[0]; } break; case GL_EYE_LINEAR: { simd4f eye; simd4x4f_matrix_vector_mul(&matrix, &v, &eye); simd4f_ustore2(simd4f_dot4(eye, s_plane), tmp); out[0] = tmp[0]; if (Tp) { simd4f_ustore2(simd4f_dot4(eye, t_plane), tmp); out[1] = tmp[0]; } break; } case GL_SPHERE_MAP: { simd4f norm = simd4f_create(normal[0], normal[1], normal[2], 1.0f); simd4f eye; simd4x4f_matrix_vector_mul(&matrix, &v, &eye); eye = simd4f_normalize3(eye); simd4f eye_normal; simd4x4f inverse; simd4x4f_inverse(&matrix, &inverse); // TODO: better to use new registers to prevent stall? simd4x4f_transpose_inplace(&inverse); // TODO: is normal multiplied wrong here? simd4x4f_matrix_vector_mul(&inverse, &norm, &eye_normal); simd4f result = simd4f_mul(simd4f_dot4(eye, eye_normal), simd4f_create(2.0f, 2.0f, 2.0f, 2.0f)); simd4f reflection = simd4f_sub(eye, simd4f_mul(eye_normal, result)); reflection = simd4f_add(reflection, simd4f_create(0.0f, 0.0f, 1.0f, 0.0f)); float ref[4], dot[2]; simd4f_ustore2(reflection, ref); simd4f_ustore2(simd4f_dot4(reflection, reflection), dot); float m = 1.0 / (2.0 * sqrt(dot[0])); out[0] = ref[0] * m + 0.5; out[1] = ref[1] * m + 0.5; normal += 3; break; } case GL_REFLECTION_MAP: { float eye_[2], eye_normal_[2], dot[2]; simd4f norm = simd4f_create(normal[0], normal[1], normal[2], 1.0f); simd4f eye; simd4x4f_matrix_vector_mul(&matrix, &v, &eye); eye = simd4f_normalize3(eye); simd4f_ustore2(eye, eye_); simd4f eye_normal; simd4x4f inverse; simd4x4f_inverse(&matrix, &inverse); simd4x4f_transpose_inplace(&inverse); simd4x4f_matrix_vector_mul(&inverse, &norm, &eye_normal); simd4f_ustore2(eye_normal, eye_); simd4f_ustore2(simd4f_dot4(eye, eye_normal), dot); out[0] = eye_[0] - eye_normal_[0] * dot[0] * 2.0f; out[1] = eye_[1] - eye_normal_[1] * dot[0] * 2.0f; // out[2] = eye.x - eye_normal.z * dot; break; } } out += 2; vert += 3; } } void gen_tex_coords(block_t *block, GLuint texture) { // TODO: do less work when called from glDrawElements? block->tex[texture] = (GLfloat *)malloc(block->len * 2 * sizeof(GLfloat)); texgen_state_t *texgen = &state.texgen[texture]; if (state.enable.texgen_s[texture]) { if (texgen->S == texgen->T) { tex_coord_loop(block, block->tex[texture], texgen->S, texgen->Sv, texgen->Tv); } else { tex_coord_loop(block, block->tex[texture], texgen->S, texgen->Sv, NULL); } } if (state.enable.texgen_t[texture]) { tex_coord_loop(block, block->tex[texture] + 1, texgen->T, texgen->Tv, NULL); } } |
Added jni/glshim/src/gl/texgen.h.
> > > > | 1 2 3 4 | #include <GL/gl.h> #include "block.h" extern void gen_tex_coords(block_t *block, GLuint texture); |
Added jni/glshim/src/gl/text.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #include <GL/gl.h> #include <stdio.h> static const GLushort font[][13] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36}, {0x00, 0x00, 0x00, 0x66, 0x66, 0xff, 0x66, 0x66, 0xff, 0x66, 0x66, 0x00, 0x00}, {0x00, 0x00, 0x18, 0x7e, 0xff, 0x1b, 0x1f, 0x7e, 0xf8, 0xd8, 0xff, 0x7e, 0x18}, {0x00, 0x00, 0x0e, 0x1b, 0xdb, 0x6e, 0x30, 0x18, 0x0c, 0x76, 0xdb, 0xd8, 0x70}, {0x00, 0x00, 0x7f, 0xc6, 0xcf, 0xd8, 0x70, 0x70, 0xd8, 0xcc, 0xcc, 0x6c, 0x38}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x0c, 0x0e}, {0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c}, {0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30}, {0x00, 0x00, 0x00, 0x00, 0x99, 0x5a, 0x3c, 0xff, 0x3c, 0x5a, 0x99, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00}, {0x00, 0x00, 0x30, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0x03, 0x03}, {0x00, 0x00, 0x3c, 0x66, 0xc3, 0xe3, 0xf3, 0xdb, 0xcf, 0xc7, 0xc3, 0x66, 0x3c}, {0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x38, 0x18}, {0x00, 0x00, 0xff, 0xc0, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0xe7, 0x7e}, {0x00, 0x00, 0x7e, 0xe7, 0x03, 0x03, 0x07, 0x7e, 0x07, 0x03, 0x03, 0xe7, 0x7e}, {0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xff, 0xcc, 0x6c, 0x3c, 0x1c, 0x0c}, {0x00, 0x00, 0x7e, 0xe7, 0x03, 0x03, 0x07, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff}, {0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xc7, 0xfe, 0xc0, 0xc0, 0xc0, 0xe7, 0x7e}, {0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x03, 0x03, 0xff}, {0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xe7, 0x7e, 0xe7, 0xc3, 0xc3, 0xe7, 0x7e}, {0x00, 0x00, 0x7e, 0xe7, 0x03, 0x03, 0x03, 0x7f, 0xe7, 0xc3, 0xc3, 0xe7, 0x7e}, {0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x30, 0x18, 0x1c, 0x1c, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06}, {0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60}, {0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x0c, 0x06, 0x03, 0xc3, 0xc3, 0x7e}, {0x00, 0x00, 0x3f, 0x60, 0xcf, 0xdb, 0xd3, 0xdd, 0xc3, 0x7e, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18}, {0x00, 0x00, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe}, {0x00, 0x00, 0x7e, 0xe7, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe7, 0x7e}, {0x00, 0x00, 0xfc, 0xce, 0xc7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc7, 0xce, 0xfc}, {0x00, 0x00, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xc0, 0xc0, 0xc0, 0xc0, 0xff}, {0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xc0, 0xc0, 0xc0, 0xff}, {0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xcf, 0xc0, 0xc0, 0xc0, 0xc0, 0xe7, 0x7e}, {0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3}, {0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e}, {0x00, 0x00, 0x7c, 0xee, 0xc6, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06}, {0x00, 0x00, 0xc3, 0xc6, 0xcc, 0xd8, 0xf0, 0xe0, 0xf0, 0xd8, 0xcc, 0xc6, 0xc3}, {0x00, 0x00, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0}, {0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xdb, 0xff, 0xff, 0xe7, 0xc3}, {0x00, 0x00, 0xc7, 0xc7, 0xcf, 0xcf, 0xdf, 0xdb, 0xfb, 0xf3, 0xf3, 0xe3, 0xe3}, {0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xe7, 0x7e}, {0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe}, {0x00, 0x00, 0x3f, 0x6e, 0xdf, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x66, 0x3c}, {0x00, 0x00, 0xc3, 0xc6, 0xcc, 0xd8, 0xf0, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe}, {0x00, 0x00, 0x7e, 0xe7, 0x03, 0x03, 0x07, 0x7e, 0xe0, 0xc0, 0xc0, 0xe7, 0x7e}, {0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff}, {0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3}, {0x00, 0x00, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3}, {0x00, 0x00, 0xc3, 0xe7, 0xff, 0xff, 0xdb, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3}, {0x00, 0x00, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3}, {0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3}, {0x00, 0x00, 0xff, 0xc0, 0xc0, 0x60, 0x30, 0x7e, 0x0c, 0x06, 0x03, 0x03, 0xff}, {0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c}, {0x00, 0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60}, {0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18}, {0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x70}, {0x00, 0x00, 0x7f, 0xc3, 0xc3, 0x7f, 0x03, 0xc3, 0x7e, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xfe, 0xc3, 0xc3, 0xc3, 0xc3, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0}, {0x00, 0x00, 0x7e, 0xc3, 0xc0, 0xc0, 0xc0, 0xc3, 0x7e, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x7f, 0xc3, 0xc3, 0xc3, 0xc3, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x03}, {0x00, 0x00, 0x7f, 0xc0, 0xc0, 0xfe, 0xc3, 0xc3, 0x7e, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x33, 0x1e}, {0x7e, 0xc3, 0x03, 0x03, 0x7f, 0xc3, 0xc3, 0xc3, 0x7e, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0}, {0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00}, {0x38, 0x6c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x00}, {0x00, 0x00, 0xc6, 0xcc, 0xf8, 0xf0, 0xd8, 0xcc, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0}, {0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78}, {0x00, 0x00, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xfe, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xfc, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00}, {0xc0, 0xc0, 0xc0, 0xfe, 0xc3, 0xc3, 0xc3, 0xc3, 0xfe, 0x00, 0x00, 0x00, 0x00}, {0x03, 0x03, 0x03, 0x7f, 0xc3, 0xc3, 0xc3, 0xc3, 0x7f, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xfe, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xfe, 0x03, 0x03, 0x7e, 0xc0, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x1c, 0x36, 0x30, 0x30, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x00}, {0x00, 0x00, 0x7e, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc3, 0xe7, 0xff, 0xdb, 0xc3, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0xc3, 0x00, 0x00, 0x00, 0x00}, {0xc0, 0x60, 0x60, 0x30, 0x18, 0x3c, 0x66, 0x66, 0xc3, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0xff, 0x60, 0x30, 0x18, 0x0c, 0x06, 0xff, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x0f, 0x18, 0x18, 0x18, 0x38, 0xf0, 0x38, 0x18, 0x18, 0x18, 0x0f}, {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, {0x00, 0x00, 0xf0, 0x18, 0x18, 0x18, 0x1c, 0x0f, 0x1c, 0x18, 0x18, 0x18, 0xf0}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x8f, 0xf1, 0x60, 0x00, 0x00, 0x00} }; void text_draw(int x, int y, char *text) { glPushAttrib(GL_CURRENT_BIT); glRasterPos2i(x, y); char c; while ((c = *text++)) { if (c >= ' ' && c <= '~') { GLubyte *glyph = (GLubyte *)&(font[c - ' '][0]); glBitmap(8, 13, 0, 0, 9, 0, glyph); } } glPopAttrib(); } |
Added jni/glshim/src/gl/text.h.
> | 1 | void text_draw(int x, int y, char *text); |
Added jni/glshim/src/gl/texture.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 | #include <stdio.h> #include <stdbool.h> #include "error.h" #include "gl_helpers.h" #include "gl_str.h" #include "loader.h" #include "pixel.h" #include "texture.h" #include "types.h" // expand non-power-of-two sizes // TODO: what does this do to repeating textures? int npot(int n) { if (n == 0) return 0; int i = 1; while (i < n) i <<= 1; return i; } // conversions for GL_ARB_texture_rectangle void tex_coord_rect_arb(GLfloat *tex, GLsizei len, GLsizei width, GLsizei height) { if (!tex || !width || !height) return; for (int i = 0; i < len; i++) { tex[0] /= width; tex[1] /= height; tex += 2; } } void tex_coord_npot(GLfloat *tex, GLsizei len, GLsizei width, GLsizei height, GLsizei nwidth, GLsizei nheight) { if (!tex || !width || !height) return; GLfloat wratio = (width / (GLfloat)nwidth); GLfloat hratio = (height / (GLfloat)nheight); for (int i = 0; i < len; i++) { tex[0] *= wratio; tex[1] *= hratio; tex += 2; } } static void *swizzle_texture(GLsizei width, GLsizei height, GLenum *format, GLenum *type, const GLvoid *data) { bool convert = false; switch (*format) { case GL_ALPHA: case GL_RGB: case GL_RGBA: case GL_LUMINANCE: case GL_LUMINANCE_ALPHA: break; default: convert = true; break; } switch (*type) { case GL_UNSIGNED_BYTE: case GL_UNSIGNED_SHORT_5_6_5: case GL_UNSIGNED_SHORT_4_4_4_4: case GL_UNSIGNED_SHORT_5_5_5_1: break; case GL_UNSIGNED_INT_8_8_8_8_REV: *type = GL_UNSIGNED_BYTE; break; default: convert = true; break; } if (convert) { GLvoid *pixels = (GLvoid *)data; if (data) { if (! pixel_convert(data, &pixels, width, height, *format, *type, GL_RGBA, GL_UNSIGNED_BYTE)) { printf("libGL swizzle error: (%s, %s -> RGBA, UNSIGNED_BYTE)\n", gl_str(*format), gl_str(*type)); return NULL; } } *type = GL_UNSIGNED_BYTE; *format = GL_RGBA; return pixels; } return (void *)data; } void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *data) { ERROR_IN_BLOCK(); gltexture_t *bound = state.texture.bound[state.texture.active]; GLvoid *pixels = (GLvoid *)data; if (data) { // implements GL_UNPACK_ROW_LENGTH if (state.texture.unpack_row_length && state.texture.unpack_row_length != width) { int imgWidth, pixelSize; pixelSize = gl_pixel_sizeof(format, type); imgWidth = state.texture.unpack_row_length * pixelSize; GLubyte *dst = (GLubyte *)malloc(width * height * pixelSize); pixels = (GLvoid *)dst; const GLubyte *src = (GLubyte *)data; src += state.texture.unpack_skip_pixels + state.texture.unpack_skip_rows * imgWidth; for (int y = 0; y < height; y += 1) { memcpy(dst, src, width * pixelSize); src += imgWidth; dst += width; } } GLvoid *old = pixels; pixels = (GLvoid *)swizzle_texture(width, height, &format, &type, data); if (old != pixels && old != data) free(old); char *env_shrink = getenv("LIBGL_SHRINK"); if (env_shrink && strcmp(env_shrink, "1") == 0) { if (width > 1 && height > 1) { GLvoid *out; GLfloat ratio = 0.5; pixel_scale(pixels, &out, width, height, ratio, format, type); if (out != pixels) free(out); pixels = out; width *= ratio; height *= ratio; } } char *env_dump = getenv("LIBGL_TEXDUMP"); if (env_dump && strcmp(env_dump, "1") == 0) { if (bound) { pixel_to_ppm(pixels, width, height, format, type, bound->texture); } } } else { // convert format even if data is NULL swizzle_texture(width, height, &format, &type, NULL); } /* TODO: GL_INVALID_VALUE is generated if border is not 0. GL_INVALID_OPERATION is generated if type is GL_UNSIGNED_SHORT_5_6_5 and format is not GL_RGB. GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, or GL_UNSIGNED_SHORT_5_5_5_1 and format is not GL_RGBA. */ LOAD_GLES(glTexImage2D); switch (target) { case GL_PROXY_TEXTURE_2D: break; default: { GLsizei nheight = npot(height), nwidth = npot(width); if (bound && level == 0) { bound->width = width; bound->height = height; bound->nwidth = nwidth; bound->nheight = nheight; } if (false && (height != nheight || width != nwidth)) { LOAD_GLES(glTexSubImage2D); gles_glTexImage2D(target, level, format, nwidth, nheight, border, format, type, NULL); gles_glTexSubImage2D(target, level, 0, 0, width, height, format, type, pixels); } else { gles_glTexImage2D(target, level, format, width, height, border, format, type, pixels); } } } if (pixels != data) { free(pixels); } } void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data) { LOAD_GLES(glTexSubImage2D); ERROR_IN_BLOCK(); target = map_tex_target(target); const GLvoid *pixels = swizzle_texture(width, height, &format, &type, data); gles_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); if (pixels != data) free((GLvoid *)pixels); } // 1d stubs void glTexImage1D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *data) { // TODO: maybe too naive to force GL_TEXTURE_2D here? glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, 1, border, format, type, data); } void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *data) { glTexSubImage2D(target, level, xoffset, 0, width, 1, format, type, data); } // 3d stubs void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *data) { // TODO: maybe too naive to force GL_TEXTURE_2D here? glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height, border, format, type, data); } void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data) { glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data); } void glPixelStorei(GLenum pname, GLint param) { // TODO: add to glGetIntegerv? LOAD_GLES(glPixelStorei); switch (pname) { case GL_UNPACK_ROW_LENGTH: state.texture.unpack_row_length = param; break; case GL_UNPACK_SKIP_PIXELS: state.texture.unpack_skip_pixels = param; break; case GL_UNPACK_SKIP_ROWS: state.texture.unpack_skip_rows = param; break; case GL_UNPACK_LSB_FIRST: state.texture.unpack_lsb_first = param; break; default: gles_glPixelStorei(pname, param); break; } } void glBindTexture(GLenum target, GLuint texture) { PUSH_IF_COMPILING(glBindTexture); ERROR_IN_BLOCK(); GLuint active = state.texture.active; if (texture) { int ret; khint_t k; khash_t(tex) *list = state.texture.list; if (! list) { list = state.texture.list = kh_init(tex); // segfaults if we don't do a single put kh_put(tex, list, 1, &ret); kh_del(tex, list, 1); } k = kh_get(tex, list, texture); gltexture_t *tex = NULL;; if (k == kh_end(list)){ k = kh_put(tex, list, texture, &ret); tex = kh_value(list, k) = malloc(sizeof(gltexture_t)); tex->texture = texture; tex->target = target; tex->width = 0; tex->height = 0; tex->uploaded = false; } else { tex = kh_value(list, k); } state.texture.bound[active] = tex; } else { state.texture.bound[active] = NULL; } state.texture.rect_arb[active] = (target == GL_TEXTURE_RECTANGLE_ARB); target = map_tex_target(target); LOAD_GLES(glBindTexture); gles_glBindTexture(target, texture); } void glActiveTexture(GLenum texture) { PUSH_IF_COMPILING(glActiveTexture); if ((texture < GL_TEXTURE0) || (texture > GL_TEXTURE_MAX)) { // TODO: set the GL error flag? fprintf(stderr, "glActiveTexture: texture > GL_TEXTURE_MAX\n"); return; } state.texture.active = texture - GL_TEXTURE0; LOAD_GLES(glActiveTexture); gles_glActiveTexture(texture); } void glClientActiveTexture(GLenum texture) { PUSH_IF_COMPILING(glClientActiveTexture); GLuint new = texture - GL_TEXTURE0; if (state.texture.client == new) { return; } if ((texture < GL_TEXTURE0) || (texture > GL_TEXTURE_MAX)) { // TODO: set the GL error flag? fprintf(stderr, "glClientActiveTexture: texture > GL_TEXTURE_MAX\n"); return; } state.texture.client = new; LOAD_GLES(glClientActiveTexture); gles_glClientActiveTexture(texture); } void glTexEnvf(GLenum target, GLenum pname, GLfloat param) { ERROR_IN_BLOCK(); PUSH_IF_COMPILING(glTexEnvf); PROXY_GLES(glTexEnvf); } // TODO: also glTexParameterf(v)? void glTexParameteri(GLenum target, GLenum pname, GLint param) { PUSH_IF_COMPILING(glTexParameteri); LOAD_GLES(glTexParameteri); ERROR_IN_BLOCK(); target = map_tex_target(target); switch (param) { case GL_CLAMP: param = GL_CLAMP_TO_EDGE; break; } gles_glTexParameteri(target, pname, param); } void glDeleteTextures(GLsizei n, const GLuint *textures) { PUSH_IF_COMPILING(glDeleteTextures); khash_t(tex) *list = state.texture.list; if (list) { khint_t k; gltexture_t *tex; for (int i = 0; i < n; i++) { GLuint t = textures[i]; k = kh_get(tex, list, t); if (k != kh_end(list)) { tex = kh_value(list, k); for (int j = 0; j < MAX_TEX; j++) { if (tex == state.texture.bound[j]) state.texture.bound[j] = NULL; } free(tex); kh_del(tex, list, k); } } } LOAD_GLES(glDeleteTextures); gles_glDeleteTextures(n, textures); } GLboolean glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences) { if (state.block.active) { gl_set_error(GL_INVALID_OPERATION); return 0; } if (n < 0) { gl_set_error(GL_INVALID_VALUE); return 0; } return true; } void glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities) { ERROR_IN_BLOCK(); if (n < 0) { ERROR(GL_INVALID_VALUE); } } |
Added jni/glshim/src/gl/texture.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #ifndef GL_TEXTURE_H #define GL_TEXTURE_H #include <GL/gl.h> void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *data); void glTexImage1D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *data); void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *data); void glBindTexture(GLenum target, GLuint texture); void glDeleteTextures(GLsizei n, const GLuint * textures); void glTexParameteri(GLenum target, GLenum pname, GLint param); GLboolean glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); void tex_coord_rect_arb(GLfloat *tex, GLsizei len, GLsizei width, GLsizei height); void tex_coord_npot(GLfloat *tex, GLsizei len, GLsizei width, GLsizei height, GLsizei nwidth, GLsizei nheight); int npot(int n); static inline GLenum map_tex_target(GLenum target) { switch (target) { case GL_TEXTURE_1D: case GL_TEXTURE_3D: case GL_TEXTURE_RECTANGLE_ARB: target = GL_TEXTURE_2D; break; case GL_PROXY_TEXTURE_1D: case GL_PROXY_TEXTURE_3D: target = GL_PROXY_TEXTURE_2D; break; } return target; } #endif |
Added jni/glshim/src/gl/types.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | #ifndef GL_TYPES_H #define GL_TYPES_H #include <GL/gl.h> #include <stdbool.h> #include <stdint.h> #ifdef _THREAD_SAFE #include <pthread.h> #endif #include "../config.h" #include "extypes.h" #include "khash.h" #include "tack.h" #include "vectorial/simd4x4f.h" #include "wrap/types.h" // block.h typedef struct { uint32_t len, count, cap; GLenum mode; struct { GLfloat tex[MAX_TEX][2]; } last; // TODO: dynamic type support? /* struct { GLenum vert, normal, color, tex; } type; */ GLfloat *vert; GLfloat *normal; GLfloat *color; GLfloat *tex[MAX_TEX]; GLushort *indices; GLboolean q2t; struct { int tex[MAX_TEX], color, normal; } incomplete; GLboolean open; GLboolean artificial; } block_t; typedef struct { int format; block_t *block; int refs; } block_call_t; // eval.h typedef struct { GLenum type; } map_state_t; typedef struct { GLdouble _1, _2, n, d; GLint stride, order; } mapcoordd_t; typedef struct { GLdouble _1, _2, n, d; GLint stride, order; } mapcoordf_t; typedef struct { GLenum type; GLint dims, width; mapcoordd_t u, v; GLboolean free; const GLdouble *points; } map_stated_t; typedef struct { GLenum type; GLint dims, width; mapcoordf_t u, v; GLboolean free; const GLfloat *points; } map_statef_t; // list.h typedef struct { bool open; tack_t calls; } displaylist_t; // texture.h typedef struct { GLuint texture; GLenum target; GLsizei width; GLsizei height; GLsizei nwidth; GLsizei nheight; GLboolean uploaded; } gltexture_t; KHASH_MAP_INIT_INT(tex, gltexture_t *) // state.h typedef struct { GLboolean line_stipple, blend, color_array, normal_array, tex_coord_array[MAX_TEX], texgen_q[MAX_TEX], texgen_r[MAX_TEX], texgen_s[MAX_TEX], texgen_t[MAX_TEX], texture_2d[MAX_TEX], vertex_array; } enable_state_t; typedef struct { GLenum R, Q, S, T; GLfloat Rv[4], Qv[4], Sv[4], Tv[4]; } texgen_state_t; typedef struct { GLuint unpack_row_length, unpack_skip_pixels, unpack_skip_rows; GLboolean unpack_lsb_first; // TODO: do we only need to worry about GL_TEXTURE_2D? GLboolean rect_arb[MAX_TEX]; gltexture_t *bound[MAX_TEX]; khash_t(tex) *list; // active textures GLuint active; GLuint client; } texture_state_t; typedef struct { GLint size; GLenum type; GLsizei stride; const GLvoid *pointer; } pointer_state_t; typedef struct { pointer_state_t vertex, color, normal, tex_coord[MAX_TEX]; } pointer_states_t; typedef struct { GLfloat color[4]; GLfloat normal[3]; GLfloat tex[MAX_TEX][2]; } current_state_t; typedef struct { displaylist_t *active; current_state_t current; GLuint base; GLuint name; GLenum mode; } displaylist_state_t; typedef struct { block_t *active; GLboolean locked; } block_state_t; typedef struct { map_state_t *vertex3, *vertex4, *index, *color4, *normal, *texture1, *texture2, *texture3, *texture4; } map_states_t; // matrix structs typedef struct { simd4x4f matrix; tack_t stack; bool init; } matrix_state_t; typedef struct { GLenum mode; matrix_state_t model, projection, texture[MAX_TEX], color; } matrix_states_t; typedef struct { GLboolean overflow; GLint count; GLsizei size; GLuint *buffer; tack_t names; } select_state_t; typedef struct { GLboolean overflow; GLenum type; GLfloat *buffer; GLint count, values; GLsizei size; } feedback_state_t; typedef struct { GLenum mode; } render_state_t; typedef struct { GLubyte *buf; struct { GLfloat x, y, z, w; } pos; GLfloat color[4]; GLuint pixel; GLboolean valid; } raster_state_t; typedef struct { GLfloat x, y, width, height, nwidth, nheight; } viewport_state_t; typedef struct { tack_t attrib, client; } stack_state_t; // global state struct typedef struct { displaylist_state_t list; tack_t lists; GLenum error; block_state_t block; current_state_t current; enable_state_t enable; feedback_state_t feedback; map_state_t *map_grid; map_states_t map1, map2; matrix_states_t matrix; pointer_states_t pointers; raster_state_t raster; render_state_t render; select_state_t select; stack_state_t stack; texgen_state_t texgen[MAX_TEX]; texture_state_t texture; viewport_state_t viewport; bool mvp_dirty; simd4x4f mvp; GLint stippleFactor; GLushort stipplePattern; GLubyte *stippleData; GLuint stippleTexture; struct { GLushort *cache; uint32_t len; } q2t; } glstate_t; #ifdef _THREAD_SAFE extern glstate_t *_gl_get_state(void); #define state (*_gl_get_state()) #else extern glstate_t state; #endif #define CURRENT (state.list.active ? &state.list.current : &state.current) #endif |
Added jni/glshim/src/gl/wrap/es.h.
> > > > > | 1 2 3 4 5 | #ifdef USE_ES2 #include "gles2.h" #else #include "gles.h" #endif |
Added jni/glshim/src/gl/wrap/extra.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #include "../gl.h" #include <GLES/glext.h> #ifndef GL_WRAP_H #define GL_WRAP_H #ifdef USE_ES2 void glCompileShaderARB(GLuint shader); GLuint glCreateShaderObjectARB(GLenum shaderType); void glGetObjectParameterivARB(GLuint shader, GLenum pname, GLint *params); void glShaderSourceARB(GLuint shader, GLsizei count, const GLchar **string, const GLint *length); #endif #define THUNK(suffix, type) \ void glColor3##suffix##v(const type *v); \ void glColor3##suffix(type r, type g, type b); \ void glColor4##suffix##v(const type *v); \ void glColor4##suffix(type r, type g, type b, type a); \ void glSecondaryColor3##suffix##v(const type *v); \ void glSecondaryColor3##suffix(type r, type g, type b); \ void glIndex##suffix##v(const type *c); \ void glIndex##suffix(type c); \ void glNormal3##suffix##v(const type *v); \ void glNormal3##suffix(type x, type y, type z); \ void glRasterPos2##suffix##v(const type *v); \ void glRasterPos2##suffix(type x, type y); \ void glRasterPos3##suffix##v(const type *v); \ void glRasterPos3##suffix(type x, type y, type z); \ void glRasterPos4##suffix##v(const type *v); \ void glRasterPos4##suffix(type x, type y, type z, type w); \ void glVertex2##suffix##v(const type *v); \ void glVertex2##suffix(type x, type y); \ void glVertex3##suffix##v(const type *v); \ void glVertex3##suffix(type x, type y, type z); \ void glVertex4##suffix(type x, type y, type z, type w); \ void glVertex4##suffix##v(const type *v); \ void glTexCoord1##suffix(type s); \ void glTexCoord1##suffix##v(const type *t); \ void glTexCoord2##suffix(type s, type t); \ void glTexCoord2##suffix##v(const type *t); \ void glTexCoord3##suffix(type s, type t, type r); \ void glTexCoord3##suffix##v(const type *t); \ void glTexCoord4##suffix(type s, type t, type r, type q); \ void glTexCoord4##suffix##v(const type *t); \ void glMultiTexCoord1##suffix(GLenum target, type s); \ void glMultiTexCoord1##suffix##v(GLenum target, const type *v); \ void glMultiTexCoord2##suffix(GLenum target, type s, type t); \ void glMultiTexCoord2##suffix##v(GLenum target, const type *v); \ void glMultiTexCoord3##suffix(GLenum target, type s, type t, type r); \ void glMultiTexCoord3##suffix##v(GLenum target, const type *v); \ void glMultiTexCoord4##suffix(GLenum target, type s, type t, type r, type q); \ void glMultiTexCoord4##suffix##v(GLenum target, const type *v); THUNK(b, GLbyte) THUNK(d, GLdouble) THUNK(i, GLint) THUNK(s, GLshort) THUNK(ub, GLubyte) THUNK(ui, GLuint) THUNK(us, GLushort) #undef THUNK #endif |
Added jni/glshim/src/gl/wrap/gl.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 | #include <limits.h> #include "../error.h" #include "extra.h" #define constArrayToFloat(a, size) \ GLfloat s[size]; \ int i; \ for (i = 0; i < size; i++) { \ s[i] = a[i]; \ } // naive wrappers #ifdef USE_ES2 void glCompileShaderARB(GLuint shader) { glCompileShader(shader); GLint status; glGetShaderiv(shader, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { GLint log_length; glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &log_length); GLchar *log = malloc(sizeof(GLchar) * log_length); glGetShaderInfoLog(shader, log_length, NULL, log); printf("Shader compile failed: %s\n", log); free(log); } } GLuint glCreateShaderObjectARB(GLenum shaderType) { return glCreateShader(shaderType); } void glShaderSourceARB(GLuint shader, GLsizei count, const GLchar **string, const GLint *length) { glShaderSource(shader, count, string, length); } void glGetObjectParameterivARB(GLuint shader, GLenum pname, GLint *params) { glGetShaderiv(shader, pname, params); } #endif void glActiveTextureARB(GLenum texture) { glActiveTexture(texture); } void glClearDepth(GLdouble depth) { glClearDepthf(depth); } void glClientActiveTextureARB(GLenum texture) { #ifndef USE_ES2 glClientActiveTexture(texture); #endif } void glClipPlane(GLenum plane, const GLdouble *equation) { constArrayToFloat(equation, 4); glClipPlanef(plane, s); } void glDepthRange(GLdouble nearVal, GLdouble farVal) { glDepthRangef(nearVal, farVal); } void glFogi(GLenum pname, GLint param) { glFogf(pname, param); } void glFogiv(GLenum pname, const GLint *iparams) { switch (pname) { case GL_FOG_DENSITY: case GL_FOG_START: case GL_FOG_END: case GL_FOG_INDEX: { glFogf(pname, *iparams); break; } case GL_FOG_MODE: case GL_FOG_COLOR: { GLfloat params[4]; for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } glFogfv(pname, params); break; } } } void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) { glFrustumf(left, right, bottom, top, near, far); } void glLighti(GLenum light, GLenum pname, GLint param) { glLightf(light, pname, param); } void glLightiv(GLenum light, GLenum pname, const GLint *iparams) { switch (pname) { case GL_AMBIENT: case GL_DIFFUSE: case GL_SPECULAR: case GL_POSITION: { GLfloat params[4]; for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } glLightfv(light, pname, params); break; } case GL_SPOT_DIRECTION: { GLfloat params[4]; for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } glLightfv(light, pname, params); break; } case GL_SPOT_EXPONENT: case GL_SPOT_CUTOFF: case GL_CONSTANT_ATTENUATION: case GL_LINEAR_ATTENUATION: case GL_QUADRATIC_ATTENUATION: { glLightf(light, pname, *iparams); break; } } } #ifndef USE_ES2 void glLightModeli(GLenum pname, GLint param) { glLightModelf(pname, param); } void glLightModeliv(GLenum pname, const GLint *iparams) { switch (pname) { case GL_LIGHT_MODEL_AMBIENT: { GLfloat params[4]; for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } glLightModelfv(pname, params); break; } case GL_LIGHT_MODEL_LOCAL_VIEWER: case GL_LIGHT_MODEL_TWO_SIDE: { glLightModelf(pname, *iparams); break; } } } #endif void glMateriali(GLenum face, GLenum pname, GLint param) { glMaterialf(face, pname, param); } void glMaterialiv(GLenum face, GLenum pname, const GLint *param) { GLfloat f[4]; switch (pname) { case GL_AMBIENT_AND_DIFFUSE: case GL_AMBIENT: case GL_DIFFUSE: case GL_SPECULAR: case GL_EMISSION: f[3] = param[3]; case GL_COLOR_INDEXES: f[2] = param[2]; f[1] = param[1]; case GL_SHININESS: f[0] = param[0]; break; } glMaterialfv(face, pname, f); } void glGetMaterialiv(GLenum face, GLenum pname, GLint *param) { GLfloat f[4]; glGetMaterialfv(face, pname, f); switch (pname) { case GL_AMBIENT_AND_DIFFUSE: case GL_AMBIENT: case GL_DIFFUSE: case GL_SPECULAR: case GL_EMISSION: param[3] = f[3]; case GL_COLOR_INDEXES: param[2] = f[2]; param[1] = f[1]; case GL_SHININESS: param[0] = f[0]; break; } } void glMultiTexCoord1f(GLenum target, GLfloat s) { glMultiTexCoord2f(target, s, 0); } void glMultiTexCoord1fv(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], 0); } void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t) { glMultiTexCoord2f(target, s, t); } void glMultiTexCoord2fv(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], t[1]); } void glMultiTexCoord2fvARB(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], t[1]); } void glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r) { glMultiTexCoord2f(target, s, t); } void glMultiTexCoord3fv(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], t[1]); } void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { glMultiTexCoord2f(target, s, t); } void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { glMultiTexCoord2f(target, s, t); } void glMultiTexCoord4fv(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], t[1]); } void glMultiTexCoord4fvARB(GLenum target, const GLfloat *t) { glMultiTexCoord2f(target, t[0], t[1]); } void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) { glOrthof(left, right, bottom, top, near, far); } // OES wrappers void glClearDepthfOES(GLfloat depth) { glClearDepthf(depth); } void glClipPlanefOES(GLenum plane, const GLfloat *equation) { glClipPlanef(plane, equation); } void glDepthRangefOES(GLclampf near, GLclampf far) { glDepthRangef(near, far); } void glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { glFrustumf(left, right, bottom, top, near, far); } void glGetClipPlanefOES(GLenum pname, GLfloat equation[4]) { glGetClipPlanef(pname, equation); } void glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { glOrthof(left, right, bottom, top, near, far); } // glRect #define GL_RECT(suffix, type) \ void glRect##suffix(type x1, type y1, type x2, type y2) { \ ERROR_IN_BLOCK(); \ glBegin(GL_POLYGON); \ glVertex2##suffix(x1, y1); \ glVertex2##suffix(x2, y1); \ glVertex2##suffix(x2, y2); \ glVertex2##suffix(x1, y2); \ glEnd(); \ } \ void glRect##suffix##v(const type *v1, const type *v2) { \ glRect##suffix(v1[0], v1[1], v2[0], v2[1]); \ } GL_RECT(d, GLdouble) GL_RECT(f, GLfloat) GL_RECT(i, GLint) GL_RECT(s, GLshort) #undef GL_RECT // basic thunking #define THUNK(suffix, type, max) \ /* colors */ \ void glColor3##suffix(type r, type g, type b) { \ glColor4f(r/max, g/max, b/max, 1.0f); \ } \ void glColor4##suffix(type r, type g, type b, type a) { \ glColor4f(r/max, g/max, b/max, a/max); \ } \ void glColor3##suffix##v(const type *v) { \ glColor4f(v[0]/max, v[1]/max, v[2]/max, 1.0f); \ } \ void glColor4##suffix##v(const type *v) { \ glColor4f(v[0]/max, v[1]/max, v[2]/max, v[3]/max); \ } \ void glSecondaryColor3##suffix(type r, type g, type b) { \ glSecondaryColor3f(r/max, g/max, b/max); \ } \ void glSecondaryColor3##suffix##v(const type *v) { \ glSecondaryColor3f(v[0]/max, v[1]/max, v[2]/max); \ } \ /* index */ \ void glIndex##suffix(type c) { \ glIndexf(c); \ } \ void glIndex##suffix##v(const type *c) { \ glIndexf(c[0]); \ } \ /* normal */ \ void glNormal3##suffix(type x, type y, type z) { \ glNormal3f(x, y, z); \ } \ void glNormal3##suffix##v(const type *v) { \ glNormal3f(v[0], v[1], v[2]); \ } \ /* raster */ \ void glRasterPos2##suffix(type x, type y) { \ glRasterPos3f(x, y, 0); \ } \ void glRasterPos2##suffix##v(const type *v) { \ glRasterPos3f(v[0], v[1], 0); \ } \ void glRasterPos3##suffix(type x, type y, type z) { \ glRasterPos3f(x, y, z); \ } \ void glRasterPos3##suffix##v(const type *v) { \ glRasterPos3f(v[0], v[1], v[2]); \ } \ void glRasterPos4##suffix(type x, type y, type z, type w) { \ glRasterPos4f(x, y, z, w); \ } \ void glRasterPos4##suffix##v(const type *v) { \ glRasterPos4f(v[0], v[1], v[2], v[3]); \ } \ /* vertex */ \ void glVertex2##suffix(type x, type y) { \ glVertex2f(x, y); \ } \ void glVertex2##suffix##v(const type *v) { \ glVertex2f(v[0], v[1]); \ } \ void glVertex3##suffix(type x, type y, type z) { \ glVertex3f(x, y, z); \ } \ void glVertex3##suffix##v(const type *v) { \ glVertex3f(v[0], v[1], v[2]); \ } \ void glVertex4##suffix(type r, type g, type b, type w) { \ glVertex4f(r, g, b, w); \ } \ void glVertex4##suffix##v(const type *v) { \ glVertex4f(v[0], v[1], v[2], v[3]); \ } \ /* texture */ \ void glTexCoord1##suffix(type s) { \ glTexCoord2f(s, 0); \ } \ void glTexCoord1##suffix##v(const type *t) { \ glTexCoord2f(t[0], 0); \ } \ void glTexCoord2##suffix(type s, type t) { \ glTexCoord2f(s, t); \ } \ void glTexCoord2##suffix##v(const type *t) { \ glTexCoord2f(t[0], t[1]); \ } \ void glTexCoord3##suffix(type s, type t, type r) { \ glTexCoord2f(s, t); \ } \ void glTexCoord3##suffix##v(const type *t) { \ glTexCoord2f(t[0], t[1]); \ } \ void glTexCoord4##suffix(type s, type t, type r, type q) { \ glTexCoord2f(s, t); \ } \ void glTexCoord4##suffix##v(const type *t) { \ glTexCoord2f(t[0], t[1]); \ } \ void glMultiTexCoord1##suffix(GLenum target, type s) { \ glMultiTexCoord2f(target, s, 0); \ } \ void glMultiTexCoord1##suffix##v(GLenum target, const type *v) { \ glMultiTexCoord2f(target, v[0], 0); \ } \ void glMultiTexCoord2##suffix(GLenum target, type s, type t) { \ glMultiTexCoord2f(target, s, t); \ } \ void glMultiTexCoord2##suffix##v(GLenum target, const type *v) { \ glMultiTexCoord2f(target, v[0], v[1]); \ } \ void glMultiTexCoord3##suffix(GLenum target, type s, type t, type r) { \ glMultiTexCoord2f(target, s, t); \ } \ void glMultiTexCoord3##suffix##v(GLenum target, const type *v) { \ glMultiTexCoord2f(target, v[0], v[1]); \ } \ void glMultiTexCoord4##suffix(GLenum target, type s, type t, type r, type q) { \ glMultiTexCoord2f(target, s, t); \ } \ void glMultiTexCoord4##suffix##v(GLenum target, const type *v) { \ glMultiTexCoord2f(target, v[0], v[1]); \ } THUNK(b, GLbyte, (float)CHAR_MAX) THUNK(d, GLdouble, 1.0f) THUNK(i, GLint, (float)INT_MAX) THUNK(s, GLshort, (float)SHRT_MAX) THUNK(ub, GLubyte, (float)UCHAR_MAX) THUNK(ui, GLuint, (float)UINT_MAX) THUNK(us, GLushort, (float)USHRT_MAX) #undef THUNK // glGet #define THUNK(suffix, type) \ void glGet##suffix##v(GLenum pname, type *params) { \ int i, n = 1; \ switch (pname) { \ /* two values */ \ case GL_ALIASED_POINT_SIZE_RANGE: \ case GL_ALIASED_LINE_WIDTH_RANGE: \ case GL_MAX_VIEWPORT_DIMS: \ n = 2; \ break; \ /* three values */ \ case GL_CURRENT_NORMAL: \ case GL_POINT_DISTANCE_ATTENUATION: \ n = 3; \ break; \ /* four values */ \ case GL_COLOR_CLEAR_VALUE: \ case GL_COLOR_WRITEMASK: \ case GL_CURRENT_COLOR: \ case GL_CURRENT_TEXTURE_COORDS: \ case GL_DEPTH_RANGE: \ case GL_FOG_COLOR: \ case GL_LIGHT_MODEL_AMBIENT: \ case GL_SCISSOR_BOX: \ case GL_SMOOTH_LINE_WIDTH_RANGE: \ case GL_SMOOTH_POINT_SIZE_RANGE: \ case GL_VIEWPORT: \ n = 4; \ break; \ /* GL_NUM_COMPRESSED_TEXTURE_FORMATS values */ \ case GL_COMPRESSED_TEXTURE_FORMATS: \ n = GL_NUM_COMPRESSED_TEXTURE_FORMATS; \ break; \ /* sixteen values */ \ case GL_MODELVIEW_MATRIX: \ case GL_PROJECTION_MATRIX: \ case GL_TEXTURE_MATRIX: \ n = 16; \ break; \ } \ GLfloat *p = (GLfloat *)malloc(sizeof(GLfloat) * n); \ glGetFloatv(pname, p); \ for (i = 0; i < n; i++) { \ params[i] = (type)p[i]; \ } \ free(p); \ } THUNK(Double, GLdouble) // THUNK(Integer, GLint) #undef THUNK // manually defined float wrappers, because we don't autowrap float functions // color void glColor3f(GLfloat r, GLfloat g, GLfloat b) { glColor4f(r, g, b, 1.0f); } void glColor3fv(const GLfloat *c) { glColor4f(c[0], c[1], c[2], 1.0f); } void glColor4fv(const GLfloat *c) { glColor4f(c[0], c[1], c[2], c[3]); } void glIndexfv(const GLfloat *c) { glIndexf(*c); } void glSecondaryColor3fv(const GLfloat *v) { glSecondaryColor3f(v[0], v[1], v[2]); } // raster void glRasterPos2f(GLfloat x, GLfloat y) { glRasterPos3f(x, y, 0); } void glRasterPos2fv(const GLfloat *v) { glRasterPos2i(v[0], v[1]); } void glRasterPos3fv(const GLfloat *v) { glRasterPos3f(v[0], v[1], v[2]); } void glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) { glRasterPos3f(x/w, y/w, z/w); } void glRasterPos4fv(const GLfloat *v) { glRasterPos4f(v[0], v[1], v[2], v[3]); } // eval void glEvalCoord1d(GLdouble u) { glEvalCoord1f(u); } void glEvalCoord2d(GLdouble u, GLdouble v) { glEvalCoord2f(u, v); } void glEvalCoord1fv(const GLfloat *v) { glEvalCoord1f(v[0]); } void glEvalCoord1dv(const GLdouble *v) { glEvalCoord1d(v[0]); } void glEvalCoord2fv(const GLfloat *v) { glEvalCoord2f(v[0], v[1]); } void glEvalCoord2dv(const GLdouble *v) { glEvalCoord2d(v[0], v[1]); } void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2) { glMapGrid1f(un, u1, u2); } void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) { glMapGrid2f(un, u1, u2, vn, v1, v2); } // matrix void glLoadMatrixd(const GLdouble *m) { constArrayToFloat(m, 16); glLoadMatrixf(s); } void glMultMatrixd(const GLdouble *m) { constArrayToFloat(m, 16); glMultMatrixf(s); } void glLoadTransposeMatrixd(const GLdouble *m) { constArrayToFloat(m, 16); glLoadTransposeMatrixf(s); } void glMultTransposeMatrixd(const GLdouble *m) { constArrayToFloat(m, 16); glMultTransposeMatrixf(s); } // normal void glNormal3fv(const GLfloat *v) { glNormal3f(v[0], v[1], v[2]); } // textures void glTexCoord1f(GLfloat s) { glTexCoord2f(s, 0); } void glTexCoord1fv(const GLfloat *t) { glTexCoord2f(t[0], 0); } void glTexCoord2fv(const GLfloat *t) { glTexCoord2f(t[0], t[1]); } void glTexCoord3f(GLfloat s, GLfloat t, GLfloat r) { glTexCoord2f(s, t); } void glTexCoord3fv(const GLfloat *t) { glTexCoord2f(t[0], t[1]); } void glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) { glTexCoord2f(s, t); } void glTexCoord4fv(const GLfloat *t) { glTexCoord2f(t[0], t[1]); } // texgen void glTexGend(GLenum coord, GLenum pname, GLdouble param) { glTexGeni(coord, pname, param); } void glTexGenf(GLenum coord, GLenum pname, GLfloat param) { // TODO: this is gross/lossy. glTexGeni(coord, pname, param); } void glTexGendv(GLenum coord, GLenum pname, const GLdouble *params) { if (pname == GL_TEXTURE_GEN_MODE) { GLfloat tmp = *params; glTexGenfv(coord, pname, &tmp); } else { constArrayToFloat(params, 4); glTexGenfv(coord, pname, s); } } void glTexGeniv(GLenum coord, GLenum pname, const GLint *params) { if (pname == GL_TEXTURE_GEN_MODE) { GLfloat tmp = *params; glTexGenfv(coord, pname, &tmp); } else { constArrayToFloat(params, 4); glTexGenfv(coord, pname, s); } } // transforms void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) { glRotatef(angle, x, y, z); } void glScaled(GLdouble x, GLdouble y, GLdouble z) { glScalef(x, y, z); } void glTranslated(GLdouble x, GLdouble y, GLdouble z) { glTranslatef(x, y, z); } // vertex void glVertex2f(GLfloat x, GLfloat y) { glVertex3f(x, y, 0); } void glVertex2fv(const GLfloat *v) { glVertex3f(v[0], v[1], 0); } void glVertex3fv(const GLfloat *v) { glVertex3f(v[0], v[1], v[2]); } void glVertex4f(GLfloat r, GLfloat g, GLfloat b, GLfloat w) { glVertex3f(r/w, g/w, b/w); } void glVertex4fv(const GLfloat *v) { glVertex3f(v[0]/v[3], v[1]/v[3], v[2]/v[3]); } #undef constArrayToFloat |
Added jni/glshim/src/gl/wrap/gles.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 | #ifndef USE_ES2 #include "gles.h" #include "../loader.h" #include "../skip.h" void glPackedCall(const packed_call_t *packed) { switch (packed->format) { case FORMAT_void_GLenum: { PACKED_void_GLenum *unpacked = (PACKED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLclampf: { PACKED_void_GLenum_GLclampf *unpacked = (PACKED_void_GLenum_GLclampf *)packed; ARGS_void_GLenum_GLclampf args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLclampx: { PACKED_void_GLenum_GLclampx *unpacked = (PACKED_void_GLenum_GLclampx *)packed; ARGS_void_GLenum_GLclampx args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLuint: { PACKED_void_GLenum_GLuint *unpacked = (PACKED_void_GLenum_GLuint *)packed; ARGS_void_GLenum_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum: { PACKED_void_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum: { PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *unpacked = (PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *)packed; ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLbitfield: { PACKED_void_GLbitfield *unpacked = (PACKED_void_GLbitfield *)packed; ARGS_void_GLbitfield args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf: { PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *unpacked = (PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLclampx_GLclampx_GLclampx_GLclampx: { PACKED_void_GLclampx_GLclampx_GLclampx_GLclampx *unpacked = (PACKED_void_GLclampx_GLclampx_GLclampx_GLclampx *)packed; ARGS_void_GLclampx_GLclampx_GLclampx_GLclampx args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLclampf: { PACKED_void_GLclampf *unpacked = (PACKED_void_GLclampf *)packed; ARGS_void_GLclampf args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLclampx: { PACKED_void_GLclampx *unpacked = (PACKED_void_GLclampx *)packed; ARGS_void_GLclampx args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLint: { PACKED_void_GLint *unpacked = (PACKED_void_GLint *)packed; ARGS_void_GLint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_const_GLfloat___GENPT__: { PACKED_void_GLenum_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_const_GLfixed___GENPT__: { PACKED_void_GLenum_const_GLfixed___GENPT__ *unpacked = (PACKED_void_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_const_GLfixed___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat: { PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLubyte_GLubyte_GLubyte_GLubyte: { PACKED_void_GLubyte_GLubyte_GLubyte_GLubyte *unpacked = (PACKED_void_GLubyte_GLubyte_GLubyte_GLubyte *)packed; ARGS_void_GLubyte_GLubyte_GLubyte_GLubyte args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed: { PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLboolean_GLboolean_GLboolean_GLboolean: { PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean *unpacked = (PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean *)packed; ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint: { PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *unpacked = (PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *)packed; ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei: { PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_void_GLsizei_const_GLuint___GENPT__: { PACKED_void_GLsizei_const_GLuint___GENPT__ *unpacked = (PACKED_void_GLsizei_const_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_const_GLuint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLboolean: { PACKED_void_GLboolean *unpacked = (PACKED_void_GLboolean *)packed; ARGS_void_GLboolean args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLclampf_GLclampf: { PACKED_void_GLclampf_GLclampf *unpacked = (PACKED_void_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLclampx_GLclampx: { PACKED_void_GLclampx_GLclampx *unpacked = (PACKED_void_GLclampx_GLclampx *)packed; ARGS_void_GLclampx_GLclampx args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLint_GLsizei: { PACKED_void_GLenum_GLint_GLsizei *unpacked = (PACKED_void_GLenum_GLint_GLsizei *)packed; ARGS_void_GLenum_GLint_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void: { PACKED_void *unpacked = (PACKED_void *)packed; unpacked->func(); break; } case FORMAT_void_GLenum_GLfloat: { PACKED_void_GLenum_GLfloat *unpacked = (PACKED_void_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLfixed: { PACKED_void_GLenum_GLfixed *unpacked = (PACKED_void_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat: { PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6 ); break; } case FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed: { PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6 ); break; } case FORMAT_void_GLsizei_GLuint___GENPT__: { PACKED_void_GLsizei_GLuint___GENPT__ *unpacked = (PACKED_void_GLsizei_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_GLuint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLboolean___GENPT__: { PACKED_void_GLenum_GLboolean___GENPT__ *unpacked = (PACKED_void_GLenum_GLboolean___GENPT__ *)packed; ARGS_void_GLenum_GLboolean___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum_GLint___GENPT__: { PACKED_void_GLenum_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLfloat___GENPT__: { PACKED_void_GLenum_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLfixed___GENPT__: { PACKED_void_GLenum_GLfixed___GENPT__ *unpacked = (PACKED_void_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLfixed___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_GLenum: { PACKED_GLenum *unpacked = (PACKED_GLenum *)packed; unpacked->func(); break; } case FORMAT_void_GLenum_GLint___GENPT__: { PACKED_void_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum_GLfloat___GENPT__: { PACKED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLfixed___GENPT__: { PACKED_void_GLenum_GLenum_GLfixed___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfixed___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLvoid___GENPT____GENPT__: { PACKED_void_GLenum_GLvoid___GENPT____GENPT__ *unpacked = (PACKED_void_GLenum_GLvoid___GENPT____GENPT__ *)packed; ARGS_void_GLenum_GLvoid___GENPT____GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_const_GLubyte___GENPT___GLenum: { PACKED_const_GLubyte___GENPT___GLenum *unpacked = (PACKED_const_GLubyte___GENPT___GLenum *)packed; ARGS_const_GLubyte___GENPT___GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_GLboolean_GLuint: { PACKED_GLboolean_GLuint *unpacked = (PACKED_GLboolean_GLuint *)packed; ARGS_GLboolean_GLuint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_GLboolean_GLenum: { PACKED_GLboolean_GLenum *unpacked = (PACKED_GLboolean_GLenum *)packed; ARGS_GLboolean_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLenum_GLfloat: { PACKED_void_GLenum_GLenum_GLfloat *unpacked = (PACKED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__: { PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLfixed: { PACKED_void_GLenum_GLenum_GLfixed *unpacked = (PACKED_void_GLenum_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLenum_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_const_GLfixed___GENPT__: { PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfixed___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLfloat: { PACKED_void_GLfloat *unpacked = (PACKED_void_GLfloat *)packed; ARGS_void_GLfloat args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLfixed: { PACKED_void_GLfixed *unpacked = (PACKED_void_GLfixed *)packed; ARGS_void_GLfixed args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_const_GLfloat___GENPT__: { PACKED_void_const_GLfloat___GENPT__ *unpacked = (PACKED_void_const_GLfloat___GENPT__ *)packed; ARGS_void_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_const_GLfixed___GENPT__: { PACKED_void_const_GLfixed___GENPT__ *unpacked = (PACKED_void_const_GLfixed___GENPT__ *)packed; ARGS_void_const_GLfixed___GENPT__ args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat: { PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed: { PACKED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (PACKED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLfloat_GLfloat_GLfloat: { PACKED_void_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLfixed_GLfixed_GLfixed: { PACKED_void_GLfixed_GLfixed_GLfixed *unpacked = (PACKED_void_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLint: { PACKED_void_GLenum_GLint *unpacked = (PACKED_void_GLenum_GLint *)packed; ARGS_void_GLenum_GLint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLfloat_GLfloat: { PACKED_void_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLfixed_GLfixed: { PACKED_void_GLfixed_GLfixed *unpacked = (PACKED_void_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__: { PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *unpacked = (PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7 ); break; } case FORMAT_void_GLclampf_GLboolean: { PACKED_void_GLclampf_GLboolean *unpacked = (PACKED_void_GLclampf_GLboolean *)packed; ARGS_void_GLclampf_GLboolean args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLclampx_GLboolean: { PACKED_void_GLclampx_GLboolean *unpacked = (PACKED_void_GLclampx_GLboolean *)packed; ARGS_void_GLclampx_GLboolean args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLint_GLsizei_GLsizei: { PACKED_void_GLint_GLint_GLsizei_GLsizei *unpacked = (PACKED_void_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLint_GLuint: { PACKED_void_GLenum_GLint_GLuint *unpacked = (PACKED_void_GLenum_GLint_GLuint *)packed; ARGS_void_GLenum_GLint_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint: { PACKED_void_GLuint *unpacked = (PACKED_void_GLuint *)packed; ARGS_void_GLuint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLenum_GLenum: { PACKED_void_GLenum_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLint: { PACKED_void_GLenum_GLenum_GLint *unpacked = (PACKED_void_GLenum_GLenum_GLint *)packed; ARGS_void_GLenum_GLenum_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_const_GLint___GENPT__: { PACKED_void_GLenum_GLenum_const_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_const_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLenum_GLenum_GLenum_GLenum: { PACKED_void_GLenum_GLenum_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } } } #ifndef skip_glActiveTexture void glActiveTexture(GLenum texture) { LOAD_GLES(glActiveTexture); #ifndef direct_glActiveTexture PUSH_IF_COMPILING(glActiveTexture); #endif gles_glActiveTexture(texture); } #endif #ifndef skip_glAlphaFunc void glAlphaFunc(GLenum func, GLclampf ref) { LOAD_GLES(glAlphaFunc); #ifndef direct_glAlphaFunc PUSH_IF_COMPILING(glAlphaFunc); #endif gles_glAlphaFunc(func, ref); } #endif #ifndef skip_glAlphaFuncx void glAlphaFuncx(GLenum func, GLclampx ref) { LOAD_GLES(glAlphaFuncx); #ifndef direct_glAlphaFuncx PUSH_IF_COMPILING(glAlphaFuncx); #endif gles_glAlphaFuncx(func, ref); } #endif #ifndef skip_glBindBuffer void glBindBuffer(GLenum target, GLuint buffer) { LOAD_GLES(glBindBuffer); #ifndef direct_glBindBuffer PUSH_IF_COMPILING(glBindBuffer); #endif gles_glBindBuffer(target, buffer); } #endif #ifndef skip_glBindTexture void glBindTexture(GLenum target, GLuint texture) { LOAD_GLES(glBindTexture); #ifndef direct_glBindTexture PUSH_IF_COMPILING(glBindTexture); #endif gles_glBindTexture(target, texture); } #endif #ifndef skip_glBlendColorOES void glBlendColorOES(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { LOAD_GLES(glBlendColorOES); #ifndef direct_glBlendColorOES PUSH_IF_COMPILING(glBlendColorOES); #endif gles_glBlendColorOES(red, green, blue, alpha); } #endif #ifndef skip_glBlendEquationOES void glBlendEquationOES(GLenum mode) { LOAD_GLES(glBlendEquationOES); #ifndef direct_glBlendEquationOES PUSH_IF_COMPILING(glBlendEquationOES); #endif gles_glBlendEquationOES(mode); } #endif #ifndef skip_glBlendEquationSeparateOES void glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha) { LOAD_GLES(glBlendEquationSeparateOES); #ifndef direct_glBlendEquationSeparateOES PUSH_IF_COMPILING(glBlendEquationSeparateOES); #endif gles_glBlendEquationSeparateOES(modeRGB, modeAlpha); } #endif #ifndef skip_glBlendFunc void glBlendFunc(GLenum sfactor, GLenum dfactor) { LOAD_GLES(glBlendFunc); #ifndef direct_glBlendFunc PUSH_IF_COMPILING(glBlendFunc); #endif gles_glBlendFunc(sfactor, dfactor); } #endif #ifndef skip_glBlendFuncSeparateOES void glBlendFuncSeparateOES(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { LOAD_GLES(glBlendFuncSeparateOES); #ifndef direct_glBlendFuncSeparateOES PUSH_IF_COMPILING(glBlendFuncSeparateOES); #endif gles_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); } #endif #ifndef skip_glBufferData void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) { LOAD_GLES(glBufferData); #ifndef direct_glBufferData PUSH_IF_COMPILING(glBufferData); #endif gles_glBufferData(target, size, data, usage); } #endif #ifndef skip_glBufferSubData void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) { LOAD_GLES(glBufferSubData); #ifndef direct_glBufferSubData PUSH_IF_COMPILING(glBufferSubData); #endif gles_glBufferSubData(target, offset, size, data); } #endif #ifndef skip_glClear void glClear(GLbitfield mask) { LOAD_GLES(glClear); #ifndef direct_glClear PUSH_IF_COMPILING(glClear); #endif gles_glClear(mask); } #endif #ifndef skip_glClearColor void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { LOAD_GLES(glClearColor); #ifndef direct_glClearColor PUSH_IF_COMPILING(glClearColor); #endif gles_glClearColor(red, green, blue, alpha); } #endif #ifndef skip_glClearColorx void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) { LOAD_GLES(glClearColorx); #ifndef direct_glClearColorx PUSH_IF_COMPILING(glClearColorx); #endif gles_glClearColorx(red, green, blue, alpha); } #endif #ifndef skip_glClearDepthf void glClearDepthf(GLclampf depth) { LOAD_GLES(glClearDepthf); #ifndef direct_glClearDepthf PUSH_IF_COMPILING(glClearDepthf); #endif gles_glClearDepthf(depth); } #endif #ifndef skip_glClearDepthx void glClearDepthx(GLclampx depth) { LOAD_GLES(glClearDepthx); #ifndef direct_glClearDepthx PUSH_IF_COMPILING(glClearDepthx); #endif gles_glClearDepthx(depth); } #endif #ifndef skip_glClearStencil void glClearStencil(GLint s) { LOAD_GLES(glClearStencil); #ifndef direct_glClearStencil PUSH_IF_COMPILING(glClearStencil); #endif gles_glClearStencil(s); } #endif #ifndef skip_glClientActiveTexture void glClientActiveTexture(GLenum texture) { LOAD_GLES(glClientActiveTexture); #ifndef direct_glClientActiveTexture PUSH_IF_COMPILING(glClientActiveTexture); #endif gles_glClientActiveTexture(texture); } #endif #ifndef skip_glClipPlanef void glClipPlanef(GLenum plane, const GLfloat * equation) { LOAD_GLES(glClipPlanef); #ifndef direct_glClipPlanef PUSH_IF_COMPILING(glClipPlanef); #endif gles_glClipPlanef(plane, equation); } #endif #ifndef skip_glClipPlanex void glClipPlanex(GLenum plane, const GLfixed * equation) { LOAD_GLES(glClipPlanex); #ifndef direct_glClipPlanex PUSH_IF_COMPILING(glClipPlanex); #endif gles_glClipPlanex(plane, equation); } #endif #ifndef skip_glColor4f void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { LOAD_GLES(glColor4f); #ifndef direct_glColor4f PUSH_IF_COMPILING(glColor4f); #endif gles_glColor4f(red, green, blue, alpha); } #endif #ifndef skip_glColor4ub void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) { LOAD_GLES(glColor4ub); #ifndef direct_glColor4ub PUSH_IF_COMPILING(glColor4ub); #endif gles_glColor4ub(red, green, blue, alpha); } #endif #ifndef skip_glColor4x void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { LOAD_GLES(glColor4x); #ifndef direct_glColor4x PUSH_IF_COMPILING(glColor4x); #endif gles_glColor4x(red, green, blue, alpha); } #endif #ifndef skip_glColorMask void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { LOAD_GLES(glColorMask); #ifndef direct_glColorMask PUSH_IF_COMPILING(glColorMask); #endif gles_glColorMask(red, green, blue, alpha); } #endif #ifndef skip_glColorPointer void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glColorPointer); #ifndef direct_glColorPointer PUSH_IF_COMPILING(glColorPointer); #endif gles_glColorPointer(size, type, stride, pointer); } #endif #ifndef skip_glCompressedTexImage2D void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) { LOAD_GLES(glCompressedTexImage2D); #ifndef direct_glCompressedTexImage2D PUSH_IF_COMPILING(glCompressedTexImage2D); #endif gles_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); } #endif #ifndef skip_glCompressedTexSubImage2D void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) { LOAD_GLES(glCompressedTexSubImage2D); #ifndef direct_glCompressedTexSubImage2D PUSH_IF_COMPILING(glCompressedTexSubImage2D); #endif gles_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); } #endif #ifndef skip_glCopyTexImage2D void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { LOAD_GLES(glCopyTexImage2D); #ifndef direct_glCopyTexImage2D PUSH_IF_COMPILING(glCopyTexImage2D); #endif gles_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); } #endif #ifndef skip_glCopyTexSubImage2D void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glCopyTexSubImage2D); #ifndef direct_glCopyTexSubImage2D PUSH_IF_COMPILING(glCopyTexSubImage2D); #endif gles_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); } #endif #ifndef skip_glCullFace void glCullFace(GLenum mode) { LOAD_GLES(glCullFace); #ifndef direct_glCullFace PUSH_IF_COMPILING(glCullFace); #endif gles_glCullFace(mode); } #endif #ifndef skip_glDeleteBuffers void glDeleteBuffers(GLsizei n, const GLuint * buffers) { LOAD_GLES(glDeleteBuffers); #ifndef direct_glDeleteBuffers PUSH_IF_COMPILING(glDeleteBuffers); #endif gles_glDeleteBuffers(n, buffers); } #endif #ifndef skip_glDeleteTextures void glDeleteTextures(GLsizei n, const GLuint * textures) { LOAD_GLES(glDeleteTextures); #ifndef direct_glDeleteTextures PUSH_IF_COMPILING(glDeleteTextures); #endif gles_glDeleteTextures(n, textures); } #endif #ifndef skip_glDepthFunc void glDepthFunc(GLenum func) { LOAD_GLES(glDepthFunc); #ifndef direct_glDepthFunc PUSH_IF_COMPILING(glDepthFunc); #endif gles_glDepthFunc(func); } #endif #ifndef skip_glDepthMask void glDepthMask(GLboolean flag) { LOAD_GLES(glDepthMask); #ifndef direct_glDepthMask PUSH_IF_COMPILING(glDepthMask); #endif gles_glDepthMask(flag); } #endif #ifndef skip_glDepthRangef void glDepthRangef(GLclampf near, GLclampf far) { LOAD_GLES(glDepthRangef); #ifndef direct_glDepthRangef PUSH_IF_COMPILING(glDepthRangef); #endif gles_glDepthRangef(near, far); } #endif #ifndef skip_glDepthRangex void glDepthRangex(GLclampx near, GLclampx far) { LOAD_GLES(glDepthRangex); #ifndef direct_glDepthRangex PUSH_IF_COMPILING(glDepthRangex); #endif gles_glDepthRangex(near, far); } #endif #ifndef skip_glDisable void glDisable(GLenum cap) { LOAD_GLES(glDisable); #ifndef direct_glDisable PUSH_IF_COMPILING(glDisable); #endif gles_glDisable(cap); } #endif #ifndef skip_glDisableClientState void glDisableClientState(GLenum array) { LOAD_GLES(glDisableClientState); #ifndef direct_glDisableClientState PUSH_IF_COMPILING(glDisableClientState); #endif gles_glDisableClientState(array); } #endif #ifndef skip_glDrawArrays void glDrawArrays(GLenum mode, GLint first, GLsizei count) { LOAD_GLES(glDrawArrays); #ifndef direct_glDrawArrays PUSH_IF_COMPILING(glDrawArrays); #endif gles_glDrawArrays(mode, first, count); } #endif #ifndef skip_glDrawElements void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) { LOAD_GLES(glDrawElements); #ifndef direct_glDrawElements PUSH_IF_COMPILING(glDrawElements); #endif gles_glDrawElements(mode, count, type, indices); } #endif #ifndef skip_glEnable void glEnable(GLenum cap) { LOAD_GLES(glEnable); #ifndef direct_glEnable PUSH_IF_COMPILING(glEnable); #endif gles_glEnable(cap); } #endif #ifndef skip_glEnableClientState void glEnableClientState(GLenum array) { LOAD_GLES(glEnableClientState); #ifndef direct_glEnableClientState PUSH_IF_COMPILING(glEnableClientState); #endif gles_glEnableClientState(array); } #endif #ifndef skip_glFinish void glFinish() { LOAD_GLES(glFinish); #ifndef direct_glFinish PUSH_IF_COMPILING(glFinish); #endif gles_glFinish(); } #endif #ifndef skip_glFlush void glFlush() { LOAD_GLES(glFlush); #ifndef direct_glFlush PUSH_IF_COMPILING(glFlush); #endif gles_glFlush(); } #endif #ifndef skip_glFogf void glFogf(GLenum pname, GLfloat param) { LOAD_GLES(glFogf); #ifndef direct_glFogf PUSH_IF_COMPILING(glFogf); #endif gles_glFogf(pname, param); } #endif #ifndef skip_glFogfv void glFogfv(GLenum pname, const GLfloat * params) { LOAD_GLES(glFogfv); #ifndef direct_glFogfv PUSH_IF_COMPILING(glFogfv); #endif gles_glFogfv(pname, params); } #endif #ifndef skip_glFogx void glFogx(GLenum pname, GLfixed param) { LOAD_GLES(glFogx); #ifndef direct_glFogx PUSH_IF_COMPILING(glFogx); #endif gles_glFogx(pname, param); } #endif #ifndef skip_glFogxv void glFogxv(GLenum pname, const GLfixed * params) { LOAD_GLES(glFogxv); #ifndef direct_glFogxv PUSH_IF_COMPILING(glFogxv); #endif gles_glFogxv(pname, params); } #endif #ifndef skip_glFrontFace void glFrontFace(GLenum mode) { LOAD_GLES(glFrontFace); #ifndef direct_glFrontFace PUSH_IF_COMPILING(glFrontFace); #endif gles_glFrontFace(mode); } #endif #ifndef skip_glFrustumf void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { LOAD_GLES(glFrustumf); #ifndef direct_glFrustumf PUSH_IF_COMPILING(glFrustumf); #endif gles_glFrustumf(left, right, bottom, top, near, far); } #endif #ifndef skip_glFrustumx void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far) { LOAD_GLES(glFrustumx); #ifndef direct_glFrustumx PUSH_IF_COMPILING(glFrustumx); #endif gles_glFrustumx(left, right, bottom, top, near, far); } #endif #ifndef skip_glGenBuffers void glGenBuffers(GLsizei n, GLuint * buffers) { LOAD_GLES(glGenBuffers); #ifndef direct_glGenBuffers PUSH_IF_COMPILING(glGenBuffers); #endif gles_glGenBuffers(n, buffers); } #endif #ifndef skip_glGenTextures void glGenTextures(GLsizei n, GLuint * textures) { LOAD_GLES(glGenTextures); #ifndef direct_glGenTextures PUSH_IF_COMPILING(glGenTextures); #endif gles_glGenTextures(n, textures); } #endif #ifndef skip_glGetBooleanv void glGetBooleanv(GLenum pname, GLboolean * params) { LOAD_GLES(glGetBooleanv); #ifndef direct_glGetBooleanv PUSH_IF_COMPILING(glGetBooleanv); #endif gles_glGetBooleanv(pname, params); } #endif #ifndef skip_glGetBufferParameteriv void glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetBufferParameteriv); #ifndef direct_glGetBufferParameteriv PUSH_IF_COMPILING(glGetBufferParameteriv); #endif gles_glGetBufferParameteriv(target, pname, params); } #endif #ifndef skip_glGetClipPlanef void glGetClipPlanef(GLenum plane, GLfloat * equation) { LOAD_GLES(glGetClipPlanef); #ifndef direct_glGetClipPlanef PUSH_IF_COMPILING(glGetClipPlanef); #endif gles_glGetClipPlanef(plane, equation); } #endif #ifndef skip_glGetClipPlanex void glGetClipPlanex(GLenum plane, GLfixed * equation) { LOAD_GLES(glGetClipPlanex); #ifndef direct_glGetClipPlanex PUSH_IF_COMPILING(glGetClipPlanex); #endif gles_glGetClipPlanex(plane, equation); } #endif #ifndef skip_glGetError GLenum glGetError() { LOAD_GLES(glGetError); #ifndef direct_glGetError PUSH_IF_COMPILING(glGetError); #endif return gles_glGetError(); } #endif #ifndef skip_glGetFixedv void glGetFixedv(GLenum pname, GLfixed * params) { LOAD_GLES(glGetFixedv); #ifndef direct_glGetFixedv PUSH_IF_COMPILING(glGetFixedv); #endif gles_glGetFixedv(pname, params); } #endif #ifndef skip_glGetFloatv void glGetFloatv(GLenum pname, GLfloat * params) { LOAD_GLES(glGetFloatv); #ifndef direct_glGetFloatv PUSH_IF_COMPILING(glGetFloatv); #endif gles_glGetFloatv(pname, params); } #endif #ifndef skip_glGetIntegerv void glGetIntegerv(GLenum pname, GLint * params) { LOAD_GLES(glGetIntegerv); #ifndef direct_glGetIntegerv PUSH_IF_COMPILING(glGetIntegerv); #endif gles_glGetIntegerv(pname, params); } #endif #ifndef skip_glGetLightfv void glGetLightfv(GLenum light, GLenum pname, GLfloat * params) { LOAD_GLES(glGetLightfv); #ifndef direct_glGetLightfv PUSH_IF_COMPILING(glGetLightfv); #endif gles_glGetLightfv(light, pname, params); } #endif #ifndef skip_glGetLightxv void glGetLightxv(GLenum light, GLenum pname, GLfixed * params) { LOAD_GLES(glGetLightxv); #ifndef direct_glGetLightxv PUSH_IF_COMPILING(glGetLightxv); #endif gles_glGetLightxv(light, pname, params); } #endif #ifndef skip_glGetMaterialfv void glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) { LOAD_GLES(glGetMaterialfv); #ifndef direct_glGetMaterialfv PUSH_IF_COMPILING(glGetMaterialfv); #endif gles_glGetMaterialfv(face, pname, params); } #endif #ifndef skip_glGetMaterialxv void glGetMaterialxv(GLenum face, GLenum pname, GLfixed * params) { LOAD_GLES(glGetMaterialxv); #ifndef direct_glGetMaterialxv PUSH_IF_COMPILING(glGetMaterialxv); #endif gles_glGetMaterialxv(face, pname, params); } #endif #ifndef skip_glGetPointerv void glGetPointerv(GLenum pname, GLvoid ** params) { LOAD_GLES(glGetPointerv); #ifndef direct_glGetPointerv PUSH_IF_COMPILING(glGetPointerv); #endif gles_glGetPointerv(pname, params); } #endif #ifndef skip_glGetString const GLubyte * glGetString(GLenum name) { LOAD_GLES(glGetString); #ifndef direct_glGetString PUSH_IF_COMPILING(glGetString); #endif return gles_glGetString(name); } #endif #ifndef skip_glGetTexEnvfv void glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) { LOAD_GLES(glGetTexEnvfv); #ifndef direct_glGetTexEnvfv PUSH_IF_COMPILING(glGetTexEnvfv); #endif gles_glGetTexEnvfv(target, pname, params); } #endif #ifndef skip_glGetTexEnviv void glGetTexEnviv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetTexEnviv); #ifndef direct_glGetTexEnviv PUSH_IF_COMPILING(glGetTexEnviv); #endif gles_glGetTexEnviv(target, pname, params); } #endif #ifndef skip_glGetTexEnvxv void glGetTexEnvxv(GLenum target, GLenum pname, GLfixed * params) { LOAD_GLES(glGetTexEnvxv); #ifndef direct_glGetTexEnvxv PUSH_IF_COMPILING(glGetTexEnvxv); #endif gles_glGetTexEnvxv(target, pname, params); } #endif #ifndef skip_glGetTexParameterfv void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) { LOAD_GLES(glGetTexParameterfv); #ifndef direct_glGetTexParameterfv PUSH_IF_COMPILING(glGetTexParameterfv); #endif gles_glGetTexParameterfv(target, pname, params); } #endif #ifndef skip_glGetTexParameteriv void glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetTexParameteriv); #ifndef direct_glGetTexParameteriv PUSH_IF_COMPILING(glGetTexParameteriv); #endif gles_glGetTexParameteriv(target, pname, params); } #endif #ifndef skip_glGetTexParameterxv void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed * params) { LOAD_GLES(glGetTexParameterxv); #ifndef direct_glGetTexParameterxv PUSH_IF_COMPILING(glGetTexParameterxv); #endif gles_glGetTexParameterxv(target, pname, params); } #endif #ifndef skip_glHint void glHint(GLenum target, GLenum mode) { LOAD_GLES(glHint); #ifndef direct_glHint PUSH_IF_COMPILING(glHint); #endif gles_glHint(target, mode); } #endif #ifndef skip_glIsBuffer GLboolean glIsBuffer(GLuint buffer) { LOAD_GLES(glIsBuffer); #ifndef direct_glIsBuffer PUSH_IF_COMPILING(glIsBuffer); #endif return gles_glIsBuffer(buffer); } #endif #ifndef skip_glIsEnabled GLboolean glIsEnabled(GLenum cap) { LOAD_GLES(glIsEnabled); #ifndef direct_glIsEnabled PUSH_IF_COMPILING(glIsEnabled); #endif return gles_glIsEnabled(cap); } #endif #ifndef skip_glIsTexture GLboolean glIsTexture(GLuint texture) { LOAD_GLES(glIsTexture); #ifndef direct_glIsTexture PUSH_IF_COMPILING(glIsTexture); #endif return gles_glIsTexture(texture); } #endif #ifndef skip_glLightModelf void glLightModelf(GLenum pname, GLfloat param) { LOAD_GLES(glLightModelf); #ifndef direct_glLightModelf PUSH_IF_COMPILING(glLightModelf); #endif gles_glLightModelf(pname, param); } #endif #ifndef skip_glLightModelfv void glLightModelfv(GLenum pname, const GLfloat * params) { LOAD_GLES(glLightModelfv); #ifndef direct_glLightModelfv PUSH_IF_COMPILING(glLightModelfv); #endif gles_glLightModelfv(pname, params); } #endif #ifndef skip_glLightModelx void glLightModelx(GLenum pname, GLfixed param) { LOAD_GLES(glLightModelx); #ifndef direct_glLightModelx PUSH_IF_COMPILING(glLightModelx); #endif gles_glLightModelx(pname, param); } #endif #ifndef skip_glLightModelxv void glLightModelxv(GLenum pname, const GLfixed * params) { LOAD_GLES(glLightModelxv); #ifndef direct_glLightModelxv PUSH_IF_COMPILING(glLightModelxv); #endif gles_glLightModelxv(pname, params); } #endif #ifndef skip_glLightf void glLightf(GLenum light, GLenum pname, GLfloat param) { LOAD_GLES(glLightf); #ifndef direct_glLightf PUSH_IF_COMPILING(glLightf); #endif gles_glLightf(light, pname, param); } #endif #ifndef skip_glLightfv void glLightfv(GLenum light, GLenum pname, const GLfloat * params) { LOAD_GLES(glLightfv); #ifndef direct_glLightfv PUSH_IF_COMPILING(glLightfv); #endif gles_glLightfv(light, pname, params); } #endif #ifndef skip_glLightx void glLightx(GLenum light, GLenum pname, GLfixed param) { LOAD_GLES(glLightx); #ifndef direct_glLightx PUSH_IF_COMPILING(glLightx); #endif gles_glLightx(light, pname, param); } #endif #ifndef skip_glLightxv void glLightxv(GLenum light, GLenum pname, const GLfixed * params) { LOAD_GLES(glLightxv); #ifndef direct_glLightxv PUSH_IF_COMPILING(glLightxv); #endif gles_glLightxv(light, pname, params); } #endif #ifndef skip_glLineWidth void glLineWidth(GLfloat width) { LOAD_GLES(glLineWidth); #ifndef direct_glLineWidth PUSH_IF_COMPILING(glLineWidth); #endif gles_glLineWidth(width); } #endif #ifndef skip_glLineWidthx void glLineWidthx(GLfixed width) { LOAD_GLES(glLineWidthx); #ifndef direct_glLineWidthx PUSH_IF_COMPILING(glLineWidthx); #endif gles_glLineWidthx(width); } #endif #ifndef skip_glLoadIdentity void glLoadIdentity() { LOAD_GLES(glLoadIdentity); #ifndef direct_glLoadIdentity PUSH_IF_COMPILING(glLoadIdentity); #endif gles_glLoadIdentity(); } #endif #ifndef skip_glLoadMatrixf void glLoadMatrixf(const GLfloat * m) { LOAD_GLES(glLoadMatrixf); #ifndef direct_glLoadMatrixf PUSH_IF_COMPILING(glLoadMatrixf); #endif gles_glLoadMatrixf(m); } #endif #ifndef skip_glLoadMatrixx void glLoadMatrixx(const GLfixed * m) { LOAD_GLES(glLoadMatrixx); #ifndef direct_glLoadMatrixx PUSH_IF_COMPILING(glLoadMatrixx); #endif gles_glLoadMatrixx(m); } #endif #ifndef skip_glLogicOp void glLogicOp(GLenum opcode) { LOAD_GLES(glLogicOp); #ifndef direct_glLogicOp PUSH_IF_COMPILING(glLogicOp); #endif gles_glLogicOp(opcode); } #endif #ifndef skip_glMaterialf void glMaterialf(GLenum face, GLenum pname, GLfloat param) { LOAD_GLES(glMaterialf); #ifndef direct_glMaterialf PUSH_IF_COMPILING(glMaterialf); #endif gles_glMaterialf(face, pname, param); } #endif #ifndef skip_glMaterialfv void glMaterialfv(GLenum face, GLenum pname, const GLfloat * params) { LOAD_GLES(glMaterialfv); #ifndef direct_glMaterialfv PUSH_IF_COMPILING(glMaterialfv); #endif gles_glMaterialfv(face, pname, params); } #endif #ifndef skip_glMaterialx void glMaterialx(GLenum face, GLenum pname, GLfixed param) { LOAD_GLES(glMaterialx); #ifndef direct_glMaterialx PUSH_IF_COMPILING(glMaterialx); #endif gles_glMaterialx(face, pname, param); } #endif #ifndef skip_glMaterialxv void glMaterialxv(GLenum face, GLenum pname, const GLfixed * params) { LOAD_GLES(glMaterialxv); #ifndef direct_glMaterialxv PUSH_IF_COMPILING(glMaterialxv); #endif gles_glMaterialxv(face, pname, params); } #endif #ifndef skip_glMatrixMode void glMatrixMode(GLenum mode) { LOAD_GLES(glMatrixMode); #ifndef direct_glMatrixMode PUSH_IF_COMPILING(glMatrixMode); #endif gles_glMatrixMode(mode); } #endif #ifndef skip_glMultMatrixf void glMultMatrixf(const GLfloat * m) { LOAD_GLES(glMultMatrixf); #ifndef direct_glMultMatrixf PUSH_IF_COMPILING(glMultMatrixf); #endif gles_glMultMatrixf(m); } #endif #ifndef skip_glMultMatrixx void glMultMatrixx(const GLfixed * m) { LOAD_GLES(glMultMatrixx); #ifndef direct_glMultMatrixx PUSH_IF_COMPILING(glMultMatrixx); #endif gles_glMultMatrixx(m); } #endif #ifndef skip_glMultiTexCoord4f void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { LOAD_GLES(glMultiTexCoord4f); #ifndef direct_glMultiTexCoord4f PUSH_IF_COMPILING(glMultiTexCoord4f); #endif gles_glMultiTexCoord4f(target, s, t, r, q); } #endif #ifndef skip_glMultiTexCoord4x void glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { LOAD_GLES(glMultiTexCoord4x); #ifndef direct_glMultiTexCoord4x PUSH_IF_COMPILING(glMultiTexCoord4x); #endif gles_glMultiTexCoord4x(target, s, t, r, q); } #endif #ifndef skip_glNormal3f void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) { LOAD_GLES(glNormal3f); #ifndef direct_glNormal3f PUSH_IF_COMPILING(glNormal3f); #endif gles_glNormal3f(nx, ny, nz); } #endif #ifndef skip_glNormal3x void glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz) { LOAD_GLES(glNormal3x); #ifndef direct_glNormal3x PUSH_IF_COMPILING(glNormal3x); #endif gles_glNormal3x(nx, ny, nz); } #endif #ifndef skip_glNormalPointer void glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glNormalPointer); #ifndef direct_glNormalPointer PUSH_IF_COMPILING(glNormalPointer); #endif gles_glNormalPointer(type, stride, pointer); } #endif #ifndef skip_glOrthof void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { LOAD_GLES(glOrthof); #ifndef direct_glOrthof PUSH_IF_COMPILING(glOrthof); #endif gles_glOrthof(left, right, bottom, top, near, far); } #endif #ifndef skip_glOrthox void glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far) { LOAD_GLES(glOrthox); #ifndef direct_glOrthox PUSH_IF_COMPILING(glOrthox); #endif gles_glOrthox(left, right, bottom, top, near, far); } #endif #ifndef skip_glPixelStorei void glPixelStorei(GLenum pname, GLint param) { LOAD_GLES(glPixelStorei); #ifndef direct_glPixelStorei PUSH_IF_COMPILING(glPixelStorei); #endif gles_glPixelStorei(pname, param); } #endif #ifndef skip_glPointParameterf void glPointParameterf(GLenum pname, GLfloat param) { LOAD_GLES(glPointParameterf); #ifndef direct_glPointParameterf PUSH_IF_COMPILING(glPointParameterf); #endif gles_glPointParameterf(pname, param); } #endif #ifndef skip_glPointParameterfv void glPointParameterfv(GLenum pname, const GLfloat * params) { LOAD_GLES(glPointParameterfv); #ifndef direct_glPointParameterfv PUSH_IF_COMPILING(glPointParameterfv); #endif gles_glPointParameterfv(pname, params); } #endif #ifndef skip_glPointParameterx void glPointParameterx(GLenum pname, GLfixed param) { LOAD_GLES(glPointParameterx); #ifndef direct_glPointParameterx PUSH_IF_COMPILING(glPointParameterx); #endif gles_glPointParameterx(pname, param); } #endif #ifndef skip_glPointParameterxv void glPointParameterxv(GLenum pname, const GLfixed * params) { LOAD_GLES(glPointParameterxv); #ifndef direct_glPointParameterxv PUSH_IF_COMPILING(glPointParameterxv); #endif gles_glPointParameterxv(pname, params); } #endif #ifndef skip_glPointSize void glPointSize(GLfloat size) { LOAD_GLES(glPointSize); #ifndef direct_glPointSize PUSH_IF_COMPILING(glPointSize); #endif gles_glPointSize(size); } #endif #ifndef skip_glPointSizePointerOES void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glPointSizePointerOES); #ifndef direct_glPointSizePointerOES PUSH_IF_COMPILING(glPointSizePointerOES); #endif gles_glPointSizePointerOES(type, stride, pointer); } #endif #ifndef skip_glPointSizex void glPointSizex(GLfixed size) { LOAD_GLES(glPointSizex); #ifndef direct_glPointSizex PUSH_IF_COMPILING(glPointSizex); #endif gles_glPointSizex(size); } #endif #ifndef skip_glPolygonOffset void glPolygonOffset(GLfloat factor, GLfloat units) { LOAD_GLES(glPolygonOffset); #ifndef direct_glPolygonOffset PUSH_IF_COMPILING(glPolygonOffset); #endif gles_glPolygonOffset(factor, units); } #endif #ifndef skip_glPolygonOffsetx void glPolygonOffsetx(GLfixed factor, GLfixed units) { LOAD_GLES(glPolygonOffsetx); #ifndef direct_glPolygonOffsetx PUSH_IF_COMPILING(glPolygonOffsetx); #endif gles_glPolygonOffsetx(factor, units); } #endif #ifndef skip_glPopMatrix void glPopMatrix() { LOAD_GLES(glPopMatrix); #ifndef direct_glPopMatrix PUSH_IF_COMPILING(glPopMatrix); #endif gles_glPopMatrix(); } #endif #ifndef skip_glPushMatrix void glPushMatrix() { LOAD_GLES(glPushMatrix); #ifndef direct_glPushMatrix PUSH_IF_COMPILING(glPushMatrix); #endif gles_glPushMatrix(); } #endif #ifndef skip_glReadPixels void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) { LOAD_GLES(glReadPixels); #ifndef direct_glReadPixels PUSH_IF_COMPILING(glReadPixels); #endif gles_glReadPixels(x, y, width, height, format, type, pixels); } #endif #ifndef skip_glRotatef void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { LOAD_GLES(glRotatef); #ifndef direct_glRotatef PUSH_IF_COMPILING(glRotatef); #endif gles_glRotatef(angle, x, y, z); } #endif #ifndef skip_glRotatex void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) { LOAD_GLES(glRotatex); #ifndef direct_glRotatex PUSH_IF_COMPILING(glRotatex); #endif gles_glRotatex(angle, x, y, z); } #endif #ifndef skip_glSampleCoverage void glSampleCoverage(GLclampf value, GLboolean invert) { LOAD_GLES(glSampleCoverage); #ifndef direct_glSampleCoverage PUSH_IF_COMPILING(glSampleCoverage); #endif gles_glSampleCoverage(value, invert); } #endif #ifndef skip_glSampleCoveragex void glSampleCoveragex(GLclampx value, GLboolean invert) { LOAD_GLES(glSampleCoveragex); #ifndef direct_glSampleCoveragex PUSH_IF_COMPILING(glSampleCoveragex); #endif gles_glSampleCoveragex(value, invert); } #endif #ifndef skip_glScalef void glScalef(GLfloat x, GLfloat y, GLfloat z) { LOAD_GLES(glScalef); #ifndef direct_glScalef PUSH_IF_COMPILING(glScalef); #endif gles_glScalef(x, y, z); } #endif #ifndef skip_glScalex void glScalex(GLfixed x, GLfixed y, GLfixed z) { LOAD_GLES(glScalex); #ifndef direct_glScalex PUSH_IF_COMPILING(glScalex); #endif gles_glScalex(x, y, z); } #endif #ifndef skip_glScissor void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glScissor); #ifndef direct_glScissor PUSH_IF_COMPILING(glScissor); #endif gles_glScissor(x, y, width, height); } #endif #ifndef skip_glShadeModel void glShadeModel(GLenum mode) { LOAD_GLES(glShadeModel); #ifndef direct_glShadeModel PUSH_IF_COMPILING(glShadeModel); #endif gles_glShadeModel(mode); } #endif #ifndef skip_glStencilFunc void glStencilFunc(GLenum func, GLint ref, GLuint mask) { LOAD_GLES(glStencilFunc); #ifndef direct_glStencilFunc PUSH_IF_COMPILING(glStencilFunc); #endif gles_glStencilFunc(func, ref, mask); } #endif #ifndef skip_glStencilMask void glStencilMask(GLuint mask) { LOAD_GLES(glStencilMask); #ifndef direct_glStencilMask PUSH_IF_COMPILING(glStencilMask); #endif gles_glStencilMask(mask); } #endif #ifndef skip_glStencilOp void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { LOAD_GLES(glStencilOp); #ifndef direct_glStencilOp PUSH_IF_COMPILING(glStencilOp); #endif gles_glStencilOp(fail, zfail, zpass); } #endif #ifndef skip_glTexCoordPointer void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glTexCoordPointer); #ifndef direct_glTexCoordPointer PUSH_IF_COMPILING(glTexCoordPointer); #endif gles_glTexCoordPointer(size, type, stride, pointer); } #endif #ifndef skip_glTexEnvf void glTexEnvf(GLenum target, GLenum pname, GLfloat param) { LOAD_GLES(glTexEnvf); #ifndef direct_glTexEnvf PUSH_IF_COMPILING(glTexEnvf); #endif gles_glTexEnvf(target, pname, param); } #endif #ifndef skip_glTexEnvfv void glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params) { LOAD_GLES(glTexEnvfv); #ifndef direct_glTexEnvfv PUSH_IF_COMPILING(glTexEnvfv); #endif gles_glTexEnvfv(target, pname, params); } #endif #ifndef skip_glTexEnvi void glTexEnvi(GLenum target, GLenum pname, GLint param) { LOAD_GLES(glTexEnvi); #ifndef direct_glTexEnvi PUSH_IF_COMPILING(glTexEnvi); #endif gles_glTexEnvi(target, pname, param); } #endif #ifndef skip_glTexEnviv void glTexEnviv(GLenum target, GLenum pname, const GLint * params) { LOAD_GLES(glTexEnviv); #ifndef direct_glTexEnviv PUSH_IF_COMPILING(glTexEnviv); #endif gles_glTexEnviv(target, pname, params); } #endif #ifndef skip_glTexEnvx void glTexEnvx(GLenum target, GLenum pname, GLfixed param) { LOAD_GLES(glTexEnvx); #ifndef direct_glTexEnvx PUSH_IF_COMPILING(glTexEnvx); #endif gles_glTexEnvx(target, pname, param); } #endif #ifndef skip_glTexEnvxv void glTexEnvxv(GLenum target, GLenum pname, const GLfixed * params) { LOAD_GLES(glTexEnvxv); #ifndef direct_glTexEnvxv PUSH_IF_COMPILING(glTexEnvxv); #endif gles_glTexEnvxv(target, pname, params); } #endif #ifndef skip_glTexImage2D void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) { LOAD_GLES(glTexImage2D); #ifndef direct_glTexImage2D PUSH_IF_COMPILING(glTexImage2D); #endif gles_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); } #endif #ifndef skip_glTexParameterf void glTexParameterf(GLenum target, GLenum pname, GLfloat param) { LOAD_GLES(glTexParameterf); #ifndef direct_glTexParameterf PUSH_IF_COMPILING(glTexParameterf); #endif gles_glTexParameterf(target, pname, param); } #endif #ifndef skip_glTexParameterfv void glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) { LOAD_GLES(glTexParameterfv); #ifndef direct_glTexParameterfv PUSH_IF_COMPILING(glTexParameterfv); #endif gles_glTexParameterfv(target, pname, params); } #endif #ifndef skip_glTexParameteri void glTexParameteri(GLenum target, GLenum pname, GLint param) { LOAD_GLES(glTexParameteri); #ifndef direct_glTexParameteri PUSH_IF_COMPILING(glTexParameteri); #endif gles_glTexParameteri(target, pname, param); } #endif #ifndef skip_glTexParameteriv void glTexParameteriv(GLenum target, GLenum pname, const GLint * params) { LOAD_GLES(glTexParameteriv); #ifndef direct_glTexParameteriv PUSH_IF_COMPILING(glTexParameteriv); #endif gles_glTexParameteriv(target, pname, params); } #endif #ifndef skip_glTexParameterx void glTexParameterx(GLenum target, GLenum pname, GLfixed param) { LOAD_GLES(glTexParameterx); #ifndef direct_glTexParameterx PUSH_IF_COMPILING(glTexParameterx); #endif gles_glTexParameterx(target, pname, param); } #endif #ifndef skip_glTexParameterxv void glTexParameterxv(GLenum target, GLenum pname, const GLfixed * params) { LOAD_GLES(glTexParameterxv); #ifndef direct_glTexParameterxv PUSH_IF_COMPILING(glTexParameterxv); #endif gles_glTexParameterxv(target, pname, params); } #endif #ifndef skip_glTexSubImage2D void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) { LOAD_GLES(glTexSubImage2D); #ifndef direct_glTexSubImage2D PUSH_IF_COMPILING(glTexSubImage2D); #endif gles_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); } #endif #ifndef skip_glTranslatef void glTranslatef(GLfloat x, GLfloat y, GLfloat z) { LOAD_GLES(glTranslatef); #ifndef direct_glTranslatef PUSH_IF_COMPILING(glTranslatef); #endif gles_glTranslatef(x, y, z); } #endif #ifndef skip_glTranslatex void glTranslatex(GLfixed x, GLfixed y, GLfixed z) { LOAD_GLES(glTranslatex); #ifndef direct_glTranslatex PUSH_IF_COMPILING(glTranslatex); #endif gles_glTranslatex(x, y, z); } #endif #ifndef skip_glVertexPointer void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glVertexPointer); #ifndef direct_glVertexPointer PUSH_IF_COMPILING(glVertexPointer); #endif gles_glVertexPointer(size, type, stride, pointer); } #endif #ifndef skip_glViewport void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glViewport); #ifndef direct_glViewport PUSH_IF_COMPILING(glViewport); #endif gles_glViewport(x, y, width, height); } #endif #endif |
Added jni/glshim/src/gl/wrap/gles.h.
more than 10,000 changes
Added jni/glshim/src/gl/wrap/gles2.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 | #ifdef USE_ES2 #include "gles2.h" #include "../loader.h" void glPackedCall(const packed_call_t *packed) { switch (packed->format) { case FORMAT_void_GLenum: { PACKED_void_GLenum *unpacked = (PACKED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLuint_GLuint: { PACKED_void_GLuint_GLuint *unpacked = (PACKED_void_GLuint_GLuint *)packed; ARGS_void_GLuint_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLuint_GLuint_const_GLchar___GENPT__: { PACKED_void_GLuint_GLuint_const_GLchar___GENPT__ *unpacked = (PACKED_void_GLuint_GLuint_const_GLchar___GENPT__ *)packed; ARGS_void_GLuint_GLuint_const_GLchar___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLuint: { PACKED_void_GLenum_GLuint *unpacked = (PACKED_void_GLenum_GLuint *)packed; ARGS_void_GLenum_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf: { PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *unpacked = (PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLenum: { PACKED_void_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum_GLenum_GLenum: { PACKED_void_GLenum_GLenum_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum: { PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *unpacked = (PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *)packed; ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_GLenum_GLenum: { PACKED_GLenum_GLenum *unpacked = (PACKED_GLenum_GLenum *)packed; ARGS_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLbitfield: { PACKED_void_GLbitfield *unpacked = (PACKED_void_GLbitfield *)packed; ARGS_void_GLbitfield args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLclampf: { PACKED_void_GLclampf *unpacked = (PACKED_void_GLclampf *)packed; ARGS_void_GLclampf args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLint: { PACKED_void_GLint *unpacked = (PACKED_void_GLint *)packed; ARGS_void_GLint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLboolean_GLboolean_GLboolean_GLboolean: { PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean *unpacked = (PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean *)packed; ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLuint: { PACKED_void_GLuint *unpacked = (PACKED_void_GLuint *)packed; ARGS_void_GLuint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint: { PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *unpacked = (PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *)packed; ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei: { PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8 ); break; } case FORMAT_GLuint: { PACKED_GLuint *unpacked = (PACKED_GLuint *)packed; unpacked->func(); break; } case FORMAT_GLuint_GLenum: { PACKED_GLuint_GLenum *unpacked = (PACKED_GLuint_GLenum *)packed; ARGS_GLuint_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLsizei_const_GLuint___GENPT__: { PACKED_void_GLsizei_const_GLuint___GENPT__ *unpacked = (PACKED_void_GLsizei_const_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_const_GLuint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLboolean: { PACKED_void_GLboolean *unpacked = (PACKED_void_GLboolean *)packed; ARGS_void_GLboolean args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLclampf_GLclampf: { PACKED_void_GLclampf_GLclampf *unpacked = (PACKED_void_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLint_GLsizei: { PACKED_void_GLenum_GLint_GLsizei *unpacked = (PACKED_void_GLenum_GLint_GLsizei *)packed; ARGS_void_GLenum_GLint_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void: { PACKED_void *unpacked = (PACKED_void *)packed; unpacked->func(); break; } case FORMAT_void_GLenum_GLenum_GLenum_GLuint: { PACKED_void_GLenum_GLenum_GLenum_GLuint *unpacked = (PACKED_void_GLenum_GLenum_GLenum_GLuint *)packed; ARGS_void_GLenum_GLenum_GLenum_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint: { PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint *unpacked = (PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint *)packed; ARGS_void_GLenum_GLenum_GLenum_GLuint_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLsizei_GLuint___GENPT__: { PACKED_void_GLsizei_GLuint___GENPT__ *unpacked = (PACKED_void_GLsizei_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_GLuint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__: { PACKED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ *unpacked = (PACKED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ *)packed; ARGS_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7 ); break; } case FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__: { PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ *unpacked = (PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ *)packed; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_GLint_GLuint_const_GLchar___GENPT__: { PACKED_GLint_GLuint_const_GLchar___GENPT__ *unpacked = (PACKED_GLint_GLuint_const_GLchar___GENPT__ *)packed; ARGS_GLint_GLuint_const_GLchar___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLboolean___GENPT__: { PACKED_void_GLenum_GLboolean___GENPT__ *unpacked = (PACKED_void_GLenum_GLboolean___GENPT__ *)packed; ARGS_void_GLenum_GLboolean___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum_GLint___GENPT__: { PACKED_void_GLenum_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_GLenum: { PACKED_GLenum *unpacked = (PACKED_GLenum *)packed; unpacked->func(); break; } case FORMAT_void_GLenum_GLfloat___GENPT__: { PACKED_void_GLenum_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__: { PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLint___GENPT__: { PACKED_void_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__: { PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ *unpacked = (PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ *)packed; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLuint_GLenum_GLint___GENPT__: { PACKED_void_GLuint_GLenum_GLint___GENPT__ *unpacked = (PACKED_void_GLuint_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLuint_GLenum_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__: { PACKED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_const_GLubyte___GENPT___GLenum: { PACKED_const_GLubyte___GENPT___GLenum *unpacked = (PACKED_const_GLubyte___GENPT___GLenum *)packed; ARGS_const_GLubyte___GENPT___GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLenum_GLfloat___GENPT__: { PACKED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint_GLint_GLfloat___GENPT__: { PACKED_void_GLuint_GLint_GLfloat___GENPT__ *unpacked = (PACKED_void_GLuint_GLint_GLfloat___GENPT__ *)packed; ARGS_void_GLuint_GLint_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint_GLint_GLint___GENPT__: { PACKED_void_GLuint_GLint_GLint___GENPT__ *unpacked = (PACKED_void_GLuint_GLint_GLint___GENPT__ *)packed; ARGS_void_GLuint_GLint_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint_GLenum_GLvoid___GENPT____GENPT__: { PACKED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ *unpacked = (PACKED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ *)packed; ARGS_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint_GLenum_GLfloat___GENPT__: { PACKED_void_GLuint_GLenum_GLfloat___GENPT__ *unpacked = (PACKED_void_GLuint_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLuint_GLenum_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_GLboolean_GLuint: { PACKED_GLboolean_GLuint *unpacked = (PACKED_GLboolean_GLuint *)packed; ARGS_GLboolean_GLuint args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_GLboolean_GLenum: { PACKED_GLboolean_GLenum *unpacked = (PACKED_GLboolean_GLenum *)packed; ARGS_GLboolean_GLenum args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLfloat: { PACKED_void_GLfloat *unpacked = (PACKED_void_GLfloat *)packed; ARGS_void_GLfloat args = unpacked->args; unpacked->func(args.a1 ); break; } case FORMAT_void_GLenum_GLint: { PACKED_void_GLenum_GLint *unpacked = (PACKED_void_GLenum_GLint *)packed; ARGS_void_GLenum_GLint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLfloat_GLfloat: { PACKED_void_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__: { PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *unpacked = (PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7 ); break; } case FORMAT_void_GLenum_GLenum_GLsizei_GLsizei: { PACKED_void_GLenum_GLenum_GLsizei_GLsizei *unpacked = (PACKED_void_GLenum_GLenum_GLsizei_GLsizei *)packed; ARGS_void_GLenum_GLenum_GLsizei_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLclampf_GLboolean: { PACKED_void_GLclampf_GLboolean *unpacked = (PACKED_void_GLclampf_GLboolean *)packed; ARGS_void_GLclampf_GLboolean args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLint_GLsizei_GLsizei: { PACKED_void_GLint_GLint_GLsizei_GLsizei *unpacked = (PACKED_void_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei: { PACKED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei *unpacked = (PACKED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei *)packed; ARGS_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__: { PACKED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ *unpacked = (PACKED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ *)packed; ARGS_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLint_GLuint: { PACKED_void_GLenum_GLint_GLuint *unpacked = (PACKED_void_GLenum_GLint_GLuint *)packed; ARGS_void_GLenum_GLint_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLint_GLuint: { PACKED_void_GLenum_GLenum_GLint_GLuint *unpacked = (PACKED_void_GLenum_GLenum_GLint_GLuint *)packed; ARGS_void_GLenum_GLenum_GLint_GLuint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLenum_GLenum_GLenum: { PACKED_void_GLenum_GLenum_GLenum *unpacked = (PACKED_void_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLenum_GLenum_GLfloat: { PACKED_void_GLenum_GLenum_GLfloat *unpacked = (PACKED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__: { PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_GLint: { PACKED_void_GLenum_GLenum_GLint *unpacked = (PACKED_void_GLenum_GLenum_GLint *)packed; ARGS_void_GLenum_GLenum_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLenum_const_GLint___GENPT__: { PACKED_void_GLenum_GLenum_const_GLint___GENPT__ *unpacked = (PACKED_void_GLenum_GLenum_const_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__: { PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9 ); break; } case FORMAT_void_GLint_GLfloat: { PACKED_void_GLint_GLfloat *unpacked = (PACKED_void_GLint_GLfloat *)packed; ARGS_void_GLint_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__: { PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ *)packed; ARGS_void_GLint_GLsizei_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLint_GLint: { PACKED_void_GLint_GLint *unpacked = (PACKED_void_GLint_GLint *)packed; ARGS_void_GLint_GLint args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLint_GLsizei_const_GLint___GENPT__: { PACKED_void_GLint_GLsizei_const_GLint___GENPT__ *unpacked = (PACKED_void_GLint_GLsizei_const_GLint___GENPT__ *)packed; ARGS_void_GLint_GLsizei_const_GLint___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLint_GLfloat_GLfloat: { PACKED_void_GLint_GLfloat_GLfloat *unpacked = (PACKED_void_GLint_GLfloat_GLfloat *)packed; ARGS_void_GLint_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLint_GLint_GLint: { PACKED_void_GLint_GLint_GLint *unpacked = (PACKED_void_GLint_GLint_GLint *)packed; ARGS_void_GLint_GLint_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLint_GLfloat_GLfloat_GLfloat: { PACKED_void_GLint_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLint_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLint_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLint_GLint_GLint_GLint: { PACKED_void_GLint_GLint_GLint_GLint *unpacked = (PACKED_void_GLint_GLint_GLint_GLint *)packed; ARGS_void_GLint_GLint_GLint_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat: { PACKED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLint_GLint_GLint_GLint_GLint: { PACKED_void_GLint_GLint_GLint_GLint_GLint *unpacked = (PACKED_void_GLint_GLint_GLint_GLint_GLint *)packed; ARGS_void_GLint_GLint_GLint_GLint_GLint args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__: { PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ *)packed; ARGS_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLuint_GLfloat: { PACKED_void_GLuint_GLfloat *unpacked = (PACKED_void_GLuint_GLfloat *)packed; ARGS_void_GLuint_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLuint_const_GLfloat___GENPT__: { PACKED_void_GLuint_const_GLfloat___GENPT__ *unpacked = (PACKED_void_GLuint_const_GLfloat___GENPT__ *)packed; ARGS_void_GLuint_const_GLfloat___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2 ); break; } case FORMAT_void_GLuint_GLfloat_GLfloat: { PACKED_void_GLuint_GLfloat_GLfloat *unpacked = (PACKED_void_GLuint_GLfloat_GLfloat *)packed; ARGS_void_GLuint_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3 ); break; } case FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat: { PACKED_void_GLuint_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLuint_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4 ); break; } case FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat: { PACKED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5 ); break; } case FORMAT_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__: { PACKED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ *unpacked = (PACKED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5, args.a6 ); break; } } } #ifndef skip_glActiveTexture void glActiveTexture(GLenum texture) { LOAD_GLES(glActiveTexture); #ifndef direct_glActiveTexture PUSH_IF_COMPILING(glActiveTexture); #endif gles_glActiveTexture(texture); } #endif #ifndef skip_glAttachShader void glAttachShader(GLuint program, GLuint shader) { LOAD_GLES(glAttachShader); #ifndef direct_glAttachShader PUSH_IF_COMPILING(glAttachShader); #endif gles_glAttachShader(program, shader); } #endif #ifndef skip_glBindAttribLocation void glBindAttribLocation(GLuint program, GLuint index, const GLchar * name) { LOAD_GLES(glBindAttribLocation); #ifndef direct_glBindAttribLocation PUSH_IF_COMPILING(glBindAttribLocation); #endif gles_glBindAttribLocation(program, index, name); } #endif #ifndef skip_glBindBuffer void glBindBuffer(GLenum target, GLuint buffer) { LOAD_GLES(glBindBuffer); #ifndef direct_glBindBuffer PUSH_IF_COMPILING(glBindBuffer); #endif gles_glBindBuffer(target, buffer); } #endif #ifndef skip_glBindFramebuffer void glBindFramebuffer(GLenum target, GLuint framebuffer) { LOAD_GLES(glBindFramebuffer); #ifndef direct_glBindFramebuffer PUSH_IF_COMPILING(glBindFramebuffer); #endif gles_glBindFramebuffer(target, framebuffer); } #endif #ifndef skip_glBindRenderbuffer void glBindRenderbuffer(GLenum target, GLuint renderbuffer) { LOAD_GLES(glBindRenderbuffer); #ifndef direct_glBindRenderbuffer PUSH_IF_COMPILING(glBindRenderbuffer); #endif gles_glBindRenderbuffer(target, renderbuffer); } #endif #ifndef skip_glBindTexture void glBindTexture(GLenum target, GLuint texture) { LOAD_GLES(glBindTexture); #ifndef direct_glBindTexture PUSH_IF_COMPILING(glBindTexture); #endif gles_glBindTexture(target, texture); } #endif #ifndef skip_glBlendColor void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { LOAD_GLES(glBlendColor); #ifndef direct_glBlendColor PUSH_IF_COMPILING(glBlendColor); #endif gles_glBlendColor(red, green, blue, alpha); } #endif #ifndef skip_glBlendEquation void glBlendEquation(GLenum mode) { LOAD_GLES(glBlendEquation); #ifndef direct_glBlendEquation PUSH_IF_COMPILING(glBlendEquation); #endif gles_glBlendEquation(mode); } #endif #ifndef skip_glBlendEquationSeparate void glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) { LOAD_GLES(glBlendEquationSeparate); #ifndef direct_glBlendEquationSeparate PUSH_IF_COMPILING(glBlendEquationSeparate); #endif gles_glBlendEquationSeparate(modeRGB, modeA); } #endif #ifndef skip_glBlendFunc void glBlendFunc(GLenum sfactor, GLenum dfactor) { LOAD_GLES(glBlendFunc); #ifndef direct_glBlendFunc PUSH_IF_COMPILING(glBlendFunc); #endif gles_glBlendFunc(sfactor, dfactor); } #endif #ifndef skip_glBlendFuncSeparate void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { LOAD_GLES(glBlendFuncSeparate); #ifndef direct_glBlendFuncSeparate PUSH_IF_COMPILING(glBlendFuncSeparate); #endif gles_glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); } #endif #ifndef skip_glBufferData void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) { LOAD_GLES(glBufferData); #ifndef direct_glBufferData PUSH_IF_COMPILING(glBufferData); #endif gles_glBufferData(target, size, data, usage); } #endif #ifndef skip_glBufferSubData void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) { LOAD_GLES(glBufferSubData); #ifndef direct_glBufferSubData PUSH_IF_COMPILING(glBufferSubData); #endif gles_glBufferSubData(target, offset, size, data); } #endif #ifndef skip_glCheckFramebufferStatus GLenum glCheckFramebufferStatus(GLenum target) { LOAD_GLES(glCheckFramebufferStatus); #ifndef direct_glCheckFramebufferStatus PUSH_IF_COMPILING(glCheckFramebufferStatus); #endif return gles_glCheckFramebufferStatus(target); } #endif #ifndef skip_glClear void glClear(GLbitfield mask) { LOAD_GLES(glClear); #ifndef direct_glClear PUSH_IF_COMPILING(glClear); #endif gles_glClear(mask); } #endif #ifndef skip_glClearColor void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { LOAD_GLES(glClearColor); #ifndef direct_glClearColor PUSH_IF_COMPILING(glClearColor); #endif gles_glClearColor(red, green, blue, alpha); } #endif #ifndef skip_glClearDepthf void glClearDepthf(GLclampf depth) { LOAD_GLES(glClearDepthf); #ifndef direct_glClearDepthf PUSH_IF_COMPILING(glClearDepthf); #endif gles_glClearDepthf(depth); } #endif #ifndef skip_glClearStencil void glClearStencil(GLint s) { LOAD_GLES(glClearStencil); #ifndef direct_glClearStencil PUSH_IF_COMPILING(glClearStencil); #endif gles_glClearStencil(s); } #endif #ifndef skip_glColorMask void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { LOAD_GLES(glColorMask); #ifndef direct_glColorMask PUSH_IF_COMPILING(glColorMask); #endif gles_glColorMask(red, green, blue, alpha); } #endif #ifndef skip_glCompileShader void glCompileShader(GLuint shader) { LOAD_GLES(glCompileShader); #ifndef direct_glCompileShader PUSH_IF_COMPILING(glCompileShader); #endif gles_glCompileShader(shader); } #endif #ifndef skip_glCompressedTexImage2D void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) { LOAD_GLES(glCompressedTexImage2D); #ifndef direct_glCompressedTexImage2D PUSH_IF_COMPILING(glCompressedTexImage2D); #endif gles_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); } #endif #ifndef skip_glCompressedTexSubImage2D void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) { LOAD_GLES(glCompressedTexSubImage2D); #ifndef direct_glCompressedTexSubImage2D PUSH_IF_COMPILING(glCompressedTexSubImage2D); #endif gles_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); } #endif #ifndef skip_glCopyTexImage2D void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { LOAD_GLES(glCopyTexImage2D); #ifndef direct_glCopyTexImage2D PUSH_IF_COMPILING(glCopyTexImage2D); #endif gles_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); } #endif #ifndef skip_glCopyTexSubImage2D void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glCopyTexSubImage2D); #ifndef direct_glCopyTexSubImage2D PUSH_IF_COMPILING(glCopyTexSubImage2D); #endif gles_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); } #endif #ifndef skip_glCreateProgram GLuint glCreateProgram() { LOAD_GLES(glCreateProgram); #ifndef direct_glCreateProgram PUSH_IF_COMPILING(glCreateProgram); #endif return gles_glCreateProgram(); } #endif #ifndef skip_glCreateShader GLuint glCreateShader(GLenum type) { LOAD_GLES(glCreateShader); #ifndef direct_glCreateShader PUSH_IF_COMPILING(glCreateShader); #endif return gles_glCreateShader(type); } #endif #ifndef skip_glCullFace void glCullFace(GLenum mode) { LOAD_GLES(glCullFace); #ifndef direct_glCullFace PUSH_IF_COMPILING(glCullFace); #endif gles_glCullFace(mode); } #endif #ifndef skip_glDeleteBuffers void glDeleteBuffers(GLsizei n, const GLuint * buffer) { LOAD_GLES(glDeleteBuffers); #ifndef direct_glDeleteBuffers PUSH_IF_COMPILING(glDeleteBuffers); #endif gles_glDeleteBuffers(n, buffer); } #endif #ifndef skip_glDeleteFramebuffers void glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) { LOAD_GLES(glDeleteFramebuffers); #ifndef direct_glDeleteFramebuffers PUSH_IF_COMPILING(glDeleteFramebuffers); #endif gles_glDeleteFramebuffers(n, framebuffers); } #endif #ifndef skip_glDeleteProgram void glDeleteProgram(GLuint program) { LOAD_GLES(glDeleteProgram); #ifndef direct_glDeleteProgram PUSH_IF_COMPILING(glDeleteProgram); #endif gles_glDeleteProgram(program); } #endif #ifndef skip_glDeleteRenderbuffers void glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) { LOAD_GLES(glDeleteRenderbuffers); #ifndef direct_glDeleteRenderbuffers PUSH_IF_COMPILING(glDeleteRenderbuffers); #endif gles_glDeleteRenderbuffers(n, renderbuffers); } #endif #ifndef skip_glDeleteShader void glDeleteShader(GLuint program) { LOAD_GLES(glDeleteShader); #ifndef direct_glDeleteShader PUSH_IF_COMPILING(glDeleteShader); #endif gles_glDeleteShader(program); } #endif #ifndef skip_glDeleteTextures void glDeleteTextures(GLsizei n, const GLuint * textures) { LOAD_GLES(glDeleteTextures); #ifndef direct_glDeleteTextures PUSH_IF_COMPILING(glDeleteTextures); #endif gles_glDeleteTextures(n, textures); } #endif #ifndef skip_glDepthFunc void glDepthFunc(GLenum func) { LOAD_GLES(glDepthFunc); #ifndef direct_glDepthFunc PUSH_IF_COMPILING(glDepthFunc); #endif gles_glDepthFunc(func); } #endif #ifndef skip_glDepthMask void glDepthMask(GLboolean flag) { LOAD_GLES(glDepthMask); #ifndef direct_glDepthMask PUSH_IF_COMPILING(glDepthMask); #endif gles_glDepthMask(flag); } #endif #ifndef skip_glDepthRangef void glDepthRangef(GLclampf near, GLclampf far) { LOAD_GLES(glDepthRangef); #ifndef direct_glDepthRangef PUSH_IF_COMPILING(glDepthRangef); #endif gles_glDepthRangef(near, far); } #endif #ifndef skip_glDetachShader void glDetachShader(GLuint program, GLuint shader) { LOAD_GLES(glDetachShader); #ifndef direct_glDetachShader PUSH_IF_COMPILING(glDetachShader); #endif gles_glDetachShader(program, shader); } #endif #ifndef skip_glDisable void glDisable(GLenum cap) { LOAD_GLES(glDisable); #ifndef direct_glDisable PUSH_IF_COMPILING(glDisable); #endif gles_glDisable(cap); } #endif #ifndef skip_glDisableVertexAttribArray void glDisableVertexAttribArray(GLuint index) { LOAD_GLES(glDisableVertexAttribArray); #ifndef direct_glDisableVertexAttribArray PUSH_IF_COMPILING(glDisableVertexAttribArray); #endif gles_glDisableVertexAttribArray(index); } #endif #ifndef skip_glDrawArrays void glDrawArrays(GLenum mode, GLint first, GLsizei count) { LOAD_GLES(glDrawArrays); #ifndef direct_glDrawArrays PUSH_IF_COMPILING(glDrawArrays); #endif gles_glDrawArrays(mode, first, count); } #endif #ifndef skip_glDrawElements void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) { LOAD_GLES(glDrawElements); #ifndef direct_glDrawElements PUSH_IF_COMPILING(glDrawElements); #endif gles_glDrawElements(mode, count, type, indices); } #endif #ifndef skip_glEnable void glEnable(GLenum cap) { LOAD_GLES(glEnable); #ifndef direct_glEnable PUSH_IF_COMPILING(glEnable); #endif gles_glEnable(cap); } #endif #ifndef skip_glEnableVertexAttribArray void glEnableVertexAttribArray(GLuint index) { LOAD_GLES(glEnableVertexAttribArray); #ifndef direct_glEnableVertexAttribArray PUSH_IF_COMPILING(glEnableVertexAttribArray); #endif gles_glEnableVertexAttribArray(index); } #endif #ifndef skip_glFinish void glFinish() { LOAD_GLES(glFinish); #ifndef direct_glFinish PUSH_IF_COMPILING(glFinish); #endif gles_glFinish(); } #endif #ifndef skip_glFlush void glFlush() { LOAD_GLES(glFlush); #ifndef direct_glFlush PUSH_IF_COMPILING(glFlush); #endif gles_glFlush(); } #endif #ifndef skip_glFramebufferRenderbuffer void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { LOAD_GLES(glFramebufferRenderbuffer); #ifndef direct_glFramebufferRenderbuffer PUSH_IF_COMPILING(glFramebufferRenderbuffer); #endif gles_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); } #endif #ifndef skip_glFramebufferTexture2D void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { LOAD_GLES(glFramebufferTexture2D); #ifndef direct_glFramebufferTexture2D PUSH_IF_COMPILING(glFramebufferTexture2D); #endif gles_glFramebufferTexture2D(target, attachment, textarget, texture, level); } #endif #ifndef skip_glFrontFace void glFrontFace(GLenum mode) { LOAD_GLES(glFrontFace); #ifndef direct_glFrontFace PUSH_IF_COMPILING(glFrontFace); #endif gles_glFrontFace(mode); } #endif #ifndef skip_glGenBuffers void glGenBuffers(GLsizei n, GLuint * buffer) { LOAD_GLES(glGenBuffers); #ifndef direct_glGenBuffers PUSH_IF_COMPILING(glGenBuffers); #endif gles_glGenBuffers(n, buffer); } #endif #ifndef skip_glGenFramebuffers void glGenFramebuffers(GLsizei n, GLuint * framebuffers) { LOAD_GLES(glGenFramebuffers); #ifndef direct_glGenFramebuffers PUSH_IF_COMPILING(glGenFramebuffers); #endif gles_glGenFramebuffers(n, framebuffers); } #endif #ifndef skip_glGenRenderbuffers void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) { LOAD_GLES(glGenRenderbuffers); #ifndef direct_glGenRenderbuffers PUSH_IF_COMPILING(glGenRenderbuffers); #endif gles_glGenRenderbuffers(n, renderbuffers); } #endif #ifndef skip_glGenTextures void glGenTextures(GLsizei n, GLuint * textures) { LOAD_GLES(glGenTextures); #ifndef direct_glGenTextures PUSH_IF_COMPILING(glGenTextures); #endif gles_glGenTextures(n, textures); } #endif #ifndef skip_glGenerateMipmap void glGenerateMipmap(GLenum target) { LOAD_GLES(glGenerateMipmap); #ifndef direct_glGenerateMipmap PUSH_IF_COMPILING(glGenerateMipmap); #endif gles_glGenerateMipmap(target); } #endif #ifndef skip_glGetActiveAttrib void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) { LOAD_GLES(glGetActiveAttrib); #ifndef direct_glGetActiveAttrib PUSH_IF_COMPILING(glGetActiveAttrib); #endif gles_glGetActiveAttrib(program, index, bufSize, length, size, type, name); } #endif #ifndef skip_glGetActiveUniform void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) { LOAD_GLES(glGetActiveUniform); #ifndef direct_glGetActiveUniform PUSH_IF_COMPILING(glGetActiveUniform); #endif gles_glGetActiveUniform(program, index, bufSize, length, size, type, name); } #endif #ifndef skip_glGetAttachedShaders void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj) { LOAD_GLES(glGetAttachedShaders); #ifndef direct_glGetAttachedShaders PUSH_IF_COMPILING(glGetAttachedShaders); #endif gles_glGetAttachedShaders(program, maxCount, count, obj); } #endif #ifndef skip_glGetAttribLocation GLint glGetAttribLocation(GLuint program, const GLchar * name) { LOAD_GLES(glGetAttribLocation); #ifndef direct_glGetAttribLocation PUSH_IF_COMPILING(glGetAttribLocation); #endif return gles_glGetAttribLocation(program, name); } #endif #ifndef skip_glGetBooleanv void glGetBooleanv(GLenum pname, GLboolean * params) { LOAD_GLES(glGetBooleanv); #ifndef direct_glGetBooleanv PUSH_IF_COMPILING(glGetBooleanv); #endif gles_glGetBooleanv(pname, params); } #endif #ifndef skip_glGetBufferParameteriv void glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetBufferParameteriv); #ifndef direct_glGetBufferParameteriv PUSH_IF_COMPILING(glGetBufferParameteriv); #endif gles_glGetBufferParameteriv(target, pname, params); } #endif #ifndef skip_glGetError GLenum glGetError() { LOAD_GLES(glGetError); #ifndef direct_glGetError PUSH_IF_COMPILING(glGetError); #endif return gles_glGetError(); } #endif #ifndef skip_glGetFloatv void glGetFloatv(GLenum pname, GLfloat * params) { LOAD_GLES(glGetFloatv); #ifndef direct_glGetFloatv PUSH_IF_COMPILING(glGetFloatv); #endif gles_glGetFloatv(pname, params); } #endif #ifndef skip_glGetFramebufferAttachmentParameteriv void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) { LOAD_GLES(glGetFramebufferAttachmentParameteriv); #ifndef direct_glGetFramebufferAttachmentParameteriv PUSH_IF_COMPILING(glGetFramebufferAttachmentParameteriv); #endif gles_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); } #endif #ifndef skip_glGetIntegerv void glGetIntegerv(GLenum pname, GLint * params) { LOAD_GLES(glGetIntegerv); #ifndef direct_glGetIntegerv PUSH_IF_COMPILING(glGetIntegerv); #endif gles_glGetIntegerv(pname, params); } #endif #ifndef skip_glGetProgramInfoLog void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) { LOAD_GLES(glGetProgramInfoLog); #ifndef direct_glGetProgramInfoLog PUSH_IF_COMPILING(glGetProgramInfoLog); #endif gles_glGetProgramInfoLog(program, bufSize, length, infoLog); } #endif #ifndef skip_glGetProgramiv void glGetProgramiv(GLuint program, GLenum pname, GLint * params) { LOAD_GLES(glGetProgramiv); #ifndef direct_glGetProgramiv PUSH_IF_COMPILING(glGetProgramiv); #endif gles_glGetProgramiv(program, pname, params); } #endif #ifndef skip_glGetRenderbufferParameteriv void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetRenderbufferParameteriv); #ifndef direct_glGetRenderbufferParameteriv PUSH_IF_COMPILING(glGetRenderbufferParameteriv); #endif gles_glGetRenderbufferParameteriv(target, pname, params); } #endif #ifndef skip_glGetShaderInfoLog void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) { LOAD_GLES(glGetShaderInfoLog); #ifndef direct_glGetShaderInfoLog PUSH_IF_COMPILING(glGetShaderInfoLog); #endif gles_glGetShaderInfoLog(shader, bufSize, length, infoLog); } #endif #ifndef skip_glGetShaderPrecisionFormat void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) { LOAD_GLES(glGetShaderPrecisionFormat); #ifndef direct_glGetShaderPrecisionFormat PUSH_IF_COMPILING(glGetShaderPrecisionFormat); #endif gles_glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision); } #endif #ifndef skip_glGetShaderSource void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) { LOAD_GLES(glGetShaderSource); #ifndef direct_glGetShaderSource PUSH_IF_COMPILING(glGetShaderSource); #endif gles_glGetShaderSource(shader, bufSize, length, source); } #endif #ifndef skip_glGetShaderiv void glGetShaderiv(GLuint shader, GLenum pname, GLint * params) { LOAD_GLES(glGetShaderiv); #ifndef direct_glGetShaderiv PUSH_IF_COMPILING(glGetShaderiv); #endif gles_glGetShaderiv(shader, pname, params); } #endif #ifndef skip_glGetString const GLubyte * glGetString(GLenum name) { LOAD_GLES(glGetString); #ifndef direct_glGetString PUSH_IF_COMPILING(glGetString); #endif return gles_glGetString(name); } #endif #ifndef skip_glGetTexParameterfv void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) { LOAD_GLES(glGetTexParameterfv); #ifndef direct_glGetTexParameterfv PUSH_IF_COMPILING(glGetTexParameterfv); #endif gles_glGetTexParameterfv(target, pname, params); } #endif #ifndef skip_glGetTexParameteriv void glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetTexParameteriv); #ifndef direct_glGetTexParameteriv PUSH_IF_COMPILING(glGetTexParameteriv); #endif gles_glGetTexParameteriv(target, pname, params); } #endif #ifndef skip_glGetUniformLocation GLint glGetUniformLocation(GLuint program, const GLchar * name) { LOAD_GLES(glGetUniformLocation); #ifndef direct_glGetUniformLocation PUSH_IF_COMPILING(glGetUniformLocation); #endif return gles_glGetUniformLocation(program, name); } #endif #ifndef skip_glGetUniformfv void glGetUniformfv(GLuint program, GLint location, GLfloat * params) { LOAD_GLES(glGetUniformfv); #ifndef direct_glGetUniformfv PUSH_IF_COMPILING(glGetUniformfv); #endif gles_glGetUniformfv(program, location, params); } #endif #ifndef skip_glGetUniformiv void glGetUniformiv(GLuint program, GLint location, GLint * params) { LOAD_GLES(glGetUniformiv); #ifndef direct_glGetUniformiv PUSH_IF_COMPILING(glGetUniformiv); #endif gles_glGetUniformiv(program, location, params); } #endif #ifndef skip_glGetVertexAttribPointerv void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid ** pointer) { LOAD_GLES(glGetVertexAttribPointerv); #ifndef direct_glGetVertexAttribPointerv PUSH_IF_COMPILING(glGetVertexAttribPointerv); #endif gles_glGetVertexAttribPointerv(index, pname, pointer); } #endif #ifndef skip_glGetVertexAttribfv void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat * params) { LOAD_GLES(glGetVertexAttribfv); #ifndef direct_glGetVertexAttribfv PUSH_IF_COMPILING(glGetVertexAttribfv); #endif gles_glGetVertexAttribfv(index, pname, params); } #endif #ifndef skip_glGetVertexAttribiv void glGetVertexAttribiv(GLuint index, GLenum pname, GLint * params) { LOAD_GLES(glGetVertexAttribiv); #ifndef direct_glGetVertexAttribiv PUSH_IF_COMPILING(glGetVertexAttribiv); #endif gles_glGetVertexAttribiv(index, pname, params); } #endif #ifndef skip_glHint void glHint(GLenum target, GLenum mode) { LOAD_GLES(glHint); #ifndef direct_glHint PUSH_IF_COMPILING(glHint); #endif gles_glHint(target, mode); } #endif #ifndef skip_glIsBuffer GLboolean glIsBuffer(GLuint buffer) { LOAD_GLES(glIsBuffer); #ifndef direct_glIsBuffer PUSH_IF_COMPILING(glIsBuffer); #endif return gles_glIsBuffer(buffer); } #endif #ifndef skip_glIsEnabled GLboolean glIsEnabled(GLenum cap) { LOAD_GLES(glIsEnabled); #ifndef direct_glIsEnabled PUSH_IF_COMPILING(glIsEnabled); #endif return gles_glIsEnabled(cap); } #endif #ifndef skip_glIsFramebuffer GLboolean glIsFramebuffer(GLuint framebuffer) { LOAD_GLES(glIsFramebuffer); #ifndef direct_glIsFramebuffer PUSH_IF_COMPILING(glIsFramebuffer); #endif return gles_glIsFramebuffer(framebuffer); } #endif #ifndef skip_glIsProgram GLboolean glIsProgram(GLuint program) { LOAD_GLES(glIsProgram); #ifndef direct_glIsProgram PUSH_IF_COMPILING(glIsProgram); #endif return gles_glIsProgram(program); } #endif #ifndef skip_glIsRenderbuffer GLboolean glIsRenderbuffer(GLuint renderbuffer) { LOAD_GLES(glIsRenderbuffer); #ifndef direct_glIsRenderbuffer PUSH_IF_COMPILING(glIsRenderbuffer); #endif return gles_glIsRenderbuffer(renderbuffer); } #endif #ifndef skip_glIsShader GLboolean glIsShader(GLuint shader) { LOAD_GLES(glIsShader); #ifndef direct_glIsShader PUSH_IF_COMPILING(glIsShader); #endif return gles_glIsShader(shader); } #endif #ifndef skip_glIsTexture GLboolean glIsTexture(GLuint texture) { LOAD_GLES(glIsTexture); #ifndef direct_glIsTexture PUSH_IF_COMPILING(glIsTexture); #endif return gles_glIsTexture(texture); } #endif #ifndef skip_glLineWidth void glLineWidth(GLfloat width) { LOAD_GLES(glLineWidth); #ifndef direct_glLineWidth PUSH_IF_COMPILING(glLineWidth); #endif gles_glLineWidth(width); } #endif #ifndef skip_glLinkProgram void glLinkProgram(GLuint program) { LOAD_GLES(glLinkProgram); #ifndef direct_glLinkProgram PUSH_IF_COMPILING(glLinkProgram); #endif gles_glLinkProgram(program); } #endif #ifndef skip_glPixelStorei void glPixelStorei(GLenum pname, GLint param) { LOAD_GLES(glPixelStorei); #ifndef direct_glPixelStorei PUSH_IF_COMPILING(glPixelStorei); #endif gles_glPixelStorei(pname, param); } #endif #ifndef skip_glPolygonOffset void glPolygonOffset(GLfloat factor, GLfloat units) { LOAD_GLES(glPolygonOffset); #ifndef direct_glPolygonOffset PUSH_IF_COMPILING(glPolygonOffset); #endif gles_glPolygonOffset(factor, units); } #endif #ifndef skip_glReadPixels void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) { LOAD_GLES(glReadPixels); #ifndef direct_glReadPixels PUSH_IF_COMPILING(glReadPixels); #endif gles_glReadPixels(x, y, width, height, format, type, pixels); } #endif #ifndef skip_glReleaseShaderCompiler void glReleaseShaderCompiler() { LOAD_GLES(glReleaseShaderCompiler); #ifndef direct_glReleaseShaderCompiler PUSH_IF_COMPILING(glReleaseShaderCompiler); #endif gles_glReleaseShaderCompiler(); } #endif #ifndef skip_glRenderbufferStorage void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { LOAD_GLES(glRenderbufferStorage); #ifndef direct_glRenderbufferStorage PUSH_IF_COMPILING(glRenderbufferStorage); #endif gles_glRenderbufferStorage(target, internalformat, width, height); } #endif #ifndef skip_glSampleCoverage void glSampleCoverage(GLclampf value, GLboolean invert) { LOAD_GLES(glSampleCoverage); #ifndef direct_glSampleCoverage PUSH_IF_COMPILING(glSampleCoverage); #endif gles_glSampleCoverage(value, invert); } #endif #ifndef skip_glScissor void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glScissor); #ifndef direct_glScissor PUSH_IF_COMPILING(glScissor); #endif gles_glScissor(x, y, width, height); } #endif #ifndef skip_glShaderBinary void glShaderBinary(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length) { LOAD_GLES(glShaderBinary); #ifndef direct_glShaderBinary PUSH_IF_COMPILING(glShaderBinary); #endif gles_glShaderBinary(n, shaders, binaryformat, binary, length); } #endif #ifndef skip_glShaderSource void glShaderSource(GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length) { LOAD_GLES(glShaderSource); #ifndef direct_glShaderSource PUSH_IF_COMPILING(glShaderSource); #endif gles_glShaderSource(shader, count, string, length); } #endif #ifndef skip_glStencilFunc void glStencilFunc(GLenum func, GLint ref, GLuint mask) { LOAD_GLES(glStencilFunc); #ifndef direct_glStencilFunc PUSH_IF_COMPILING(glStencilFunc); #endif gles_glStencilFunc(func, ref, mask); } #endif #ifndef skip_glStencilFuncSeparate void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { LOAD_GLES(glStencilFuncSeparate); #ifndef direct_glStencilFuncSeparate PUSH_IF_COMPILING(glStencilFuncSeparate); #endif gles_glStencilFuncSeparate(face, func, ref, mask); } #endif #ifndef skip_glStencilMask void glStencilMask(GLuint mask) { LOAD_GLES(glStencilMask); #ifndef direct_glStencilMask PUSH_IF_COMPILING(glStencilMask); #endif gles_glStencilMask(mask); } #endif #ifndef skip_glStencilMaskSeparate void glStencilMaskSeparate(GLenum face, GLuint mask) { LOAD_GLES(glStencilMaskSeparate); #ifndef direct_glStencilMaskSeparate PUSH_IF_COMPILING(glStencilMaskSeparate); #endif gles_glStencilMaskSeparate(face, mask); } #endif #ifndef skip_glStencilOp void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { LOAD_GLES(glStencilOp); #ifndef direct_glStencilOp PUSH_IF_COMPILING(glStencilOp); #endif gles_glStencilOp(fail, zfail, zpass); } #endif #ifndef skip_glStencilOpSeparate void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass) { LOAD_GLES(glStencilOpSeparate); #ifndef direct_glStencilOpSeparate PUSH_IF_COMPILING(glStencilOpSeparate); #endif gles_glStencilOpSeparate(face, sfail, zfail, zpass); } #endif #ifndef skip_glTexImage2D void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) { LOAD_GLES(glTexImage2D); #ifndef direct_glTexImage2D PUSH_IF_COMPILING(glTexImage2D); #endif gles_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); } #endif #ifndef skip_glTexParameterf void glTexParameterf(GLenum target, GLenum pname, GLfloat param) { LOAD_GLES(glTexParameterf); #ifndef direct_glTexParameterf PUSH_IF_COMPILING(glTexParameterf); #endif gles_glTexParameterf(target, pname, param); } #endif #ifndef skip_glTexParameterfv void glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) { LOAD_GLES(glTexParameterfv); #ifndef direct_glTexParameterfv PUSH_IF_COMPILING(glTexParameterfv); #endif gles_glTexParameterfv(target, pname, params); } #endif #ifndef skip_glTexParameteri void glTexParameteri(GLenum target, GLenum pname, GLint param) { LOAD_GLES(glTexParameteri); #ifndef direct_glTexParameteri PUSH_IF_COMPILING(glTexParameteri); #endif gles_glTexParameteri(target, pname, param); } #endif #ifndef skip_glTexParameteriv void glTexParameteriv(GLenum target, GLenum pname, const GLint * params) { LOAD_GLES(glTexParameteriv); #ifndef direct_glTexParameteriv PUSH_IF_COMPILING(glTexParameteriv); #endif gles_glTexParameteriv(target, pname, params); } #endif #ifndef skip_glTexSubImage2D void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) { LOAD_GLES(glTexSubImage2D); #ifndef direct_glTexSubImage2D PUSH_IF_COMPILING(glTexSubImage2D); #endif gles_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); } #endif #ifndef skip_glUniform1f void glUniform1f(GLint location, GLfloat v0) { LOAD_GLES(glUniform1f); #ifndef direct_glUniform1f PUSH_IF_COMPILING(glUniform1f); #endif gles_glUniform1f(location, v0); } #endif #ifndef skip_glUniform1fv void glUniform1fv(GLint location, GLsizei count, const GLfloat * value) { LOAD_GLES(glUniform1fv); #ifndef direct_glUniform1fv PUSH_IF_COMPILING(glUniform1fv); #endif gles_glUniform1fv(location, count, value); } #endif #ifndef skip_glUniform1i void glUniform1i(GLint location, GLint v0) { LOAD_GLES(glUniform1i); #ifndef direct_glUniform1i PUSH_IF_COMPILING(glUniform1i); #endif gles_glUniform1i(location, v0); } #endif #ifndef skip_glUniform1iv void glUniform1iv(GLint location, GLsizei count, const GLint * value) { LOAD_GLES(glUniform1iv); #ifndef direct_glUniform1iv PUSH_IF_COMPILING(glUniform1iv); #endif gles_glUniform1iv(location, count, value); } #endif #ifndef skip_glUniform2f void glUniform2f(GLint location, GLfloat v0, GLfloat v1) { LOAD_GLES(glUniform2f); #ifndef direct_glUniform2f PUSH_IF_COMPILING(glUniform2f); #endif gles_glUniform2f(location, v0, v1); } #endif #ifndef skip_glUniform2fv void glUniform2fv(GLint location, GLsizei count, const GLfloat * value) { LOAD_GLES(glUniform2fv); #ifndef direct_glUniform2fv PUSH_IF_COMPILING(glUniform2fv); #endif gles_glUniform2fv(location, count, value); } #endif #ifndef skip_glUniform2i void glUniform2i(GLint location, GLint v0, GLint v1) { LOAD_GLES(glUniform2i); #ifndef direct_glUniform2i PUSH_IF_COMPILING(glUniform2i); #endif gles_glUniform2i(location, v0, v1); } #endif #ifndef skip_glUniform2iv void glUniform2iv(GLint location, GLsizei count, const GLint * value) { LOAD_GLES(glUniform2iv); #ifndef direct_glUniform2iv PUSH_IF_COMPILING(glUniform2iv); #endif gles_glUniform2iv(location, count, value); } #endif #ifndef skip_glUniform3f void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { LOAD_GLES(glUniform3f); #ifndef direct_glUniform3f PUSH_IF_COMPILING(glUniform3f); #endif gles_glUniform3f(location, v0, v1, v2); } #endif #ifndef skip_glUniform3fv void glUniform3fv(GLint location, GLsizei count, const GLfloat * value) { LOAD_GLES(glUniform3fv); #ifndef direct_glUniform3fv PUSH_IF_COMPILING(glUniform3fv); #endif gles_glUniform3fv(location, count, value); } #endif #ifndef skip_glUniform3i void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) { LOAD_GLES(glUniform3i); #ifndef direct_glUniform3i PUSH_IF_COMPILING(glUniform3i); #endif gles_glUniform3i(location, v0, v1, v2); } #endif #ifndef skip_glUniform3iv void glUniform3iv(GLint location, GLsizei count, const GLint * value) { LOAD_GLES(glUniform3iv); #ifndef direct_glUniform3iv PUSH_IF_COMPILING(glUniform3iv); #endif gles_glUniform3iv(location, count, value); } #endif #ifndef skip_glUniform4f void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { LOAD_GLES(glUniform4f); #ifndef direct_glUniform4f PUSH_IF_COMPILING(glUniform4f); #endif gles_glUniform4f(location, v0, v1, v2, v3); } #endif #ifndef skip_glUniform4fv void glUniform4fv(GLint location, GLsizei count, const GLfloat * value) { LOAD_GLES(glUniform4fv); #ifndef direct_glUniform4fv PUSH_IF_COMPILING(glUniform4fv); #endif gles_glUniform4fv(location, count, value); } #endif #ifndef skip_glUniform4i void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { LOAD_GLES(glUniform4i); #ifndef direct_glUniform4i PUSH_IF_COMPILING(glUniform4i); #endif gles_glUniform4i(location, v0, v1, v2, v3); } #endif #ifndef skip_glUniform4iv void glUniform4iv(GLint location, GLsizei count, const GLint * value) { LOAD_GLES(glUniform4iv); #ifndef direct_glUniform4iv PUSH_IF_COMPILING(glUniform4iv); #endif gles_glUniform4iv(location, count, value); } #endif #ifndef skip_glUniformMatrix2fv void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { LOAD_GLES(glUniformMatrix2fv); #ifndef direct_glUniformMatrix2fv PUSH_IF_COMPILING(glUniformMatrix2fv); #endif gles_glUniformMatrix2fv(location, count, transpose, value); } #endif #ifndef skip_glUniformMatrix3fv void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { LOAD_GLES(glUniformMatrix3fv); #ifndef direct_glUniformMatrix3fv PUSH_IF_COMPILING(glUniformMatrix3fv); #endif gles_glUniformMatrix3fv(location, count, transpose, value); } #endif #ifndef skip_glUniformMatrix4fv void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { LOAD_GLES(glUniformMatrix4fv); #ifndef direct_glUniformMatrix4fv PUSH_IF_COMPILING(glUniformMatrix4fv); #endif gles_glUniformMatrix4fv(location, count, transpose, value); } #endif #ifndef skip_glUseProgram void glUseProgram(GLuint program) { LOAD_GLES(glUseProgram); #ifndef direct_glUseProgram PUSH_IF_COMPILING(glUseProgram); #endif gles_glUseProgram(program); } #endif #ifndef skip_glValidateProgram void glValidateProgram(GLuint program) { LOAD_GLES(glValidateProgram); #ifndef direct_glValidateProgram PUSH_IF_COMPILING(glValidateProgram); #endif gles_glValidateProgram(program); } #endif #ifndef skip_glVertexAttrib1f void glVertexAttrib1f(GLuint index, GLfloat x) { LOAD_GLES(glVertexAttrib1f); #ifndef direct_glVertexAttrib1f PUSH_IF_COMPILING(glVertexAttrib1f); #endif gles_glVertexAttrib1f(index, x); } #endif #ifndef skip_glVertexAttrib1fv void glVertexAttrib1fv(GLuint index, const GLfloat * v) { LOAD_GLES(glVertexAttrib1fv); #ifndef direct_glVertexAttrib1fv PUSH_IF_COMPILING(glVertexAttrib1fv); #endif gles_glVertexAttrib1fv(index, v); } #endif #ifndef skip_glVertexAttrib2f void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) { LOAD_GLES(glVertexAttrib2f); #ifndef direct_glVertexAttrib2f PUSH_IF_COMPILING(glVertexAttrib2f); #endif gles_glVertexAttrib2f(index, x, y); } #endif #ifndef skip_glVertexAttrib2fv void glVertexAttrib2fv(GLuint index, const GLfloat * v) { LOAD_GLES(glVertexAttrib2fv); #ifndef direct_glVertexAttrib2fv PUSH_IF_COMPILING(glVertexAttrib2fv); #endif gles_glVertexAttrib2fv(index, v); } #endif #ifndef skip_glVertexAttrib3f void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) { LOAD_GLES(glVertexAttrib3f); #ifndef direct_glVertexAttrib3f PUSH_IF_COMPILING(glVertexAttrib3f); #endif gles_glVertexAttrib3f(index, x, y, z); } #endif #ifndef skip_glVertexAttrib3fv void glVertexAttrib3fv(GLuint index, const GLfloat * v) { LOAD_GLES(glVertexAttrib3fv); #ifndef direct_glVertexAttrib3fv PUSH_IF_COMPILING(glVertexAttrib3fv); #endif gles_glVertexAttrib3fv(index, v); } #endif #ifndef skip_glVertexAttrib4f void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { LOAD_GLES(glVertexAttrib4f); #ifndef direct_glVertexAttrib4f PUSH_IF_COMPILING(glVertexAttrib4f); #endif gles_glVertexAttrib4f(index, x, y, z, w); } #endif #ifndef skip_glVertexAttrib4fv void glVertexAttrib4fv(GLuint index, const GLfloat * v) { LOAD_GLES(glVertexAttrib4fv); #ifndef direct_glVertexAttrib4fv PUSH_IF_COMPILING(glVertexAttrib4fv); #endif gles_glVertexAttrib4fv(index, v); } #endif #ifndef skip_glVertexAttribPointer void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer) { LOAD_GLES(glVertexAttribPointer); #ifndef direct_glVertexAttribPointer PUSH_IF_COMPILING(glVertexAttribPointer); #endif gles_glVertexAttribPointer(index, size, type, normalized, stride, pointer); } #endif #ifndef skip_glViewport void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { LOAD_GLES(glViewport); #ifndef direct_glViewport PUSH_IF_COMPILING(glViewport); #endif gles_glViewport(x, y, width, height); } #endif #endif |
Added jni/glshim/src/gl/wrap/gles2.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 | #ifdef USE_ES2 #include "../types.h" #ifndef GLES2WRAP_H #define GLES2WRAP_H enum FORMAT { FORMAT_void_GLenum, FORMAT_void_GLuint_GLuint, FORMAT_void_GLuint_GLuint_const_GLchar___GENPT__, FORMAT_void_GLenum_GLuint, FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf, FORMAT_void_GLenum_GLenum, FORMAT_void_GLenum_GLenum_GLenum_GLenum, FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum, FORMAT_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__, FORMAT_GLenum_GLenum, FORMAT_void_GLbitfield, FORMAT_void_GLclampf, FORMAT_void_GLint, FORMAT_void_GLboolean_GLboolean_GLboolean_GLboolean, FORMAT_void_GLuint, FORMAT_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__, FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__, FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint, FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei, FORMAT_GLuint, FORMAT_GLuint_GLenum, FORMAT_void_GLsizei_const_GLuint___GENPT__, FORMAT_void_GLboolean, FORMAT_void_GLclampf_GLclampf, FORMAT_void_GLenum_GLint_GLsizei, FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__, FORMAT_void, FORMAT_void_GLenum_GLenum_GLenum_GLuint, FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint, FORMAT_void_GLsizei_GLuint___GENPT__, FORMAT_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__, FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__, FORMAT_GLint_GLuint_const_GLchar___GENPT__, FORMAT_void_GLenum_GLboolean___GENPT__, FORMAT_void_GLenum_GLenum_GLint___GENPT__, FORMAT_GLenum, FORMAT_void_GLenum_GLfloat___GENPT__, FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__, FORMAT_void_GLenum_GLint___GENPT__, FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__, FORMAT_void_GLuint_GLenum_GLint___GENPT__, FORMAT_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__, FORMAT_const_GLubyte___GENPT___GLenum, FORMAT_void_GLenum_GLenum_GLfloat___GENPT__, FORMAT_void_GLuint_GLint_GLfloat___GENPT__, FORMAT_void_GLuint_GLint_GLint___GENPT__, FORMAT_void_GLuint_GLenum_GLvoid___GENPT____GENPT__, FORMAT_void_GLuint_GLenum_GLfloat___GENPT__, FORMAT_GLboolean_GLuint, FORMAT_GLboolean_GLenum, FORMAT_void_GLfloat, FORMAT_void_GLenum_GLint, FORMAT_void_GLfloat_GLfloat, FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__, FORMAT_void_GLenum_GLenum_GLsizei_GLsizei, FORMAT_void_GLclampf_GLboolean, FORMAT_void_GLint_GLint_GLsizei_GLsizei, FORMAT_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei, FORMAT_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__, FORMAT_void_GLenum_GLint_GLuint, FORMAT_void_GLenum_GLenum_GLint_GLuint, FORMAT_void_GLenum_GLenum_GLenum, FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__, FORMAT_void_GLenum_GLenum_GLfloat, FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__, FORMAT_void_GLenum_GLenum_GLint, FORMAT_void_GLenum_GLenum_const_GLint___GENPT__, FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__, FORMAT_void_GLint_GLfloat, FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__, FORMAT_void_GLint_GLint, FORMAT_void_GLint_GLsizei_const_GLint___GENPT__, FORMAT_void_GLint_GLfloat_GLfloat, FORMAT_void_GLint_GLint_GLint, FORMAT_void_GLint_GLfloat_GLfloat_GLfloat, FORMAT_void_GLint_GLint_GLint_GLint, FORMAT_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat, FORMAT_void_GLint_GLint_GLint_GLint_GLint, FORMAT_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__, FORMAT_void_GLuint_GLfloat, FORMAT_void_GLuint_const_GLfloat___GENPT__, FORMAT_void_GLuint_GLfloat_GLfloat, FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat, FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat, FORMAT_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__, }; typedef void (*FUNC_void_GLenum)(GLenum texture); typedef struct { GLenum a1; } ARGS_void_GLenum; typedef struct { int format; FUNC_void_GLenum func; int refs; ARGS_void_GLenum args; } PACKED_void_GLenum; typedef struct { int func; ARGS_void_GLenum args; } INDEXED_void_GLenum; typedef void (*FUNC_void_GLuint_GLuint)(GLuint program, GLuint shader); typedef struct { GLuint a1; GLuint a2; } ARGS_void_GLuint_GLuint; typedef struct { int format; FUNC_void_GLuint_GLuint func; int refs; ARGS_void_GLuint_GLuint args; } PACKED_void_GLuint_GLuint; typedef struct { int func; ARGS_void_GLuint_GLuint args; } INDEXED_void_GLuint_GLuint; typedef void (*FUNC_void_GLuint_GLuint_const_GLchar___GENPT__)(GLuint program, GLuint index, const GLchar * name); typedef struct { GLuint a1; GLuint a2; GLchar * a3; } ARGS_void_GLuint_GLuint_const_GLchar___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLuint_const_GLchar___GENPT__ func; int refs; ARGS_void_GLuint_GLuint_const_GLchar___GENPT__ args; } PACKED_void_GLuint_GLuint_const_GLchar___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLuint_const_GLchar___GENPT__ args; } INDEXED_void_GLuint_GLuint_const_GLchar___GENPT__; typedef void (*FUNC_void_GLenum_GLuint)(GLenum target, GLuint buffer); typedef struct { GLenum a1; GLuint a2; } ARGS_void_GLenum_GLuint; typedef struct { int format; FUNC_void_GLenum_GLuint func; int refs; ARGS_void_GLenum_GLuint args; } PACKED_void_GLenum_GLuint; typedef struct { int func; ARGS_void_GLenum_GLuint args; } INDEXED_void_GLenum_GLuint; typedef void (*FUNC_void_GLclampf_GLclampf_GLclampf_GLclampf)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef struct { GLclampf a1; GLclampf a2; GLclampf a3; GLclampf a4; } ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf; typedef struct { int format; FUNC_void_GLclampf_GLclampf_GLclampf_GLclampf func; int refs; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args; } PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf; typedef struct { int func; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args; } INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf; typedef void (*FUNC_void_GLenum_GLenum)(GLenum modeRGB, GLenum modeA); typedef struct { GLenum a1; GLenum a2; } ARGS_void_GLenum_GLenum; typedef struct { int format; FUNC_void_GLenum_GLenum func; int refs; ARGS_void_GLenum_GLenum args; } PACKED_void_GLenum_GLenum; typedef struct { int func; ARGS_void_GLenum_GLenum args; } INDEXED_void_GLenum_GLenum; typedef void (*FUNC_void_GLenum_GLenum_GLenum_GLenum)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef struct { GLenum a1; GLenum a2; GLenum a3; GLenum a4; } ARGS_void_GLenum_GLenum_GLenum_GLenum; typedef struct { int format; FUNC_void_GLenum_GLenum_GLenum_GLenum func; int refs; ARGS_void_GLenum_GLenum_GLenum_GLenum args; } PACKED_void_GLenum_GLenum_GLenum_GLenum; typedef struct { int func; ARGS_void_GLenum_GLenum_GLenum_GLenum args; } INDEXED_void_GLenum_GLenum_GLenum_GLenum; typedef void (*FUNC_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); typedef struct { GLenum a1; GLsizeiptr a2; GLvoid * a3; GLenum a4; } ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum; typedef struct { int format; FUNC_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum func; int refs; ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum args; } PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum; typedef struct { int func; ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum args; } INDEXED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum; typedef void (*FUNC_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data); typedef struct { GLenum a1; GLintptr a2; GLsizeiptr a3; GLvoid * a4; } ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__; typedef GLenum (*FUNC_GLenum_GLenum)(GLenum target); typedef struct { GLenum a1; } ARGS_GLenum_GLenum; typedef struct { int format; FUNC_GLenum_GLenum func; int refs; ARGS_GLenum_GLenum args; } PACKED_GLenum_GLenum; typedef struct { int func; ARGS_GLenum_GLenum args; } INDEXED_GLenum_GLenum; typedef void (*FUNC_void_GLbitfield)(GLbitfield mask); typedef struct { GLbitfield a1; } ARGS_void_GLbitfield; typedef struct { int format; FUNC_void_GLbitfield func; int refs; ARGS_void_GLbitfield args; } PACKED_void_GLbitfield; typedef struct { int func; ARGS_void_GLbitfield args; } INDEXED_void_GLbitfield; typedef void (*FUNC_void_GLclampf)(GLclampf depth); typedef struct { GLclampf a1; } ARGS_void_GLclampf; typedef struct { int format; FUNC_void_GLclampf func; int refs; ARGS_void_GLclampf args; } PACKED_void_GLclampf; typedef struct { int func; ARGS_void_GLclampf args; } INDEXED_void_GLclampf; typedef void (*FUNC_void_GLint)(GLint s); typedef struct { GLint a1; } ARGS_void_GLint; typedef struct { int format; FUNC_void_GLint func; int refs; ARGS_void_GLint args; } PACKED_void_GLint; typedef struct { int func; ARGS_void_GLint args; } INDEXED_void_GLint; typedef void (*FUNC_void_GLboolean_GLboolean_GLboolean_GLboolean)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef struct { GLboolean a1; GLboolean a2; GLboolean a3; GLboolean a4; } ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean; typedef struct { int format; FUNC_void_GLboolean_GLboolean_GLboolean_GLboolean func; int refs; ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean args; } PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean; typedef struct { int func; ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean args; } INDEXED_void_GLboolean_GLboolean_GLboolean_GLboolean; typedef void (*FUNC_void_GLuint)(GLuint shader); typedef struct { GLuint a1; } ARGS_void_GLuint; typedef struct { int format; FUNC_void_GLuint func; int refs; ARGS_void_GLuint args; } PACKED_void_GLuint; typedef struct { int func; ARGS_void_GLuint args; } INDEXED_void_GLuint; typedef void (*FUNC_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); typedef struct { GLenum a1; GLint a2; GLenum a3; GLsizei a4; GLsizei a5; GLint a6; GLsizei a7; GLvoid * a8; } ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__; typedef void (*FUNC_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); typedef struct { GLenum a1; GLint a2; GLint a3; GLint a4; GLsizei a5; GLsizei a6; GLenum a7; GLsizei a8; GLvoid * a9; } ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__; typedef void (*FUNC_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef struct { GLenum a1; GLint a2; GLenum a3; GLint a4; GLint a5; GLsizei a6; GLsizei a7; GLint a8; } ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint; typedef struct { int format; FUNC_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint func; int refs; ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint args; } PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint; typedef struct { int func; ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint args; } INDEXED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint; typedef void (*FUNC_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef struct { GLenum a1; GLint a2; GLint a3; GLint a4; GLint a5; GLint a6; GLsizei a7; GLsizei a8; } ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei; typedef struct { int format; FUNC_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei func; int refs; ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei args; } PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei; typedef struct { int func; ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei args; } INDEXED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei; typedef GLuint (*FUNC_GLuint)(); typedef struct { int format; FUNC_GLuint func; int refs; } PACKED_GLuint; typedef struct { int func; } INDEXED_GLuint; typedef GLuint (*FUNC_GLuint_GLenum)(GLenum type); typedef struct { GLenum a1; } ARGS_GLuint_GLenum; typedef struct { int format; FUNC_GLuint_GLenum func; int refs; ARGS_GLuint_GLenum args; } PACKED_GLuint_GLenum; typedef struct { int func; ARGS_GLuint_GLenum args; } INDEXED_GLuint_GLenum; typedef void (*FUNC_void_GLsizei_const_GLuint___GENPT__)(GLsizei n, const GLuint * buffer); typedef struct { GLsizei a1; GLuint * a2; } ARGS_void_GLsizei_const_GLuint___GENPT__; typedef struct { int format; FUNC_void_GLsizei_const_GLuint___GENPT__ func; int refs; ARGS_void_GLsizei_const_GLuint___GENPT__ args; } PACKED_void_GLsizei_const_GLuint___GENPT__; typedef struct { int func; ARGS_void_GLsizei_const_GLuint___GENPT__ args; } INDEXED_void_GLsizei_const_GLuint___GENPT__; typedef void (*FUNC_void_GLboolean)(GLboolean flag); typedef struct { GLboolean a1; } ARGS_void_GLboolean; typedef struct { int format; FUNC_void_GLboolean func; int refs; ARGS_void_GLboolean args; } PACKED_void_GLboolean; typedef struct { int func; ARGS_void_GLboolean args; } INDEXED_void_GLboolean; typedef void (*FUNC_void_GLclampf_GLclampf)(GLclampf zNear, GLclampf zFar); typedef struct { GLclampf a1; GLclampf a2; } ARGS_void_GLclampf_GLclampf; typedef struct { int format; FUNC_void_GLclampf_GLclampf func; int refs; ARGS_void_GLclampf_GLclampf args; } PACKED_void_GLclampf_GLclampf; typedef struct { int func; ARGS_void_GLclampf_GLclampf args; } INDEXED_void_GLclampf_GLclampf; typedef void (*FUNC_void_GLenum_GLint_GLsizei)(GLenum mode, GLint first, GLsizei count); typedef struct { GLenum a1; GLint a2; GLsizei a3; } ARGS_void_GLenum_GLint_GLsizei; typedef struct { int format; FUNC_void_GLenum_GLint_GLsizei func; int refs; ARGS_void_GLenum_GLint_GLsizei args; } PACKED_void_GLenum_GLint_GLsizei; typedef struct { int func; ARGS_void_GLenum_GLint_GLsizei args; } INDEXED_void_GLenum_GLint_GLsizei; typedef void (*FUNC_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); typedef struct { GLenum a1; GLsizei a2; GLenum a3; GLvoid * a4; } ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__; typedef void (*FUNC_void)(); typedef struct { int format; FUNC_void func; int refs; } PACKED_void; typedef struct { int func; } INDEXED_void; typedef void (*FUNC_void_GLenum_GLenum_GLenum_GLuint)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef struct { GLenum a1; GLenum a2; GLenum a3; GLuint a4; } ARGS_void_GLenum_GLenum_GLenum_GLuint; typedef struct { int format; FUNC_void_GLenum_GLenum_GLenum_GLuint func; int refs; ARGS_void_GLenum_GLenum_GLenum_GLuint args; } PACKED_void_GLenum_GLenum_GLenum_GLuint; typedef struct { int func; ARGS_void_GLenum_GLenum_GLenum_GLuint args; } INDEXED_void_GLenum_GLenum_GLenum_GLuint; typedef void (*FUNC_void_GLenum_GLenum_GLenum_GLuint_GLint)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef struct { GLenum a1; GLenum a2; GLenum a3; GLuint a4; GLint a5; } ARGS_void_GLenum_GLenum_GLenum_GLuint_GLint; typedef struct { int format; FUNC_void_GLenum_GLenum_GLenum_GLuint_GLint func; int refs; ARGS_void_GLenum_GLenum_GLenum_GLuint_GLint args; } PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint; typedef struct { int func; ARGS_void_GLenum_GLenum_GLenum_GLuint_GLint args; } INDEXED_void_GLenum_GLenum_GLenum_GLuint_GLint; typedef void (*FUNC_void_GLsizei_GLuint___GENPT__)(GLsizei n, GLuint * buffer); typedef struct { GLsizei a1; GLuint * a2; } ARGS_void_GLsizei_GLuint___GENPT__; typedef struct { int format; FUNC_void_GLsizei_GLuint___GENPT__ func; int refs; ARGS_void_GLsizei_GLuint___GENPT__ args; } PACKED_void_GLsizei_GLuint___GENPT__; typedef struct { int func; ARGS_void_GLsizei_GLuint___GENPT__ args; } INDEXED_void_GLsizei_GLuint___GENPT__; typedef void (*FUNC_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); typedef struct { GLuint a1; GLuint a2; GLsizei a3; GLsizei * a4; GLint * a5; GLenum * a6; GLchar * a7; } ARGS_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ func; int refs; ARGS_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ args; } PACKED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ args; } INDEXED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__; typedef void (*FUNC_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj); typedef struct { GLuint a1; GLsizei a2; GLsizei * a3; GLuint * a4; } ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ func; int refs; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ args; } PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ args; } INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__; typedef GLint (*FUNC_GLint_GLuint_const_GLchar___GENPT__)(GLuint program, const GLchar * name); typedef struct { GLuint a1; GLchar * a2; } ARGS_GLint_GLuint_const_GLchar___GENPT__; typedef struct { int format; FUNC_GLint_GLuint_const_GLchar___GENPT__ func; int refs; ARGS_GLint_GLuint_const_GLchar___GENPT__ args; } PACKED_GLint_GLuint_const_GLchar___GENPT__; typedef struct { int func; ARGS_GLint_GLuint_const_GLchar___GENPT__ args; } INDEXED_GLint_GLuint_const_GLchar___GENPT__; typedef void (*FUNC_void_GLenum_GLboolean___GENPT__)(GLenum pname, GLboolean * params); typedef struct { GLenum a1; GLboolean * a2; } ARGS_void_GLenum_GLboolean___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLboolean___GENPT__ func; int refs; ARGS_void_GLenum_GLboolean___GENPT__ args; } PACKED_void_GLenum_GLboolean___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLboolean___GENPT__ args; } INDEXED_void_GLenum_GLboolean___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLint___GENPT__)(GLenum target, GLenum pname, GLint * params); typedef struct { GLenum a1; GLenum a2; GLint * a3; } ARGS_void_GLenum_GLenum_GLint___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_GLint___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_GLint___GENPT__ args; } PACKED_void_GLenum_GLenum_GLint___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_GLint___GENPT__ args; } INDEXED_void_GLenum_GLenum_GLint___GENPT__; typedef GLenum (*FUNC_GLenum)(); typedef struct { int format; FUNC_GLenum func; int refs; } PACKED_GLenum; typedef struct { int func; } INDEXED_GLenum; typedef void (*FUNC_void_GLenum_GLfloat___GENPT__)(GLenum pname, GLfloat * params); typedef struct { GLenum a1; GLfloat * a2; } ARGS_void_GLenum_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLfloat___GENPT__ func; int refs; ARGS_void_GLenum_GLfloat___GENPT__ args; } PACKED_void_GLenum_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLfloat___GENPT__ args; } INDEXED_void_GLenum_GLfloat___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLenum_GLint___GENPT__)(GLenum target, GLenum attachment, GLenum pname, GLint * params); typedef struct { GLenum a1; GLenum a2; GLenum a3; GLint * a4; } ARGS_void_GLenum_GLenum_GLenum_GLint___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_GLenum_GLint___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_GLenum_GLint___GENPT__ args; } PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_GLenum_GLint___GENPT__ args; } INDEXED_void_GLenum_GLenum_GLenum_GLint___GENPT__; typedef void (*FUNC_void_GLenum_GLint___GENPT__)(GLenum pname, GLint * params); typedef struct { GLenum a1; GLint * a2; } ARGS_void_GLenum_GLint___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLint___GENPT__ func; int refs; ARGS_void_GLenum_GLint___GENPT__ args; } PACKED_void_GLenum_GLint___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLint___GENPT__ args; } INDEXED_void_GLenum_GLint___GENPT__; typedef void (*FUNC_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); typedef struct { GLuint a1; GLsizei a2; GLsizei * a3; GLchar * a4; } ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ func; int refs; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ args; } PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ args; } INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__; typedef void (*FUNC_void_GLuint_GLenum_GLint___GENPT__)(GLuint program, GLenum pname, GLint * params); typedef struct { GLuint a1; GLenum a2; GLint * a3; } ARGS_void_GLuint_GLenum_GLint___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLenum_GLint___GENPT__ func; int refs; ARGS_void_GLuint_GLenum_GLint___GENPT__ args; } PACKED_void_GLuint_GLenum_GLint___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLenum_GLint___GENPT__ args; } INDEXED_void_GLuint_GLenum_GLint___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); typedef struct { GLenum a1; GLenum a2; GLint * a3; GLint * a4; } ARGS_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ args; } PACKED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ args; } INDEXED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__; typedef const GLubyte * (*FUNC_const_GLubyte___GENPT___GLenum)(GLenum name); typedef struct { GLenum a1; } ARGS_const_GLubyte___GENPT___GLenum; typedef struct { int format; FUNC_const_GLubyte___GENPT___GLenum func; int refs; ARGS_const_GLubyte___GENPT___GLenum args; } PACKED_const_GLubyte___GENPT___GLenum; typedef struct { int func; ARGS_const_GLubyte___GENPT___GLenum args; } INDEXED_const_GLubyte___GENPT___GLenum; typedef void (*FUNC_void_GLenum_GLenum_GLfloat___GENPT__)(GLenum target, GLenum pname, GLfloat * params); typedef struct { GLenum a1; GLenum a2; GLfloat * a3; } ARGS_void_GLenum_GLenum_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_GLfloat___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args; } PACKED_void_GLenum_GLenum_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args; } INDEXED_void_GLenum_GLenum_GLfloat___GENPT__; typedef void (*FUNC_void_GLuint_GLint_GLfloat___GENPT__)(GLuint program, GLint location, GLfloat * params); typedef struct { GLuint a1; GLint a2; GLfloat * a3; } ARGS_void_GLuint_GLint_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLint_GLfloat___GENPT__ func; int refs; ARGS_void_GLuint_GLint_GLfloat___GENPT__ args; } PACKED_void_GLuint_GLint_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLint_GLfloat___GENPT__ args; } INDEXED_void_GLuint_GLint_GLfloat___GENPT__; typedef void (*FUNC_void_GLuint_GLint_GLint___GENPT__)(GLuint program, GLint location, GLint * params); typedef struct { GLuint a1; GLint a2; GLint * a3; } ARGS_void_GLuint_GLint_GLint___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLint_GLint___GENPT__ func; int refs; ARGS_void_GLuint_GLint_GLint___GENPT__ args; } PACKED_void_GLuint_GLint_GLint___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLint_GLint___GENPT__ args; } INDEXED_void_GLuint_GLint_GLint___GENPT__; typedef void (*FUNC_void_GLuint_GLenum_GLvoid___GENPT____GENPT__)(GLuint index, GLenum pname, GLvoid ** pointer); typedef struct { GLuint a1; GLenum a2; GLvoid ** a3; } ARGS_void_GLuint_GLenum_GLvoid___GENPT____GENPT__; typedef struct { int format; FUNC_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ func; int refs; ARGS_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ args; } PACKED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__; typedef struct { int func; ARGS_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ args; } INDEXED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__; typedef void (*FUNC_void_GLuint_GLenum_GLfloat___GENPT__)(GLuint index, GLenum pname, GLfloat * params); typedef struct { GLuint a1; GLenum a2; GLfloat * a3; } ARGS_void_GLuint_GLenum_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLenum_GLfloat___GENPT__ func; int refs; ARGS_void_GLuint_GLenum_GLfloat___GENPT__ args; } PACKED_void_GLuint_GLenum_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLenum_GLfloat___GENPT__ args; } INDEXED_void_GLuint_GLenum_GLfloat___GENPT__; typedef GLboolean (*FUNC_GLboolean_GLuint)(GLuint buffer); typedef struct { GLuint a1; } ARGS_GLboolean_GLuint; typedef struct { int format; FUNC_GLboolean_GLuint func; int refs; ARGS_GLboolean_GLuint args; } PACKED_GLboolean_GLuint; typedef struct { int func; ARGS_GLboolean_GLuint args; } INDEXED_GLboolean_GLuint; typedef GLboolean (*FUNC_GLboolean_GLenum)(GLenum cap); typedef struct { GLenum a1; } ARGS_GLboolean_GLenum; typedef struct { int format; FUNC_GLboolean_GLenum func; int refs; ARGS_GLboolean_GLenum args; } PACKED_GLboolean_GLenum; typedef struct { int func; ARGS_GLboolean_GLenum args; } INDEXED_GLboolean_GLenum; typedef void (*FUNC_void_GLfloat)(GLfloat width); typedef struct { GLfloat a1; } ARGS_void_GLfloat; typedef struct { int format; FUNC_void_GLfloat func; int refs; ARGS_void_GLfloat args; } PACKED_void_GLfloat; typedef struct { int func; ARGS_void_GLfloat args; } INDEXED_void_GLfloat; typedef void (*FUNC_void_GLenum_GLint)(GLenum pname, GLint param); typedef struct { GLenum a1; GLint a2; } ARGS_void_GLenum_GLint; typedef struct { int format; FUNC_void_GLenum_GLint func; int refs; ARGS_void_GLenum_GLint args; } PACKED_void_GLenum_GLint; typedef struct { int func; ARGS_void_GLenum_GLint args; } INDEXED_void_GLenum_GLint; typedef void (*FUNC_void_GLfloat_GLfloat)(GLfloat factor, GLfloat units); typedef struct { GLfloat a1; GLfloat a2; } ARGS_void_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLfloat_GLfloat func; int refs; ARGS_void_GLfloat_GLfloat args; } PACKED_void_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLfloat_GLfloat args; } INDEXED_void_GLfloat_GLfloat; typedef void (*FUNC_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); typedef struct { GLint a1; GLint a2; GLsizei a3; GLsizei a4; GLenum a5; GLenum a6; GLvoid * a7; } ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ func; int refs; ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ args; } PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ args; } INDEXED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLsizei_GLsizei)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef struct { GLenum a1; GLenum a2; GLsizei a3; GLsizei a4; } ARGS_void_GLenum_GLenum_GLsizei_GLsizei; typedef struct { int format; FUNC_void_GLenum_GLenum_GLsizei_GLsizei func; int refs; ARGS_void_GLenum_GLenum_GLsizei_GLsizei args; } PACKED_void_GLenum_GLenum_GLsizei_GLsizei; typedef struct { int func; ARGS_void_GLenum_GLenum_GLsizei_GLsizei args; } INDEXED_void_GLenum_GLenum_GLsizei_GLsizei; typedef void (*FUNC_void_GLclampf_GLboolean)(GLclampf value, GLboolean invert); typedef struct { GLclampf a1; GLboolean a2; } ARGS_void_GLclampf_GLboolean; typedef struct { int format; FUNC_void_GLclampf_GLboolean func; int refs; ARGS_void_GLclampf_GLboolean args; } PACKED_void_GLclampf_GLboolean; typedef struct { int func; ARGS_void_GLclampf_GLboolean args; } INDEXED_void_GLclampf_GLboolean; typedef void (*FUNC_void_GLint_GLint_GLsizei_GLsizei)(GLint x, GLint y, GLsizei width, GLsizei height); typedef struct { GLint a1; GLint a2; GLsizei a3; GLsizei a4; } ARGS_void_GLint_GLint_GLsizei_GLsizei; typedef struct { int format; FUNC_void_GLint_GLint_GLsizei_GLsizei func; int refs; ARGS_void_GLint_GLint_GLsizei_GLsizei args; } PACKED_void_GLint_GLint_GLsizei_GLsizei; typedef struct { int func; ARGS_void_GLint_GLint_GLsizei_GLsizei args; } INDEXED_void_GLint_GLint_GLsizei_GLsizei; typedef void (*FUNC_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei)(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length); typedef struct { GLsizei a1; GLuint * a2; GLenum a3; GLvoid * a4; GLsizei a5; } ARGS_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei; typedef struct { int format; FUNC_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei func; int refs; ARGS_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei args; } PACKED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei; typedef struct { int func; ARGS_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei args; } INDEXED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei; typedef void (*FUNC_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__)(GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length); typedef struct { GLuint a1; GLsizei a2; GLchar * * a3; GLint * a4; } ARGS_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ func; int refs; ARGS_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ args; } PACKED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ args; } INDEXED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__; typedef void (*FUNC_void_GLenum_GLint_GLuint)(GLenum func, GLint ref, GLuint mask); typedef struct { GLenum a1; GLint a2; GLuint a3; } ARGS_void_GLenum_GLint_GLuint; typedef struct { int format; FUNC_void_GLenum_GLint_GLuint func; int refs; ARGS_void_GLenum_GLint_GLuint args; } PACKED_void_GLenum_GLint_GLuint; typedef struct { int func; ARGS_void_GLenum_GLint_GLuint args; } INDEXED_void_GLenum_GLint_GLuint; typedef void (*FUNC_void_GLenum_GLenum_GLint_GLuint)(GLenum face, GLenum func, GLint ref, GLuint mask); typedef struct { GLenum a1; GLenum a2; GLint a3; GLuint a4; } ARGS_void_GLenum_GLenum_GLint_GLuint; typedef struct { int format; FUNC_void_GLenum_GLenum_GLint_GLuint func; int refs; ARGS_void_GLenum_GLenum_GLint_GLuint args; } PACKED_void_GLenum_GLenum_GLint_GLuint; typedef struct { int func; ARGS_void_GLenum_GLenum_GLint_GLuint args; } INDEXED_void_GLenum_GLenum_GLint_GLuint; typedef void (*FUNC_void_GLenum_GLenum_GLenum)(GLenum fail, GLenum zfail, GLenum zpass); typedef struct { GLenum a1; GLenum a2; GLenum a3; } ARGS_void_GLenum_GLenum_GLenum; typedef struct { int format; FUNC_void_GLenum_GLenum_GLenum func; int refs; ARGS_void_GLenum_GLenum_GLenum args; } PACKED_void_GLenum_GLenum_GLenum; typedef struct { int func; ARGS_void_GLenum_GLenum_GLenum args; } INDEXED_void_GLenum_GLenum_GLenum; typedef void (*FUNC_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); typedef struct { GLenum a1; GLint a2; GLint a3; GLsizei a4; GLsizei a5; GLint a6; GLenum a7; GLenum a8; GLvoid * a9; } ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLfloat)(GLenum target, GLenum pname, GLfloat param); typedef struct { GLenum a1; GLenum a2; GLfloat a3; } ARGS_void_GLenum_GLenum_GLfloat; typedef struct { int format; FUNC_void_GLenum_GLenum_GLfloat func; int refs; ARGS_void_GLenum_GLenum_GLfloat args; } PACKED_void_GLenum_GLenum_GLfloat; typedef struct { int func; ARGS_void_GLenum_GLenum_GLfloat args; } INDEXED_void_GLenum_GLenum_GLfloat; typedef void (*FUNC_void_GLenum_GLenum_const_GLfloat___GENPT__)(GLenum target, GLenum pname, const GLfloat * params); typedef struct { GLenum a1; GLenum a2; GLfloat * a3; } ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_const_GLfloat___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args; } PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args; } INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__; typedef void (*FUNC_void_GLenum_GLenum_GLint)(GLenum target, GLenum pname, GLint param); typedef struct { GLenum a1; GLenum a2; GLint a3; } ARGS_void_GLenum_GLenum_GLint; typedef struct { int format; FUNC_void_GLenum_GLenum_GLint func; int refs; ARGS_void_GLenum_GLenum_GLint args; } PACKED_void_GLenum_GLenum_GLint; typedef struct { int func; ARGS_void_GLenum_GLenum_GLint args; } INDEXED_void_GLenum_GLenum_GLint; typedef void (*FUNC_void_GLenum_GLenum_const_GLint___GENPT__)(GLenum target, GLenum pname, const GLint * params); typedef struct { GLenum a1; GLenum a2; GLint * a3; } ARGS_void_GLenum_GLenum_const_GLint___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLenum_const_GLint___GENPT__ func; int refs; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args; } PACKED_void_GLenum_GLenum_const_GLint___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args; } INDEXED_void_GLenum_GLenum_const_GLint___GENPT__; typedef void (*FUNC_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); typedef struct { GLenum a1; GLint a2; GLint a3; GLint a4; GLsizei a5; GLsizei a6; GLenum a7; GLenum a8; GLvoid * a9; } ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ args; } PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ args; } INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__; typedef void (*FUNC_void_GLint_GLfloat)(GLint location, GLfloat v0); typedef struct { GLint a1; GLfloat a2; } ARGS_void_GLint_GLfloat; typedef struct { int format; FUNC_void_GLint_GLfloat func; int refs; ARGS_void_GLint_GLfloat args; } PACKED_void_GLint_GLfloat; typedef struct { int func; ARGS_void_GLint_GLfloat args; } INDEXED_void_GLint_GLfloat; typedef void (*FUNC_void_GLint_GLsizei_const_GLfloat___GENPT__)(GLint location, GLsizei count, const GLfloat * value); typedef struct { GLint a1; GLsizei a2; GLfloat * a3; } ARGS_void_GLint_GLsizei_const_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLint_GLsizei_const_GLfloat___GENPT__ func; int refs; ARGS_void_GLint_GLsizei_const_GLfloat___GENPT__ args; } PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLint_GLsizei_const_GLfloat___GENPT__ args; } INDEXED_void_GLint_GLsizei_const_GLfloat___GENPT__; typedef void (*FUNC_void_GLint_GLint)(GLint location, GLint v0); typedef struct { GLint a1; GLint a2; } ARGS_void_GLint_GLint; typedef struct { int format; FUNC_void_GLint_GLint func; int refs; ARGS_void_GLint_GLint args; } PACKED_void_GLint_GLint; typedef struct { int func; ARGS_void_GLint_GLint args; } INDEXED_void_GLint_GLint; typedef void (*FUNC_void_GLint_GLsizei_const_GLint___GENPT__)(GLint location, GLsizei count, const GLint * value); typedef struct { GLint a1; GLsizei a2; GLint * a3; } ARGS_void_GLint_GLsizei_const_GLint___GENPT__; typedef struct { int format; FUNC_void_GLint_GLsizei_const_GLint___GENPT__ func; int refs; ARGS_void_GLint_GLsizei_const_GLint___GENPT__ args; } PACKED_void_GLint_GLsizei_const_GLint___GENPT__; typedef struct { int func; ARGS_void_GLint_GLsizei_const_GLint___GENPT__ args; } INDEXED_void_GLint_GLsizei_const_GLint___GENPT__; typedef void (*FUNC_void_GLint_GLfloat_GLfloat)(GLint location, GLfloat v0, GLfloat v1); typedef struct { GLint a1; GLfloat a2; GLfloat a3; } ARGS_void_GLint_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLint_GLfloat_GLfloat func; int refs; ARGS_void_GLint_GLfloat_GLfloat args; } PACKED_void_GLint_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLint_GLfloat_GLfloat args; } INDEXED_void_GLint_GLfloat_GLfloat; typedef void (*FUNC_void_GLint_GLint_GLint)(GLint location, GLint v0, GLint v1); typedef struct { GLint a1; GLint a2; GLint a3; } ARGS_void_GLint_GLint_GLint; typedef struct { int format; FUNC_void_GLint_GLint_GLint func; int refs; ARGS_void_GLint_GLint_GLint args; } PACKED_void_GLint_GLint_GLint; typedef struct { int func; ARGS_void_GLint_GLint_GLint args; } INDEXED_void_GLint_GLint_GLint; typedef void (*FUNC_void_GLint_GLfloat_GLfloat_GLfloat)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef struct { GLint a1; GLfloat a2; GLfloat a3; GLfloat a4; } ARGS_void_GLint_GLfloat_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLint_GLfloat_GLfloat_GLfloat func; int refs; ARGS_void_GLint_GLfloat_GLfloat_GLfloat args; } PACKED_void_GLint_GLfloat_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLint_GLfloat_GLfloat_GLfloat args; } INDEXED_void_GLint_GLfloat_GLfloat_GLfloat; typedef void (*FUNC_void_GLint_GLint_GLint_GLint)(GLint location, GLint v0, GLint v1, GLint v2); typedef struct { GLint a1; GLint a2; GLint a3; GLint a4; } ARGS_void_GLint_GLint_GLint_GLint; typedef struct { int format; FUNC_void_GLint_GLint_GLint_GLint func; int refs; ARGS_void_GLint_GLint_GLint_GLint args; } PACKED_void_GLint_GLint_GLint_GLint; typedef struct { int func; ARGS_void_GLint_GLint_GLint_GLint args; } INDEXED_void_GLint_GLint_GLint_GLint; typedef void (*FUNC_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef struct { GLint a1; GLfloat a2; GLfloat a3; GLfloat a4; GLfloat a5; } ARGS_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat func; int refs; ARGS_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat args; } PACKED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat args; } INDEXED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat; typedef void (*FUNC_void_GLint_GLint_GLint_GLint_GLint)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef struct { GLint a1; GLint a2; GLint a3; GLint a4; GLint a5; } ARGS_void_GLint_GLint_GLint_GLint_GLint; typedef struct { int format; FUNC_void_GLint_GLint_GLint_GLint_GLint func; int refs; ARGS_void_GLint_GLint_GLint_GLint_GLint args; } PACKED_void_GLint_GLint_GLint_GLint_GLint; typedef struct { int func; ARGS_void_GLint_GLint_GLint_GLint_GLint args; } INDEXED_void_GLint_GLint_GLint_GLint_GLint; typedef void (*FUNC_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); typedef struct { GLint a1; GLsizei a2; GLboolean a3; GLfloat * a4; } ARGS_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ func; int refs; ARGS_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ args; } PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ args; } INDEXED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__; typedef void (*FUNC_void_GLuint_GLfloat)(GLuint index, GLfloat x); typedef struct { GLuint a1; GLfloat a2; } ARGS_void_GLuint_GLfloat; typedef struct { int format; FUNC_void_GLuint_GLfloat func; int refs; ARGS_void_GLuint_GLfloat args; } PACKED_void_GLuint_GLfloat; typedef struct { int func; ARGS_void_GLuint_GLfloat args; } INDEXED_void_GLuint_GLfloat; typedef void (*FUNC_void_GLuint_const_GLfloat___GENPT__)(GLuint index, const GLfloat * v); typedef struct { GLuint a1; GLfloat * a2; } ARGS_void_GLuint_const_GLfloat___GENPT__; typedef struct { int format; FUNC_void_GLuint_const_GLfloat___GENPT__ func; int refs; ARGS_void_GLuint_const_GLfloat___GENPT__ args; } PACKED_void_GLuint_const_GLfloat___GENPT__; typedef struct { int func; ARGS_void_GLuint_const_GLfloat___GENPT__ args; } INDEXED_void_GLuint_const_GLfloat___GENPT__; typedef void (*FUNC_void_GLuint_GLfloat_GLfloat)(GLuint index, GLfloat x, GLfloat y); typedef struct { GLuint a1; GLfloat a2; GLfloat a3; } ARGS_void_GLuint_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLuint_GLfloat_GLfloat func; int refs; ARGS_void_GLuint_GLfloat_GLfloat args; } PACKED_void_GLuint_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLuint_GLfloat_GLfloat args; } INDEXED_void_GLuint_GLfloat_GLfloat; typedef void (*FUNC_void_GLuint_GLfloat_GLfloat_GLfloat)(GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef struct { GLuint a1; GLfloat a2; GLfloat a3; GLfloat a4; } ARGS_void_GLuint_GLfloat_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLuint_GLfloat_GLfloat_GLfloat func; int refs; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat args; } PACKED_void_GLuint_GLfloat_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat args; } INDEXED_void_GLuint_GLfloat_GLfloat_GLfloat; typedef void (*FUNC_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef struct { GLuint a1; GLfloat a2; GLfloat a3; GLfloat a4; GLfloat a5; } ARGS_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat; typedef struct { int format; FUNC_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat func; int refs; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat args; } PACKED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat; typedef struct { int func; ARGS_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat args; } INDEXED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat; typedef void (*FUNC_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); typedef struct { GLuint a1; GLint a2; GLenum a3; GLboolean a4; GLsizei a5; GLvoid * a6; } ARGS_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__; typedef struct { int format; FUNC_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ func; int refs; ARGS_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ args; } PACKED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__; typedef struct { int func; ARGS_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ args; } INDEXED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__; extern void glPushCall(void *data); void glPackedCall(const packed_call_t *packed); void glIndexedCall(const indexed_call_t *packed, void *ret_v); #define glActiveTexture_INDEX 1 #define glActiveTexture_RETURN void #define glActiveTexture_ARG_NAMES texture #define glActiveTexture_ARG_EXPAND GLenum texture #define glActiveTexture_PACKED PACKED_void_GLenum #define glActiveTexture_INDEXED INDEXED_void_GLenum #define glActiveTexture_FORMAT FORMAT_void_GLenum #define glAttachShader_INDEX 2 #define glAttachShader_RETURN void #define glAttachShader_ARG_NAMES program, shader #define glAttachShader_ARG_EXPAND GLuint program, GLuint shader #define glAttachShader_PACKED PACKED_void_GLuint_GLuint #define glAttachShader_INDEXED INDEXED_void_GLuint_GLuint #define glAttachShader_FORMAT FORMAT_void_GLuint_GLuint #define glBindAttribLocation_INDEX 3 #define glBindAttribLocation_RETURN void #define glBindAttribLocation_ARG_NAMES program, index, name #define glBindAttribLocation_ARG_EXPAND GLuint program, GLuint index, const GLchar * name #define glBindAttribLocation_PACKED PACKED_void_GLuint_GLuint_const_GLchar___GENPT__ #define glBindAttribLocation_INDEXED INDEXED_void_GLuint_GLuint_const_GLchar___GENPT__ #define glBindAttribLocation_FORMAT FORMAT_void_GLuint_GLuint_const_GLchar___GENPT__ #define glBindBuffer_INDEX 4 #define glBindBuffer_RETURN void #define glBindBuffer_ARG_NAMES target, buffer #define glBindBuffer_ARG_EXPAND GLenum target, GLuint buffer #define glBindBuffer_PACKED PACKED_void_GLenum_GLuint #define glBindBuffer_INDEXED INDEXED_void_GLenum_GLuint #define glBindBuffer_FORMAT FORMAT_void_GLenum_GLuint #define glBindFramebuffer_INDEX 5 #define glBindFramebuffer_RETURN void #define glBindFramebuffer_ARG_NAMES target, framebuffer #define glBindFramebuffer_ARG_EXPAND GLenum target, GLuint framebuffer #define glBindFramebuffer_PACKED PACKED_void_GLenum_GLuint #define glBindFramebuffer_INDEXED INDEXED_void_GLenum_GLuint #define glBindFramebuffer_FORMAT FORMAT_void_GLenum_GLuint #define glBindRenderbuffer_INDEX 6 #define glBindRenderbuffer_RETURN void #define glBindRenderbuffer_ARG_NAMES target, renderbuffer #define glBindRenderbuffer_ARG_EXPAND GLenum target, GLuint renderbuffer #define glBindRenderbuffer_PACKED PACKED_void_GLenum_GLuint #define glBindRenderbuffer_INDEXED INDEXED_void_GLenum_GLuint #define glBindRenderbuffer_FORMAT FORMAT_void_GLenum_GLuint #define glBindTexture_INDEX 7 #define glBindTexture_RETURN void #define glBindTexture_ARG_NAMES target, texture #define glBindTexture_ARG_EXPAND GLenum target, GLuint texture #define glBindTexture_PACKED PACKED_void_GLenum_GLuint #define glBindTexture_INDEXED INDEXED_void_GLenum_GLuint #define glBindTexture_FORMAT FORMAT_void_GLenum_GLuint #define glBlendColor_INDEX 8 #define glBlendColor_RETURN void #define glBlendColor_ARG_NAMES red, green, blue, alpha #define glBlendColor_ARG_EXPAND GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha #define glBlendColor_PACKED PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf #define glBlendColor_INDEXED INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf #define glBlendColor_FORMAT FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf #define glBlendEquation_INDEX 9 #define glBlendEquation_RETURN void #define glBlendEquation_ARG_NAMES mode #define glBlendEquation_ARG_EXPAND GLenum mode #define glBlendEquation_PACKED PACKED_void_GLenum #define glBlendEquation_INDEXED INDEXED_void_GLenum #define glBlendEquation_FORMAT FORMAT_void_GLenum #define glBlendEquationSeparate_INDEX 10 #define glBlendEquationSeparate_RETURN void #define glBlendEquationSeparate_ARG_NAMES modeRGB, modeA #define glBlendEquationSeparate_ARG_EXPAND GLenum modeRGB, GLenum modeA #define glBlendEquationSeparate_PACKED PACKED_void_GLenum_GLenum #define glBlendEquationSeparate_INDEXED INDEXED_void_GLenum_GLenum #define glBlendEquationSeparate_FORMAT FORMAT_void_GLenum_GLenum #define glBlendFunc_INDEX 11 #define glBlendFunc_RETURN void #define glBlendFunc_ARG_NAMES sfactor, dfactor #define glBlendFunc_ARG_EXPAND GLenum sfactor, GLenum dfactor #define glBlendFunc_PACKED PACKED_void_GLenum_GLenum #define glBlendFunc_INDEXED INDEXED_void_GLenum_GLenum #define glBlendFunc_FORMAT FORMAT_void_GLenum_GLenum #define glBlendFuncSeparate_INDEX 12 #define glBlendFuncSeparate_RETURN void #define glBlendFuncSeparate_ARG_NAMES sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha #define glBlendFuncSeparate_ARG_EXPAND GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha #define glBlendFuncSeparate_PACKED PACKED_void_GLenum_GLenum_GLenum_GLenum #define glBlendFuncSeparate_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLenum #define glBlendFuncSeparate_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLenum #define glBufferData_INDEX 13 #define glBufferData_RETURN void #define glBufferData_ARG_NAMES target, size, data, usage #define glBufferData_ARG_EXPAND GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage #define glBufferData_PACKED PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define glBufferData_INDEXED INDEXED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define glBufferData_FORMAT FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define glBufferSubData_INDEX 14 #define glBufferSubData_RETURN void #define glBufferSubData_ARG_NAMES target, offset, size, data #define glBufferSubData_ARG_EXPAND GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data #define glBufferSubData_PACKED PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define glBufferSubData_INDEXED INDEXED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define glBufferSubData_FORMAT FORMAT_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define glCheckFramebufferStatus_INDEX 15 #define glCheckFramebufferStatus_RETURN GLenum #define glCheckFramebufferStatus_ARG_NAMES target #define glCheckFramebufferStatus_ARG_EXPAND GLenum target #define glCheckFramebufferStatus_PACKED PACKED_GLenum_GLenum #define glCheckFramebufferStatus_INDEXED INDEXED_GLenum_GLenum #define glCheckFramebufferStatus_FORMAT FORMAT_GLenum_GLenum #define glClear_INDEX 16 #define glClear_RETURN void #define glClear_ARG_NAMES mask #define glClear_ARG_EXPAND GLbitfield mask #define glClear_PACKED PACKED_void_GLbitfield #define glClear_INDEXED INDEXED_void_GLbitfield #define glClear_FORMAT FORMAT_void_GLbitfield #define glClearColor_INDEX 17 #define glClearColor_RETURN void #define glClearColor_ARG_NAMES red, green, blue, alpha #define glClearColor_ARG_EXPAND GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha #define glClearColor_PACKED PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf #define glClearColor_INDEXED INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf #define glClearColor_FORMAT FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf #define glClearDepthf_INDEX 18 #define glClearDepthf_RETURN void #define glClearDepthf_ARG_NAMES depth #define glClearDepthf_ARG_EXPAND GLclampf depth #define glClearDepthf_PACKED PACKED_void_GLclampf #define glClearDepthf_INDEXED INDEXED_void_GLclampf #define glClearDepthf_FORMAT FORMAT_void_GLclampf #define glClearStencil_INDEX 19 #define glClearStencil_RETURN void #define glClearStencil_ARG_NAMES s #define glClearStencil_ARG_EXPAND GLint s #define glClearStencil_PACKED PACKED_void_GLint #define glClearStencil_INDEXED INDEXED_void_GLint #define glClearStencil_FORMAT FORMAT_void_GLint #define glColorMask_INDEX 20 #define glColorMask_RETURN void #define glColorMask_ARG_NAMES red, green, blue, alpha #define glColorMask_ARG_EXPAND GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha #define glColorMask_PACKED PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean #define glColorMask_INDEXED INDEXED_void_GLboolean_GLboolean_GLboolean_GLboolean #define glColorMask_FORMAT FORMAT_void_GLboolean_GLboolean_GLboolean_GLboolean #define glCompileShader_INDEX 21 #define glCompileShader_RETURN void #define glCompileShader_ARG_NAMES shader #define glCompileShader_ARG_EXPAND GLuint shader #define glCompileShader_PACKED PACKED_void_GLuint #define glCompileShader_INDEXED INDEXED_void_GLuint #define glCompileShader_FORMAT FORMAT_void_GLuint #define glCompressedTexImage2D_INDEX 22 #define glCompressedTexImage2D_RETURN void #define glCompressedTexImage2D_ARG_NAMES target, level, internalformat, width, height, border, imageSize, data #define glCompressedTexImage2D_ARG_EXPAND GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data #define glCompressedTexImage2D_PACKED PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define glCompressedTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define glCompressedTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define glCompressedTexSubImage2D_INDEX 23 #define glCompressedTexSubImage2D_RETURN void #define glCompressedTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, width, height, format, imageSize, data #define glCompressedTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data #define glCompressedTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define glCompressedTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define glCompressedTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define glCopyTexImage2D_INDEX 24 #define glCopyTexImage2D_RETURN void #define glCopyTexImage2D_ARG_NAMES target, level, internalformat, x, y, width, height, border #define glCopyTexImage2D_ARG_EXPAND GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border #define glCopyTexImage2D_PACKED PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define glCopyTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define glCopyTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define glCopyTexSubImage2D_INDEX 25 #define glCopyTexSubImage2D_RETURN void #define glCopyTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, x, y, width, height #define glCopyTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height #define glCopyTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define glCopyTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define glCopyTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define glCreateProgram_INDEX 26 #define glCreateProgram_RETURN GLuint #define glCreateProgram_ARG_NAMES #define glCreateProgram_ARG_EXPAND #define glCreateProgram_PACKED PACKED_GLuint #define glCreateProgram_INDEXED INDEXED_GLuint #define glCreateProgram_FORMAT FORMAT_GLuint #define glCreateShader_INDEX 27 #define glCreateShader_RETURN GLuint #define glCreateShader_ARG_NAMES type #define glCreateShader_ARG_EXPAND GLenum type #define glCreateShader_PACKED PACKED_GLuint_GLenum #define glCreateShader_INDEXED INDEXED_GLuint_GLenum #define glCreateShader_FORMAT FORMAT_GLuint_GLenum #define glCullFace_INDEX 28 #define glCullFace_RETURN void #define glCullFace_ARG_NAMES mode #define glCullFace_ARG_EXPAND GLenum mode #define glCullFace_PACKED PACKED_void_GLenum #define glCullFace_INDEXED INDEXED_void_GLenum #define glCullFace_FORMAT FORMAT_void_GLenum #define glDeleteBuffers_INDEX 29 #define glDeleteBuffers_RETURN void #define glDeleteBuffers_ARG_NAMES n, buffer #define glDeleteBuffers_ARG_EXPAND GLsizei n, const GLuint * buffer #define glDeleteBuffers_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteBuffers_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteBuffers_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define glDeleteFramebuffers_INDEX 30 #define glDeleteFramebuffers_RETURN void #define glDeleteFramebuffers_ARG_NAMES n, framebuffers #define glDeleteFramebuffers_ARG_EXPAND GLsizei n, const GLuint * framebuffers #define glDeleteFramebuffers_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteFramebuffers_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteFramebuffers_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define glDeleteProgram_INDEX 31 #define glDeleteProgram_RETURN void #define glDeleteProgram_ARG_NAMES program #define glDeleteProgram_ARG_EXPAND GLuint program #define glDeleteProgram_PACKED PACKED_void_GLuint #define glDeleteProgram_INDEXED INDEXED_void_GLuint #define glDeleteProgram_FORMAT FORMAT_void_GLuint #define glDeleteRenderbuffers_INDEX 32 #define glDeleteRenderbuffers_RETURN void #define glDeleteRenderbuffers_ARG_NAMES n, renderbuffers #define glDeleteRenderbuffers_ARG_EXPAND GLsizei n, const GLuint * renderbuffers #define glDeleteRenderbuffers_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteRenderbuffers_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteRenderbuffers_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define glDeleteShader_INDEX 33 #define glDeleteShader_RETURN void #define glDeleteShader_ARG_NAMES program #define glDeleteShader_ARG_EXPAND GLuint program #define glDeleteShader_PACKED PACKED_void_GLuint #define glDeleteShader_INDEXED INDEXED_void_GLuint #define glDeleteShader_FORMAT FORMAT_void_GLuint #define glDeleteTextures_INDEX 34 #define glDeleteTextures_RETURN void #define glDeleteTextures_ARG_NAMES n, textures #define glDeleteTextures_ARG_EXPAND GLsizei n, const GLuint * textures #define glDeleteTextures_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteTextures_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define glDeleteTextures_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define glDepthFunc_INDEX 35 #define glDepthFunc_RETURN void #define glDepthFunc_ARG_NAMES func #define glDepthFunc_ARG_EXPAND GLenum func #define glDepthFunc_PACKED PACKED_void_GLenum #define glDepthFunc_INDEXED INDEXED_void_GLenum #define glDepthFunc_FORMAT FORMAT_void_GLenum #define glDepthMask_INDEX 36 #define glDepthMask_RETURN void #define glDepthMask_ARG_NAMES flag #define glDepthMask_ARG_EXPAND GLboolean flag #define glDepthMask_PACKED PACKED_void_GLboolean #define glDepthMask_INDEXED INDEXED_void_GLboolean #define glDepthMask_FORMAT FORMAT_void_GLboolean #define glDepthRangef_INDEX 37 #define glDepthRangef_RETURN void #define glDepthRangef_ARG_NAMES near, far #define glDepthRangef_ARG_EXPAND GLclampf near, GLclampf far #define glDepthRangef_PACKED PACKED_void_GLclampf_GLclampf #define glDepthRangef_INDEXED INDEXED_void_GLclampf_GLclampf #define glDepthRangef_FORMAT FORMAT_void_GLclampf_GLclampf #define glDetachShader_INDEX 38 #define glDetachShader_RETURN void #define glDetachShader_ARG_NAMES program, shader #define glDetachShader_ARG_EXPAND GLuint program, GLuint shader #define glDetachShader_PACKED PACKED_void_GLuint_GLuint #define glDetachShader_INDEXED INDEXED_void_GLuint_GLuint #define glDetachShader_FORMAT FORMAT_void_GLuint_GLuint #define glDisable_INDEX 39 #define glDisable_RETURN void #define glDisable_ARG_NAMES cap #define glDisable_ARG_EXPAND GLenum cap #define glDisable_PACKED PACKED_void_GLenum #define glDisable_INDEXED INDEXED_void_GLenum #define glDisable_FORMAT FORMAT_void_GLenum #define glDisableVertexAttribArray_INDEX 40 #define glDisableVertexAttribArray_RETURN void #define glDisableVertexAttribArray_ARG_NAMES index #define glDisableVertexAttribArray_ARG_EXPAND GLuint index #define glDisableVertexAttribArray_PACKED PACKED_void_GLuint #define glDisableVertexAttribArray_INDEXED INDEXED_void_GLuint #define glDisableVertexAttribArray_FORMAT FORMAT_void_GLuint #define glDrawArrays_INDEX 41 #define glDrawArrays_RETURN void #define glDrawArrays_ARG_NAMES mode, first, count #define glDrawArrays_ARG_EXPAND GLenum mode, GLint first, GLsizei count #define glDrawArrays_PACKED PACKED_void_GLenum_GLint_GLsizei #define glDrawArrays_INDEXED INDEXED_void_GLenum_GLint_GLsizei #define glDrawArrays_FORMAT FORMAT_void_GLenum_GLint_GLsizei #define glDrawElements_INDEX 42 #define glDrawElements_RETURN void #define glDrawElements_ARG_NAMES mode, count, type, indices #define glDrawElements_ARG_EXPAND GLenum mode, GLsizei count, GLenum type, const GLvoid * indices #define glDrawElements_PACKED PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define glDrawElements_INDEXED INDEXED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define glDrawElements_FORMAT FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define glEnable_INDEX 43 #define glEnable_RETURN void #define glEnable_ARG_NAMES cap #define glEnable_ARG_EXPAND GLenum cap #define glEnable_PACKED PACKED_void_GLenum #define glEnable_INDEXED INDEXED_void_GLenum #define glEnable_FORMAT FORMAT_void_GLenum #define glEnableVertexAttribArray_INDEX 44 #define glEnableVertexAttribArray_RETURN void #define glEnableVertexAttribArray_ARG_NAMES index #define glEnableVertexAttribArray_ARG_EXPAND GLuint index #define glEnableVertexAttribArray_PACKED PACKED_void_GLuint #define glEnableVertexAttribArray_INDEXED INDEXED_void_GLuint #define glEnableVertexAttribArray_FORMAT FORMAT_void_GLuint #define glFinish_INDEX 45 #define glFinish_RETURN void #define glFinish_ARG_NAMES #define glFinish_ARG_EXPAND #define glFinish_PACKED PACKED_void #define glFinish_INDEXED INDEXED_void #define glFinish_FORMAT FORMAT_void #define glFlush_INDEX 46 #define glFlush_RETURN void #define glFlush_ARG_NAMES #define glFlush_ARG_EXPAND #define glFlush_PACKED PACKED_void #define glFlush_INDEXED INDEXED_void #define glFlush_FORMAT FORMAT_void #define glFramebufferRenderbuffer_INDEX 47 #define glFramebufferRenderbuffer_RETURN void #define glFramebufferRenderbuffer_ARG_NAMES target, attachment, renderbuffertarget, renderbuffer #define glFramebufferRenderbuffer_ARG_EXPAND GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer #define glFramebufferRenderbuffer_PACKED PACKED_void_GLenum_GLenum_GLenum_GLuint #define glFramebufferRenderbuffer_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLuint #define glFramebufferRenderbuffer_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLuint #define glFramebufferTexture2D_INDEX 48 #define glFramebufferTexture2D_RETURN void #define glFramebufferTexture2D_ARG_NAMES target, attachment, textarget, texture, level #define glFramebufferTexture2D_ARG_EXPAND GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level #define glFramebufferTexture2D_PACKED PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint #define glFramebufferTexture2D_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLuint_GLint #define glFramebufferTexture2D_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint #define glFrontFace_INDEX 49 #define glFrontFace_RETURN void #define glFrontFace_ARG_NAMES mode #define glFrontFace_ARG_EXPAND GLenum mode #define glFrontFace_PACKED PACKED_void_GLenum #define glFrontFace_INDEXED INDEXED_void_GLenum #define glFrontFace_FORMAT FORMAT_void_GLenum #define glGenBuffers_INDEX 50 #define glGenBuffers_RETURN void #define glGenBuffers_ARG_NAMES n, buffer #define glGenBuffers_ARG_EXPAND GLsizei n, GLuint * buffer #define glGenBuffers_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define glGenBuffers_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define glGenBuffers_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define glGenFramebuffers_INDEX 51 #define glGenFramebuffers_RETURN void #define glGenFramebuffers_ARG_NAMES n, framebuffers #define glGenFramebuffers_ARG_EXPAND GLsizei n, GLuint * framebuffers #define glGenFramebuffers_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define glGenFramebuffers_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define glGenFramebuffers_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define glGenRenderbuffers_INDEX 52 #define glGenRenderbuffers_RETURN void #define glGenRenderbuffers_ARG_NAMES n, renderbuffers #define glGenRenderbuffers_ARG_EXPAND GLsizei n, GLuint * renderbuffers #define glGenRenderbuffers_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define glGenRenderbuffers_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define glGenRenderbuffers_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define glGenTextures_INDEX 53 #define glGenTextures_RETURN void #define glGenTextures_ARG_NAMES n, textures #define glGenTextures_ARG_EXPAND GLsizei n, GLuint * textures #define glGenTextures_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define glGenTextures_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define glGenTextures_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define glGenerateMipmap_INDEX 54 #define glGenerateMipmap_RETURN void #define glGenerateMipmap_ARG_NAMES target #define glGenerateMipmap_ARG_EXPAND GLenum target #define glGenerateMipmap_PACKED PACKED_void_GLenum #define glGenerateMipmap_INDEXED INDEXED_void_GLenum #define glGenerateMipmap_FORMAT FORMAT_void_GLenum #define glGetActiveAttrib_INDEX 55 #define glGetActiveAttrib_RETURN void #define glGetActiveAttrib_ARG_NAMES program, index, bufSize, length, size, type, name #define glGetActiveAttrib_ARG_EXPAND GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name #define glGetActiveAttrib_PACKED PACKED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetActiveAttrib_INDEXED INDEXED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetActiveAttrib_FORMAT FORMAT_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetActiveUniform_INDEX 56 #define glGetActiveUniform_RETURN void #define glGetActiveUniform_ARG_NAMES program, index, bufSize, length, size, type, name #define glGetActiveUniform_ARG_EXPAND GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name #define glGetActiveUniform_PACKED PACKED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetActiveUniform_INDEXED INDEXED_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetActiveUniform_FORMAT FORMAT_void_GLuint_GLuint_GLsizei_GLsizei___GENPT___GLint___GENPT___GLenum___GENPT___GLchar___GENPT__ #define glGetAttachedShaders_INDEX 57 #define glGetAttachedShaders_RETURN void #define glGetAttachedShaders_ARG_NAMES program, maxCount, count, obj #define glGetAttachedShaders_ARG_EXPAND GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj #define glGetAttachedShaders_PACKED PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ #define glGetAttachedShaders_INDEXED INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ #define glGetAttachedShaders_FORMAT FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLuint___GENPT__ #define glGetAttribLocation_INDEX 58 #define glGetAttribLocation_RETURN GLint #define glGetAttribLocation_ARG_NAMES program, name #define glGetAttribLocation_ARG_EXPAND GLuint program, const GLchar * name #define glGetAttribLocation_PACKED PACKED_GLint_GLuint_const_GLchar___GENPT__ #define glGetAttribLocation_INDEXED INDEXED_GLint_GLuint_const_GLchar___GENPT__ #define glGetAttribLocation_FORMAT FORMAT_GLint_GLuint_const_GLchar___GENPT__ #define glGetBooleanv_INDEX 59 #define glGetBooleanv_RETURN void #define glGetBooleanv_ARG_NAMES pname, params #define glGetBooleanv_ARG_EXPAND GLenum pname, GLboolean * params #define glGetBooleanv_PACKED PACKED_void_GLenum_GLboolean___GENPT__ #define glGetBooleanv_INDEXED INDEXED_void_GLenum_GLboolean___GENPT__ #define glGetBooleanv_FORMAT FORMAT_void_GLenum_GLboolean___GENPT__ #define glGetBufferParameteriv_INDEX 60 #define glGetBufferParameteriv_RETURN void #define glGetBufferParameteriv_ARG_NAMES target, pname, params #define glGetBufferParameteriv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define glGetBufferParameteriv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define glGetBufferParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define glGetBufferParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define glGetError_INDEX 61 #define glGetError_RETURN GLenum #define glGetError_ARG_NAMES #define glGetError_ARG_EXPAND #define glGetError_PACKED PACKED_GLenum #define glGetError_INDEXED INDEXED_GLenum #define glGetError_FORMAT FORMAT_GLenum #define glGetFloatv_INDEX 62 #define glGetFloatv_RETURN void #define glGetFloatv_ARG_NAMES pname, params #define glGetFloatv_ARG_EXPAND GLenum pname, GLfloat * params #define glGetFloatv_PACKED PACKED_void_GLenum_GLfloat___GENPT__ #define glGetFloatv_INDEXED INDEXED_void_GLenum_GLfloat___GENPT__ #define glGetFloatv_FORMAT FORMAT_void_GLenum_GLfloat___GENPT__ #define glGetFramebufferAttachmentParameteriv_INDEX 63 #define glGetFramebufferAttachmentParameteriv_RETURN void #define glGetFramebufferAttachmentParameteriv_ARG_NAMES target, attachment, pname, params #define glGetFramebufferAttachmentParameteriv_ARG_EXPAND GLenum target, GLenum attachment, GLenum pname, GLint * params #define glGetFramebufferAttachmentParameteriv_PACKED PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__ #define glGetFramebufferAttachmentParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLint___GENPT__ #define glGetFramebufferAttachmentParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__ #define glGetIntegerv_INDEX 64 #define glGetIntegerv_RETURN void #define glGetIntegerv_ARG_NAMES pname, params #define glGetIntegerv_ARG_EXPAND GLenum pname, GLint * params #define glGetIntegerv_PACKED PACKED_void_GLenum_GLint___GENPT__ #define glGetIntegerv_INDEXED INDEXED_void_GLenum_GLint___GENPT__ #define glGetIntegerv_FORMAT FORMAT_void_GLenum_GLint___GENPT__ #define glGetProgramInfoLog_INDEX 65 #define glGetProgramInfoLog_RETURN void #define glGetProgramInfoLog_ARG_NAMES program, bufSize, length, infoLog #define glGetProgramInfoLog_ARG_EXPAND GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog #define glGetProgramInfoLog_PACKED PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetProgramInfoLog_INDEXED INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetProgramInfoLog_FORMAT FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetProgramiv_INDEX 66 #define glGetProgramiv_RETURN void #define glGetProgramiv_ARG_NAMES program, pname, params #define glGetProgramiv_ARG_EXPAND GLuint program, GLenum pname, GLint * params #define glGetProgramiv_PACKED PACKED_void_GLuint_GLenum_GLint___GENPT__ #define glGetProgramiv_INDEXED INDEXED_void_GLuint_GLenum_GLint___GENPT__ #define glGetProgramiv_FORMAT FORMAT_void_GLuint_GLenum_GLint___GENPT__ #define glGetRenderbufferParameteriv_INDEX 67 #define glGetRenderbufferParameteriv_RETURN void #define glGetRenderbufferParameteriv_ARG_NAMES target, pname, params #define glGetRenderbufferParameteriv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define glGetRenderbufferParameteriv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define glGetRenderbufferParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define glGetRenderbufferParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define glGetShaderInfoLog_INDEX 68 #define glGetShaderInfoLog_RETURN void #define glGetShaderInfoLog_ARG_NAMES shader, bufSize, length, infoLog #define glGetShaderInfoLog_ARG_EXPAND GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog #define glGetShaderInfoLog_PACKED PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderInfoLog_INDEXED INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderInfoLog_FORMAT FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderPrecisionFormat_INDEX 69 #define glGetShaderPrecisionFormat_RETURN void #define glGetShaderPrecisionFormat_ARG_NAMES shadertype, precisiontype, range, precision #define glGetShaderPrecisionFormat_ARG_EXPAND GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision #define glGetShaderPrecisionFormat_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ #define glGetShaderPrecisionFormat_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ #define glGetShaderPrecisionFormat_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT___GLint___GENPT__ #define glGetShaderSource_INDEX 70 #define glGetShaderSource_RETURN void #define glGetShaderSource_ARG_NAMES shader, bufSize, length, source #define glGetShaderSource_ARG_EXPAND GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source #define glGetShaderSource_PACKED PACKED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderSource_INDEXED INDEXED_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderSource_FORMAT FORMAT_void_GLuint_GLsizei_GLsizei___GENPT___GLchar___GENPT__ #define glGetShaderiv_INDEX 71 #define glGetShaderiv_RETURN void #define glGetShaderiv_ARG_NAMES shader, pname, params #define glGetShaderiv_ARG_EXPAND GLuint shader, GLenum pname, GLint * params #define glGetShaderiv_PACKED PACKED_void_GLuint_GLenum_GLint___GENPT__ #define glGetShaderiv_INDEXED INDEXED_void_GLuint_GLenum_GLint___GENPT__ #define glGetShaderiv_FORMAT FORMAT_void_GLuint_GLenum_GLint___GENPT__ #define glGetString_INDEX 72 #define glGetString_RETURN const GLubyte * #define glGetString_ARG_NAMES name #define glGetString_ARG_EXPAND GLenum name #define glGetString_PACKED PACKED_const_GLubyte___GENPT___GLenum #define glGetString_INDEXED INDEXED_const_GLubyte___GENPT___GLenum #define glGetString_FORMAT FORMAT_const_GLubyte___GENPT___GLenum #define glGetTexParameterfv_INDEX 73 #define glGetTexParameterfv_RETURN void #define glGetTexParameterfv_ARG_NAMES target, pname, params #define glGetTexParameterfv_ARG_EXPAND GLenum target, GLenum pname, GLfloat * params #define glGetTexParameterfv_PACKED PACKED_void_GLenum_GLenum_GLfloat___GENPT__ #define glGetTexParameterfv_INDEXED INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ #define glGetTexParameterfv_FORMAT FORMAT_void_GLenum_GLenum_GLfloat___GENPT__ #define glGetTexParameteriv_INDEX 74 #define glGetTexParameteriv_RETURN void #define glGetTexParameteriv_ARG_NAMES target, pname, params #define glGetTexParameteriv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define glGetTexParameteriv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define glGetTexParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define glGetTexParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define glGetUniformLocation_INDEX 75 #define glGetUniformLocation_RETURN GLint #define glGetUniformLocation_ARG_NAMES program, name #define glGetUniformLocation_ARG_EXPAND GLuint program, const GLchar * name #define glGetUniformLocation_PACKED PACKED_GLint_GLuint_const_GLchar___GENPT__ #define glGetUniformLocation_INDEXED INDEXED_GLint_GLuint_const_GLchar___GENPT__ #define glGetUniformLocation_FORMAT FORMAT_GLint_GLuint_const_GLchar___GENPT__ #define glGetUniformfv_INDEX 76 #define glGetUniformfv_RETURN void #define glGetUniformfv_ARG_NAMES program, location, params #define glGetUniformfv_ARG_EXPAND GLuint program, GLint location, GLfloat * params #define glGetUniformfv_PACKED PACKED_void_GLuint_GLint_GLfloat___GENPT__ #define glGetUniformfv_INDEXED INDEXED_void_GLuint_GLint_GLfloat___GENPT__ #define glGetUniformfv_FORMAT FORMAT_void_GLuint_GLint_GLfloat___GENPT__ #define glGetUniformiv_INDEX 77 #define glGetUniformiv_RETURN void #define glGetUniformiv_ARG_NAMES program, location, params #define glGetUniformiv_ARG_EXPAND GLuint program, GLint location, GLint * params #define glGetUniformiv_PACKED PACKED_void_GLuint_GLint_GLint___GENPT__ #define glGetUniformiv_INDEXED INDEXED_void_GLuint_GLint_GLint___GENPT__ #define glGetUniformiv_FORMAT FORMAT_void_GLuint_GLint_GLint___GENPT__ #define glGetVertexAttribPointerv_INDEX 78 #define glGetVertexAttribPointerv_RETURN void #define glGetVertexAttribPointerv_ARG_NAMES index, pname, pointer #define glGetVertexAttribPointerv_ARG_EXPAND GLuint index, GLenum pname, GLvoid ** pointer #define glGetVertexAttribPointerv_PACKED PACKED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ #define glGetVertexAttribPointerv_INDEXED INDEXED_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ #define glGetVertexAttribPointerv_FORMAT FORMAT_void_GLuint_GLenum_GLvoid___GENPT____GENPT__ #define glGetVertexAttribfv_INDEX 79 #define glGetVertexAttribfv_RETURN void #define glGetVertexAttribfv_ARG_NAMES index, pname, params #define glGetVertexAttribfv_ARG_EXPAND GLuint index, GLenum pname, GLfloat * params #define glGetVertexAttribfv_PACKED PACKED_void_GLuint_GLenum_GLfloat___GENPT__ #define glGetVertexAttribfv_INDEXED INDEXED_void_GLuint_GLenum_GLfloat___GENPT__ #define glGetVertexAttribfv_FORMAT FORMAT_void_GLuint_GLenum_GLfloat___GENPT__ #define glGetVertexAttribiv_INDEX 80 #define glGetVertexAttribiv_RETURN void #define glGetVertexAttribiv_ARG_NAMES index, pname, params #define glGetVertexAttribiv_ARG_EXPAND GLuint index, GLenum pname, GLint * params #define glGetVertexAttribiv_PACKED PACKED_void_GLuint_GLenum_GLint___GENPT__ #define glGetVertexAttribiv_INDEXED INDEXED_void_GLuint_GLenum_GLint___GENPT__ #define glGetVertexAttribiv_FORMAT FORMAT_void_GLuint_GLenum_GLint___GENPT__ #define glHint_INDEX 81 #define glHint_RETURN void #define glHint_ARG_NAMES target, mode #define glHint_ARG_EXPAND GLenum target, GLenum mode #define glHint_PACKED PACKED_void_GLenum_GLenum #define glHint_INDEXED INDEXED_void_GLenum_GLenum #define glHint_FORMAT FORMAT_void_GLenum_GLenum #define glIsBuffer_INDEX 82 #define glIsBuffer_RETURN GLboolean #define glIsBuffer_ARG_NAMES buffer #define glIsBuffer_ARG_EXPAND GLuint buffer #define glIsBuffer_PACKED PACKED_GLboolean_GLuint #define glIsBuffer_INDEXED INDEXED_GLboolean_GLuint #define glIsBuffer_FORMAT FORMAT_GLboolean_GLuint #define glIsEnabled_INDEX 83 #define glIsEnabled_RETURN GLboolean #define glIsEnabled_ARG_NAMES cap #define glIsEnabled_ARG_EXPAND GLenum cap #define glIsEnabled_PACKED PACKED_GLboolean_GLenum #define glIsEnabled_INDEXED INDEXED_GLboolean_GLenum #define glIsEnabled_FORMAT FORMAT_GLboolean_GLenum #define glIsFramebuffer_INDEX 84 #define glIsFramebuffer_RETURN GLboolean #define glIsFramebuffer_ARG_NAMES framebuffer #define glIsFramebuffer_ARG_EXPAND GLuint framebuffer #define glIsFramebuffer_PACKED PACKED_GLboolean_GLuint #define glIsFramebuffer_INDEXED INDEXED_GLboolean_GLuint #define glIsFramebuffer_FORMAT FORMAT_GLboolean_GLuint #define glIsProgram_INDEX 85 #define glIsProgram_RETURN GLboolean #define glIsProgram_ARG_NAMES program #define glIsProgram_ARG_EXPAND GLuint program #define glIsProgram_PACKED PACKED_GLboolean_GLuint #define glIsProgram_INDEXED INDEXED_GLboolean_GLuint #define glIsProgram_FORMAT FORMAT_GLboolean_GLuint #define glIsRenderbuffer_INDEX 86 #define glIsRenderbuffer_RETURN GLboolean #define glIsRenderbuffer_ARG_NAMES renderbuffer #define glIsRenderbuffer_ARG_EXPAND GLuint renderbuffer #define glIsRenderbuffer_PACKED PACKED_GLboolean_GLuint #define glIsRenderbuffer_INDEXED INDEXED_GLboolean_GLuint #define glIsRenderbuffer_FORMAT FORMAT_GLboolean_GLuint #define glIsShader_INDEX 87 #define glIsShader_RETURN GLboolean #define glIsShader_ARG_NAMES shader #define glIsShader_ARG_EXPAND GLuint shader #define glIsShader_PACKED PACKED_GLboolean_GLuint #define glIsShader_INDEXED INDEXED_GLboolean_GLuint #define glIsShader_FORMAT FORMAT_GLboolean_GLuint #define glIsTexture_INDEX 88 #define glIsTexture_RETURN GLboolean #define glIsTexture_ARG_NAMES texture #define glIsTexture_ARG_EXPAND GLuint texture #define glIsTexture_PACKED PACKED_GLboolean_GLuint #define glIsTexture_INDEXED INDEXED_GLboolean_GLuint #define glIsTexture_FORMAT FORMAT_GLboolean_GLuint #define glLineWidth_INDEX 89 #define glLineWidth_RETURN void #define glLineWidth_ARG_NAMES width #define glLineWidth_ARG_EXPAND GLfloat width #define glLineWidth_PACKED PACKED_void_GLfloat #define glLineWidth_INDEXED INDEXED_void_GLfloat #define glLineWidth_FORMAT FORMAT_void_GLfloat #define glLinkProgram_INDEX 90 #define glLinkProgram_RETURN void #define glLinkProgram_ARG_NAMES program #define glLinkProgram_ARG_EXPAND GLuint program #define glLinkProgram_PACKED PACKED_void_GLuint #define glLinkProgram_INDEXED INDEXED_void_GLuint #define glLinkProgram_FORMAT FORMAT_void_GLuint #define glPixelStorei_INDEX 91 #define glPixelStorei_RETURN void #define glPixelStorei_ARG_NAMES pname, param #define glPixelStorei_ARG_EXPAND GLenum pname, GLint param #define glPixelStorei_PACKED PACKED_void_GLenum_GLint #define glPixelStorei_INDEXED INDEXED_void_GLenum_GLint #define glPixelStorei_FORMAT FORMAT_void_GLenum_GLint #define glPolygonOffset_INDEX 92 #define glPolygonOffset_RETURN void #define glPolygonOffset_ARG_NAMES factor, units #define glPolygonOffset_ARG_EXPAND GLfloat factor, GLfloat units #define glPolygonOffset_PACKED PACKED_void_GLfloat_GLfloat #define glPolygonOffset_INDEXED INDEXED_void_GLfloat_GLfloat #define glPolygonOffset_FORMAT FORMAT_void_GLfloat_GLfloat #define glReadPixels_INDEX 93 #define glReadPixels_RETURN void #define glReadPixels_ARG_NAMES x, y, width, height, format, type, pixels #define glReadPixels_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels #define glReadPixels_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define glReadPixels_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define glReadPixels_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define glReleaseShaderCompiler_INDEX 94 #define glReleaseShaderCompiler_RETURN void #define glReleaseShaderCompiler_ARG_NAMES #define glReleaseShaderCompiler_ARG_EXPAND #define glReleaseShaderCompiler_PACKED PACKED_void #define glReleaseShaderCompiler_INDEXED INDEXED_void #define glReleaseShaderCompiler_FORMAT FORMAT_void #define glRenderbufferStorage_INDEX 95 #define glRenderbufferStorage_RETURN void #define glRenderbufferStorage_ARG_NAMES target, internalformat, width, height #define glRenderbufferStorage_ARG_EXPAND GLenum target, GLenum internalformat, GLsizei width, GLsizei height #define glRenderbufferStorage_PACKED PACKED_void_GLenum_GLenum_GLsizei_GLsizei #define glRenderbufferStorage_INDEXED INDEXED_void_GLenum_GLenum_GLsizei_GLsizei #define glRenderbufferStorage_FORMAT FORMAT_void_GLenum_GLenum_GLsizei_GLsizei #define glSampleCoverage_INDEX 96 #define glSampleCoverage_RETURN void #define glSampleCoverage_ARG_NAMES value, invert #define glSampleCoverage_ARG_EXPAND GLclampf value, GLboolean invert #define glSampleCoverage_PACKED PACKED_void_GLclampf_GLboolean #define glSampleCoverage_INDEXED INDEXED_void_GLclampf_GLboolean #define glSampleCoverage_FORMAT FORMAT_void_GLclampf_GLboolean #define glScissor_INDEX 97 #define glScissor_RETURN void #define glScissor_ARG_NAMES x, y, width, height #define glScissor_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height #define glScissor_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei #define glScissor_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei #define glScissor_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei #define glShaderBinary_INDEX 98 #define glShaderBinary_RETURN void #define glShaderBinary_ARG_NAMES n, shaders, binaryformat, binary, length #define glShaderBinary_ARG_EXPAND GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length #define glShaderBinary_PACKED PACKED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei #define glShaderBinary_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei #define glShaderBinary_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT___GLenum_const_GLvoid___GENPT___GLsizei #define glShaderSource_INDEX 99 #define glShaderSource_RETURN void #define glShaderSource_ARG_NAMES shader, count, string, length #define glShaderSource_ARG_EXPAND GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length #define glShaderSource_PACKED PACKED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ #define glShaderSource_INDEXED INDEXED_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ #define glShaderSource_FORMAT FORMAT_void_GLuint_GLsizei_const_GLchar___GENPT___const___GENPT___const_GLint___GENPT__ #define glStencilFunc_INDEX 100 #define glStencilFunc_RETURN void #define glStencilFunc_ARG_NAMES func, ref, mask #define glStencilFunc_ARG_EXPAND GLenum func, GLint ref, GLuint mask #define glStencilFunc_PACKED PACKED_void_GLenum_GLint_GLuint #define glStencilFunc_INDEXED INDEXED_void_GLenum_GLint_GLuint #define glStencilFunc_FORMAT FORMAT_void_GLenum_GLint_GLuint #define glStencilFuncSeparate_INDEX 101 #define glStencilFuncSeparate_RETURN void #define glStencilFuncSeparate_ARG_NAMES face, func, ref, mask #define glStencilFuncSeparate_ARG_EXPAND GLenum face, GLenum func, GLint ref, GLuint mask #define glStencilFuncSeparate_PACKED PACKED_void_GLenum_GLenum_GLint_GLuint #define glStencilFuncSeparate_INDEXED INDEXED_void_GLenum_GLenum_GLint_GLuint #define glStencilFuncSeparate_FORMAT FORMAT_void_GLenum_GLenum_GLint_GLuint #define glStencilMask_INDEX 102 #define glStencilMask_RETURN void #define glStencilMask_ARG_NAMES mask #define glStencilMask_ARG_EXPAND GLuint mask #define glStencilMask_PACKED PACKED_void_GLuint #define glStencilMask_INDEXED INDEXED_void_GLuint #define glStencilMask_FORMAT FORMAT_void_GLuint #define glStencilMaskSeparate_INDEX 103 #define glStencilMaskSeparate_RETURN void #define glStencilMaskSeparate_ARG_NAMES face, mask #define glStencilMaskSeparate_ARG_EXPAND GLenum face, GLuint mask #define glStencilMaskSeparate_PACKED PACKED_void_GLenum_GLuint #define glStencilMaskSeparate_INDEXED INDEXED_void_GLenum_GLuint #define glStencilMaskSeparate_FORMAT FORMAT_void_GLenum_GLuint #define glStencilOp_INDEX 104 #define glStencilOp_RETURN void #define glStencilOp_ARG_NAMES fail, zfail, zpass #define glStencilOp_ARG_EXPAND GLenum fail, GLenum zfail, GLenum zpass #define glStencilOp_PACKED PACKED_void_GLenum_GLenum_GLenum #define glStencilOp_INDEXED INDEXED_void_GLenum_GLenum_GLenum #define glStencilOp_FORMAT FORMAT_void_GLenum_GLenum_GLenum #define glStencilOpSeparate_INDEX 105 #define glStencilOpSeparate_RETURN void #define glStencilOpSeparate_ARG_NAMES face, sfail, zfail, zpass #define glStencilOpSeparate_ARG_EXPAND GLenum face, GLenum sfail, GLenum zfail, GLenum zpass #define glStencilOpSeparate_PACKED PACKED_void_GLenum_GLenum_GLenum_GLenum #define glStencilOpSeparate_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLenum #define glStencilOpSeparate_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLenum #define glTexImage2D_INDEX 106 #define glTexImage2D_RETURN void #define glTexImage2D_ARG_NAMES target, level, internalformat, width, height, border, format, type, pixels #define glTexImage2D_ARG_EXPAND GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels #define glTexImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define glTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define glTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define glTexParameterf_INDEX 107 #define glTexParameterf_RETURN void #define glTexParameterf_ARG_NAMES target, pname, param #define glTexParameterf_ARG_EXPAND GLenum target, GLenum pname, GLfloat param #define glTexParameterf_PACKED PACKED_void_GLenum_GLenum_GLfloat #define glTexParameterf_INDEXED INDEXED_void_GLenum_GLenum_GLfloat #define glTexParameterf_FORMAT FORMAT_void_GLenum_GLenum_GLfloat #define glTexParameterfv_INDEX 108 #define glTexParameterfv_RETURN void #define glTexParameterfv_ARG_NAMES target, pname, params #define glTexParameterfv_ARG_EXPAND GLenum target, GLenum pname, const GLfloat * params #define glTexParameterfv_PACKED PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define glTexParameterfv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define glTexParameterfv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__ #define glTexParameteri_INDEX 109 #define glTexParameteri_RETURN void #define glTexParameteri_ARG_NAMES target, pname, param #define glTexParameteri_ARG_EXPAND GLenum target, GLenum pname, GLint param #define glTexParameteri_PACKED PACKED_void_GLenum_GLenum_GLint #define glTexParameteri_INDEXED INDEXED_void_GLenum_GLenum_GLint #define glTexParameteri_FORMAT FORMAT_void_GLenum_GLenum_GLint #define glTexParameteriv_INDEX 110 #define glTexParameteriv_RETURN void #define glTexParameteriv_ARG_NAMES target, pname, params #define glTexParameteriv_ARG_EXPAND GLenum target, GLenum pname, const GLint * params #define glTexParameteriv_PACKED PACKED_void_GLenum_GLenum_const_GLint___GENPT__ #define glTexParameteriv_INDEXED INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ #define glTexParameteriv_FORMAT FORMAT_void_GLenum_GLenum_const_GLint___GENPT__ #define glTexSubImage2D_INDEX 111 #define glTexSubImage2D_RETURN void #define glTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, width, height, format, type, pixels #define glTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels #define glTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define glTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define glTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define glUniform1f_INDEX 112 #define glUniform1f_RETURN void #define glUniform1f_ARG_NAMES location, v0 #define glUniform1f_ARG_EXPAND GLint location, GLfloat v0 #define glUniform1f_PACKED PACKED_void_GLint_GLfloat #define glUniform1f_INDEXED INDEXED_void_GLint_GLfloat #define glUniform1f_FORMAT FORMAT_void_GLint_GLfloat #define glUniform1fv_INDEX 113 #define glUniform1fv_RETURN void #define glUniform1fv_ARG_NAMES location, count, value #define glUniform1fv_ARG_EXPAND GLint location, GLsizei count, const GLfloat * value #define glUniform1fv_PACKED PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform1fv_INDEXED INDEXED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform1fv_FORMAT FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform1i_INDEX 114 #define glUniform1i_RETURN void #define glUniform1i_ARG_NAMES location, v0 #define glUniform1i_ARG_EXPAND GLint location, GLint v0 #define glUniform1i_PACKED PACKED_void_GLint_GLint #define glUniform1i_INDEXED INDEXED_void_GLint_GLint #define glUniform1i_FORMAT FORMAT_void_GLint_GLint #define glUniform1iv_INDEX 115 #define glUniform1iv_RETURN void #define glUniform1iv_ARG_NAMES location, count, value #define glUniform1iv_ARG_EXPAND GLint location, GLsizei count, const GLint * value #define glUniform1iv_PACKED PACKED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform1iv_INDEXED INDEXED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform1iv_FORMAT FORMAT_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform2f_INDEX 116 #define glUniform2f_RETURN void #define glUniform2f_ARG_NAMES location, v0, v1 #define glUniform2f_ARG_EXPAND GLint location, GLfloat v0, GLfloat v1 #define glUniform2f_PACKED PACKED_void_GLint_GLfloat_GLfloat #define glUniform2f_INDEXED INDEXED_void_GLint_GLfloat_GLfloat #define glUniform2f_FORMAT FORMAT_void_GLint_GLfloat_GLfloat #define glUniform2fv_INDEX 117 #define glUniform2fv_RETURN void #define glUniform2fv_ARG_NAMES location, count, value #define glUniform2fv_ARG_EXPAND GLint location, GLsizei count, const GLfloat * value #define glUniform2fv_PACKED PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform2fv_INDEXED INDEXED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform2fv_FORMAT FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform2i_INDEX 118 #define glUniform2i_RETURN void #define glUniform2i_ARG_NAMES location, v0, v1 #define glUniform2i_ARG_EXPAND GLint location, GLint v0, GLint v1 #define glUniform2i_PACKED PACKED_void_GLint_GLint_GLint #define glUniform2i_INDEXED INDEXED_void_GLint_GLint_GLint #define glUniform2i_FORMAT FORMAT_void_GLint_GLint_GLint #define glUniform2iv_INDEX 119 #define glUniform2iv_RETURN void #define glUniform2iv_ARG_NAMES location, count, value #define glUniform2iv_ARG_EXPAND GLint location, GLsizei count, const GLint * value #define glUniform2iv_PACKED PACKED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform2iv_INDEXED INDEXED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform2iv_FORMAT FORMAT_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform3f_INDEX 120 #define glUniform3f_RETURN void #define glUniform3f_ARG_NAMES location, v0, v1, v2 #define glUniform3f_ARG_EXPAND GLint location, GLfloat v0, GLfloat v1, GLfloat v2 #define glUniform3f_PACKED PACKED_void_GLint_GLfloat_GLfloat_GLfloat #define glUniform3f_INDEXED INDEXED_void_GLint_GLfloat_GLfloat_GLfloat #define glUniform3f_FORMAT FORMAT_void_GLint_GLfloat_GLfloat_GLfloat #define glUniform3fv_INDEX 121 #define glUniform3fv_RETURN void #define glUniform3fv_ARG_NAMES location, count, value #define glUniform3fv_ARG_EXPAND GLint location, GLsizei count, const GLfloat * value #define glUniform3fv_PACKED PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform3fv_INDEXED INDEXED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform3fv_FORMAT FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform3i_INDEX 122 #define glUniform3i_RETURN void #define glUniform3i_ARG_NAMES location, v0, v1, v2 #define glUniform3i_ARG_EXPAND GLint location, GLint v0, GLint v1, GLint v2 #define glUniform3i_PACKED PACKED_void_GLint_GLint_GLint_GLint #define glUniform3i_INDEXED INDEXED_void_GLint_GLint_GLint_GLint #define glUniform3i_FORMAT FORMAT_void_GLint_GLint_GLint_GLint #define glUniform3iv_INDEX 123 #define glUniform3iv_RETURN void #define glUniform3iv_ARG_NAMES location, count, value #define glUniform3iv_ARG_EXPAND GLint location, GLsizei count, const GLint * value #define glUniform3iv_PACKED PACKED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform3iv_INDEXED INDEXED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform3iv_FORMAT FORMAT_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform4f_INDEX 124 #define glUniform4f_RETURN void #define glUniform4f_ARG_NAMES location, v0, v1, v2, v3 #define glUniform4f_ARG_EXPAND GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 #define glUniform4f_PACKED PACKED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat #define glUniform4f_INDEXED INDEXED_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat #define glUniform4f_FORMAT FORMAT_void_GLint_GLfloat_GLfloat_GLfloat_GLfloat #define glUniform4fv_INDEX 125 #define glUniform4fv_RETURN void #define glUniform4fv_ARG_NAMES location, count, value #define glUniform4fv_ARG_EXPAND GLint location, GLsizei count, const GLfloat * value #define glUniform4fv_PACKED PACKED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform4fv_INDEXED INDEXED_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform4fv_FORMAT FORMAT_void_GLint_GLsizei_const_GLfloat___GENPT__ #define glUniform4i_INDEX 126 #define glUniform4i_RETURN void #define glUniform4i_ARG_NAMES location, v0, v1, v2, v3 #define glUniform4i_ARG_EXPAND GLint location, GLint v0, GLint v1, GLint v2, GLint v3 #define glUniform4i_PACKED PACKED_void_GLint_GLint_GLint_GLint_GLint #define glUniform4i_INDEXED INDEXED_void_GLint_GLint_GLint_GLint_GLint #define glUniform4i_FORMAT FORMAT_void_GLint_GLint_GLint_GLint_GLint #define glUniform4iv_INDEX 127 #define glUniform4iv_RETURN void #define glUniform4iv_ARG_NAMES location, count, value #define glUniform4iv_ARG_EXPAND GLint location, GLsizei count, const GLint * value #define glUniform4iv_PACKED PACKED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform4iv_INDEXED INDEXED_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniform4iv_FORMAT FORMAT_void_GLint_GLsizei_const_GLint___GENPT__ #define glUniformMatrix2fv_INDEX 128 #define glUniformMatrix2fv_RETURN void #define glUniformMatrix2fv_ARG_NAMES location, count, transpose, value #define glUniformMatrix2fv_ARG_EXPAND GLint location, GLsizei count, GLboolean transpose, const GLfloat * value #define glUniformMatrix2fv_PACKED PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix2fv_INDEXED INDEXED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix2fv_FORMAT FORMAT_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix3fv_INDEX 129 #define glUniformMatrix3fv_RETURN void #define glUniformMatrix3fv_ARG_NAMES location, count, transpose, value #define glUniformMatrix3fv_ARG_EXPAND GLint location, GLsizei count, GLboolean transpose, const GLfloat * value #define glUniformMatrix3fv_PACKED PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix3fv_INDEXED INDEXED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix3fv_FORMAT FORMAT_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix4fv_INDEX 130 #define glUniformMatrix4fv_RETURN void #define glUniformMatrix4fv_ARG_NAMES location, count, transpose, value #define glUniformMatrix4fv_ARG_EXPAND GLint location, GLsizei count, GLboolean transpose, const GLfloat * value #define glUniformMatrix4fv_PACKED PACKED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix4fv_INDEXED INDEXED_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUniformMatrix4fv_FORMAT FORMAT_void_GLint_GLsizei_GLboolean_const_GLfloat___GENPT__ #define glUseProgram_INDEX 131 #define glUseProgram_RETURN void #define glUseProgram_ARG_NAMES program #define glUseProgram_ARG_EXPAND GLuint program #define glUseProgram_PACKED PACKED_void_GLuint #define glUseProgram_INDEXED INDEXED_void_GLuint #define glUseProgram_FORMAT FORMAT_void_GLuint #define glValidateProgram_INDEX 132 #define glValidateProgram_RETURN void #define glValidateProgram_ARG_NAMES program #define glValidateProgram_ARG_EXPAND GLuint program #define glValidateProgram_PACKED PACKED_void_GLuint #define glValidateProgram_INDEXED INDEXED_void_GLuint #define glValidateProgram_FORMAT FORMAT_void_GLuint #define glVertexAttrib1f_INDEX 133 #define glVertexAttrib1f_RETURN void #define glVertexAttrib1f_ARG_NAMES index, x #define glVertexAttrib1f_ARG_EXPAND GLuint index, GLfloat x #define glVertexAttrib1f_PACKED PACKED_void_GLuint_GLfloat #define glVertexAttrib1f_INDEXED INDEXED_void_GLuint_GLfloat #define glVertexAttrib1f_FORMAT FORMAT_void_GLuint_GLfloat #define glVertexAttrib1fv_INDEX 134 #define glVertexAttrib1fv_RETURN void #define glVertexAttrib1fv_ARG_NAMES index, v #define glVertexAttrib1fv_ARG_EXPAND GLuint index, const GLfloat * v #define glVertexAttrib1fv_PACKED PACKED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib1fv_INDEXED INDEXED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib1fv_FORMAT FORMAT_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib2f_INDEX 135 #define glVertexAttrib2f_RETURN void #define glVertexAttrib2f_ARG_NAMES index, x, y #define glVertexAttrib2f_ARG_EXPAND GLuint index, GLfloat x, GLfloat y #define glVertexAttrib2f_PACKED PACKED_void_GLuint_GLfloat_GLfloat #define glVertexAttrib2f_INDEXED INDEXED_void_GLuint_GLfloat_GLfloat #define glVertexAttrib2f_FORMAT FORMAT_void_GLuint_GLfloat_GLfloat #define glVertexAttrib2fv_INDEX 136 #define glVertexAttrib2fv_RETURN void #define glVertexAttrib2fv_ARG_NAMES index, v #define glVertexAttrib2fv_ARG_EXPAND GLuint index, const GLfloat * v #define glVertexAttrib2fv_PACKED PACKED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib2fv_INDEXED INDEXED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib2fv_FORMAT FORMAT_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib3f_INDEX 137 #define glVertexAttrib3f_RETURN void #define glVertexAttrib3f_ARG_NAMES index, x, y, z #define glVertexAttrib3f_ARG_EXPAND GLuint index, GLfloat x, GLfloat y, GLfloat z #define glVertexAttrib3f_PACKED PACKED_void_GLuint_GLfloat_GLfloat_GLfloat #define glVertexAttrib3f_INDEXED INDEXED_void_GLuint_GLfloat_GLfloat_GLfloat #define glVertexAttrib3f_FORMAT FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat #define glVertexAttrib3fv_INDEX 138 #define glVertexAttrib3fv_RETURN void #define glVertexAttrib3fv_ARG_NAMES index, v #define glVertexAttrib3fv_ARG_EXPAND GLuint index, const GLfloat * v #define glVertexAttrib3fv_PACKED PACKED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib3fv_INDEXED INDEXED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib3fv_FORMAT FORMAT_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib4f_INDEX 139 #define glVertexAttrib4f_RETURN void #define glVertexAttrib4f_ARG_NAMES index, x, y, z, w #define glVertexAttrib4f_ARG_EXPAND GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w #define glVertexAttrib4f_PACKED PACKED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat #define glVertexAttrib4f_INDEXED INDEXED_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat #define glVertexAttrib4f_FORMAT FORMAT_void_GLuint_GLfloat_GLfloat_GLfloat_GLfloat #define glVertexAttrib4fv_INDEX 140 #define glVertexAttrib4fv_RETURN void #define glVertexAttrib4fv_ARG_NAMES index, v #define glVertexAttrib4fv_ARG_EXPAND GLuint index, const GLfloat * v #define glVertexAttrib4fv_PACKED PACKED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib4fv_INDEXED INDEXED_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttrib4fv_FORMAT FORMAT_void_GLuint_const_GLfloat___GENPT__ #define glVertexAttribPointer_INDEX 141 #define glVertexAttribPointer_RETURN void #define glVertexAttribPointer_ARG_NAMES index, size, type, normalized, stride, pointer #define glVertexAttribPointer_ARG_EXPAND GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer #define glVertexAttribPointer_PACKED PACKED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ #define glVertexAttribPointer_INDEXED INDEXED_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ #define glVertexAttribPointer_FORMAT FORMAT_void_GLuint_GLint_GLenum_GLboolean_GLsizei_const_GLvoid___GENPT__ #define glViewport_INDEX 142 #define glViewport_RETURN void #define glViewport_ARG_NAMES x, y, width, height #define glViewport_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height #define glViewport_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei #define glViewport_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei #define glViewport_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei void glActiveTexture(glActiveTexture_ARG_EXPAND); typedef void (*glActiveTexture_PTR)(glActiveTexture_ARG_EXPAND); void glAttachShader(glAttachShader_ARG_EXPAND); typedef void (*glAttachShader_PTR)(glAttachShader_ARG_EXPAND); void glBindAttribLocation(glBindAttribLocation_ARG_EXPAND); typedef void (*glBindAttribLocation_PTR)(glBindAttribLocation_ARG_EXPAND); void glBindBuffer(glBindBuffer_ARG_EXPAND); typedef void (*glBindBuffer_PTR)(glBindBuffer_ARG_EXPAND); void glBindFramebuffer(glBindFramebuffer_ARG_EXPAND); typedef void (*glBindFramebuffer_PTR)(glBindFramebuffer_ARG_EXPAND); void glBindRenderbuffer(glBindRenderbuffer_ARG_EXPAND); typedef void (*glBindRenderbuffer_PTR)(glBindRenderbuffer_ARG_EXPAND); void glBindTexture(glBindTexture_ARG_EXPAND); typedef void (*glBindTexture_PTR)(glBindTexture_ARG_EXPAND); void glBlendColor(glBlendColor_ARG_EXPAND); typedef void (*glBlendColor_PTR)(glBlendColor_ARG_EXPAND); void glBlendEquation(glBlendEquation_ARG_EXPAND); typedef void (*glBlendEquation_PTR)(glBlendEquation_ARG_EXPAND); void glBlendEquationSeparate(glBlendEquationSeparate_ARG_EXPAND); typedef void (*glBlendEquationSeparate_PTR)(glBlendEquationSeparate_ARG_EXPAND); void glBlendFunc(glBlendFunc_ARG_EXPAND); typedef void (*glBlendFunc_PTR)(glBlendFunc_ARG_EXPAND); void glBlendFuncSeparate(glBlendFuncSeparate_ARG_EXPAND); typedef void (*glBlendFuncSeparate_PTR)(glBlendFuncSeparate_ARG_EXPAND); void glBufferData(glBufferData_ARG_EXPAND); typedef void (*glBufferData_PTR)(glBufferData_ARG_EXPAND); void glBufferSubData(glBufferSubData_ARG_EXPAND); typedef void (*glBufferSubData_PTR)(glBufferSubData_ARG_EXPAND); GLenum glCheckFramebufferStatus(glCheckFramebufferStatus_ARG_EXPAND); typedef GLenum (*glCheckFramebufferStatus_PTR)(glCheckFramebufferStatus_ARG_EXPAND); void glClear(glClear_ARG_EXPAND); typedef void (*glClear_PTR)(glClear_ARG_EXPAND); void glClearColor(glClearColor_ARG_EXPAND); typedef void (*glClearColor_PTR)(glClearColor_ARG_EXPAND); void glClearDepthf(glClearDepthf_ARG_EXPAND); typedef void (*glClearDepthf_PTR)(glClearDepthf_ARG_EXPAND); void glClearStencil(glClearStencil_ARG_EXPAND); typedef void (*glClearStencil_PTR)(glClearStencil_ARG_EXPAND); void glColorMask(glColorMask_ARG_EXPAND); typedef void (*glColorMask_PTR)(glColorMask_ARG_EXPAND); void glCompileShader(glCompileShader_ARG_EXPAND); typedef void (*glCompileShader_PTR)(glCompileShader_ARG_EXPAND); void glCompressedTexImage2D(glCompressedTexImage2D_ARG_EXPAND); typedef void (*glCompressedTexImage2D_PTR)(glCompressedTexImage2D_ARG_EXPAND); void glCompressedTexSubImage2D(glCompressedTexSubImage2D_ARG_EXPAND); typedef void (*glCompressedTexSubImage2D_PTR)(glCompressedTexSubImage2D_ARG_EXPAND); void glCopyTexImage2D(glCopyTexImage2D_ARG_EXPAND); typedef void (*glCopyTexImage2D_PTR)(glCopyTexImage2D_ARG_EXPAND); void glCopyTexSubImage2D(glCopyTexSubImage2D_ARG_EXPAND); typedef void (*glCopyTexSubImage2D_PTR)(glCopyTexSubImage2D_ARG_EXPAND); GLuint glCreateProgram(glCreateProgram_ARG_EXPAND); typedef GLuint (*glCreateProgram_PTR)(glCreateProgram_ARG_EXPAND); GLuint glCreateShader(glCreateShader_ARG_EXPAND); typedef GLuint (*glCreateShader_PTR)(glCreateShader_ARG_EXPAND); void glCullFace(glCullFace_ARG_EXPAND); typedef void (*glCullFace_PTR)(glCullFace_ARG_EXPAND); void glDeleteBuffers(glDeleteBuffers_ARG_EXPAND); typedef void (*glDeleteBuffers_PTR)(glDeleteBuffers_ARG_EXPAND); void glDeleteFramebuffers(glDeleteFramebuffers_ARG_EXPAND); typedef void (*glDeleteFramebuffers_PTR)(glDeleteFramebuffers_ARG_EXPAND); void glDeleteProgram(glDeleteProgram_ARG_EXPAND); typedef void (*glDeleteProgram_PTR)(glDeleteProgram_ARG_EXPAND); void glDeleteRenderbuffers(glDeleteRenderbuffers_ARG_EXPAND); typedef void (*glDeleteRenderbuffers_PTR)(glDeleteRenderbuffers_ARG_EXPAND); void glDeleteShader(glDeleteShader_ARG_EXPAND); typedef void (*glDeleteShader_PTR)(glDeleteShader_ARG_EXPAND); void glDeleteTextures(glDeleteTextures_ARG_EXPAND); typedef void (*glDeleteTextures_PTR)(glDeleteTextures_ARG_EXPAND); void glDepthFunc(glDepthFunc_ARG_EXPAND); typedef void (*glDepthFunc_PTR)(glDepthFunc_ARG_EXPAND); void glDepthMask(glDepthMask_ARG_EXPAND); typedef void (*glDepthMask_PTR)(glDepthMask_ARG_EXPAND); void glDepthRangef(glDepthRangef_ARG_EXPAND); typedef void (*glDepthRangef_PTR)(glDepthRangef_ARG_EXPAND); void glDetachShader(glDetachShader_ARG_EXPAND); typedef void (*glDetachShader_PTR)(glDetachShader_ARG_EXPAND); void glDisable(glDisable_ARG_EXPAND); typedef void (*glDisable_PTR)(glDisable_ARG_EXPAND); void glDisableVertexAttribArray(glDisableVertexAttribArray_ARG_EXPAND); typedef void (*glDisableVertexAttribArray_PTR)(glDisableVertexAttribArray_ARG_EXPAND); void glDrawArrays(glDrawArrays_ARG_EXPAND); typedef void (*glDrawArrays_PTR)(glDrawArrays_ARG_EXPAND); void glDrawElements(glDrawElements_ARG_EXPAND); typedef void (*glDrawElements_PTR)(glDrawElements_ARG_EXPAND); void glEnable(glEnable_ARG_EXPAND); typedef void (*glEnable_PTR)(glEnable_ARG_EXPAND); void glEnableVertexAttribArray(glEnableVertexAttribArray_ARG_EXPAND); typedef void (*glEnableVertexAttribArray_PTR)(glEnableVertexAttribArray_ARG_EXPAND); void glFinish(glFinish_ARG_EXPAND); typedef void (*glFinish_PTR)(glFinish_ARG_EXPAND); void glFlush(glFlush_ARG_EXPAND); typedef void (*glFlush_PTR)(glFlush_ARG_EXPAND); void glFramebufferRenderbuffer(glFramebufferRenderbuffer_ARG_EXPAND); typedef void (*glFramebufferRenderbuffer_PTR)(glFramebufferRenderbuffer_ARG_EXPAND); void glFramebufferTexture2D(glFramebufferTexture2D_ARG_EXPAND); typedef void (*glFramebufferTexture2D_PTR)(glFramebufferTexture2D_ARG_EXPAND); void glFrontFace(glFrontFace_ARG_EXPAND); typedef void (*glFrontFace_PTR)(glFrontFace_ARG_EXPAND); void glGenBuffers(glGenBuffers_ARG_EXPAND); typedef void (*glGenBuffers_PTR)(glGenBuffers_ARG_EXPAND); void glGenFramebuffers(glGenFramebuffers_ARG_EXPAND); typedef void (*glGenFramebuffers_PTR)(glGenFramebuffers_ARG_EXPAND); void glGenRenderbuffers(glGenRenderbuffers_ARG_EXPAND); typedef void (*glGenRenderbuffers_PTR)(glGenRenderbuffers_ARG_EXPAND); void glGenTextures(glGenTextures_ARG_EXPAND); typedef void (*glGenTextures_PTR)(glGenTextures_ARG_EXPAND); void glGenerateMipmap(glGenerateMipmap_ARG_EXPAND); typedef void (*glGenerateMipmap_PTR)(glGenerateMipmap_ARG_EXPAND); void glGetActiveAttrib(glGetActiveAttrib_ARG_EXPAND); typedef void (*glGetActiveAttrib_PTR)(glGetActiveAttrib_ARG_EXPAND); void glGetActiveUniform(glGetActiveUniform_ARG_EXPAND); typedef void (*glGetActiveUniform_PTR)(glGetActiveUniform_ARG_EXPAND); void glGetAttachedShaders(glGetAttachedShaders_ARG_EXPAND); typedef void (*glGetAttachedShaders_PTR)(glGetAttachedShaders_ARG_EXPAND); GLint glGetAttribLocation(glGetAttribLocation_ARG_EXPAND); typedef GLint (*glGetAttribLocation_PTR)(glGetAttribLocation_ARG_EXPAND); void glGetBooleanv(glGetBooleanv_ARG_EXPAND); typedef void (*glGetBooleanv_PTR)(glGetBooleanv_ARG_EXPAND); void glGetBufferParameteriv(glGetBufferParameteriv_ARG_EXPAND); typedef void (*glGetBufferParameteriv_PTR)(glGetBufferParameteriv_ARG_EXPAND); GLenum glGetError(glGetError_ARG_EXPAND); typedef GLenum (*glGetError_PTR)(glGetError_ARG_EXPAND); void glGetFloatv(glGetFloatv_ARG_EXPAND); typedef void (*glGetFloatv_PTR)(glGetFloatv_ARG_EXPAND); void glGetFramebufferAttachmentParameteriv(glGetFramebufferAttachmentParameteriv_ARG_EXPAND); typedef void (*glGetFramebufferAttachmentParameteriv_PTR)(glGetFramebufferAttachmentParameteriv_ARG_EXPAND); void glGetIntegerv(glGetIntegerv_ARG_EXPAND); typedef void (*glGetIntegerv_PTR)(glGetIntegerv_ARG_EXPAND); void glGetProgramInfoLog(glGetProgramInfoLog_ARG_EXPAND); typedef void (*glGetProgramInfoLog_PTR)(glGetProgramInfoLog_ARG_EXPAND); void glGetProgramiv(glGetProgramiv_ARG_EXPAND); typedef void (*glGetProgramiv_PTR)(glGetProgramiv_ARG_EXPAND); void glGetRenderbufferParameteriv(glGetRenderbufferParameteriv_ARG_EXPAND); typedef void (*glGetRenderbufferParameteriv_PTR)(glGetRenderbufferParameteriv_ARG_EXPAND); void glGetShaderInfoLog(glGetShaderInfoLog_ARG_EXPAND); typedef void (*glGetShaderInfoLog_PTR)(glGetShaderInfoLog_ARG_EXPAND); void glGetShaderPrecisionFormat(glGetShaderPrecisionFormat_ARG_EXPAND); typedef void (*glGetShaderPrecisionFormat_PTR)(glGetShaderPrecisionFormat_ARG_EXPAND); void glGetShaderSource(glGetShaderSource_ARG_EXPAND); typedef void (*glGetShaderSource_PTR)(glGetShaderSource_ARG_EXPAND); void glGetShaderiv(glGetShaderiv_ARG_EXPAND); typedef void (*glGetShaderiv_PTR)(glGetShaderiv_ARG_EXPAND); const GLubyte * glGetString(glGetString_ARG_EXPAND); typedef const GLubyte * (*glGetString_PTR)(glGetString_ARG_EXPAND); void glGetTexParameterfv(glGetTexParameterfv_ARG_EXPAND); typedef void (*glGetTexParameterfv_PTR)(glGetTexParameterfv_ARG_EXPAND); void glGetTexParameteriv(glGetTexParameteriv_ARG_EXPAND); typedef void (*glGetTexParameteriv_PTR)(glGetTexParameteriv_ARG_EXPAND); GLint glGetUniformLocation(glGetUniformLocation_ARG_EXPAND); typedef GLint (*glGetUniformLocation_PTR)(glGetUniformLocation_ARG_EXPAND); void glGetUniformfv(glGetUniformfv_ARG_EXPAND); typedef void (*glGetUniformfv_PTR)(glGetUniformfv_ARG_EXPAND); void glGetUniformiv(glGetUniformiv_ARG_EXPAND); typedef void (*glGetUniformiv_PTR)(glGetUniformiv_ARG_EXPAND); void glGetVertexAttribPointerv(glGetVertexAttribPointerv_ARG_EXPAND); typedef void (*glGetVertexAttribPointerv_PTR)(glGetVertexAttribPointerv_ARG_EXPAND); void glGetVertexAttribfv(glGetVertexAttribfv_ARG_EXPAND); typedef void (*glGetVertexAttribfv_PTR)(glGetVertexAttribfv_ARG_EXPAND); void glGetVertexAttribiv(glGetVertexAttribiv_ARG_EXPAND); typedef void (*glGetVertexAttribiv_PTR)(glGetVertexAttribiv_ARG_EXPAND); void glHint(glHint_ARG_EXPAND); typedef void (*glHint_PTR)(glHint_ARG_EXPAND); GLboolean glIsBuffer(glIsBuffer_ARG_EXPAND); typedef GLboolean (*glIsBuffer_PTR)(glIsBuffer_ARG_EXPAND); GLboolean glIsEnabled(glIsEnabled_ARG_EXPAND); typedef GLboolean (*glIsEnabled_PTR)(glIsEnabled_ARG_EXPAND); GLboolean glIsFramebuffer(glIsFramebuffer_ARG_EXPAND); typedef GLboolean (*glIsFramebuffer_PTR)(glIsFramebuffer_ARG_EXPAND); GLboolean glIsProgram(glIsProgram_ARG_EXPAND); typedef GLboolean (*glIsProgram_PTR)(glIsProgram_ARG_EXPAND); GLboolean glIsRenderbuffer(glIsRenderbuffer_ARG_EXPAND); typedef GLboolean (*glIsRenderbuffer_PTR)(glIsRenderbuffer_ARG_EXPAND); GLboolean glIsShader(glIsShader_ARG_EXPAND); typedef GLboolean (*glIsShader_PTR)(glIsShader_ARG_EXPAND); GLboolean glIsTexture(glIsTexture_ARG_EXPAND); typedef GLboolean (*glIsTexture_PTR)(glIsTexture_ARG_EXPAND); void glLineWidth(glLineWidth_ARG_EXPAND); typedef void (*glLineWidth_PTR)(glLineWidth_ARG_EXPAND); void glLinkProgram(glLinkProgram_ARG_EXPAND); typedef void (*glLinkProgram_PTR)(glLinkProgram_ARG_EXPAND); void glPixelStorei(glPixelStorei_ARG_EXPAND); typedef void (*glPixelStorei_PTR)(glPixelStorei_ARG_EXPAND); void glPolygonOffset(glPolygonOffset_ARG_EXPAND); typedef void (*glPolygonOffset_PTR)(glPolygonOffset_ARG_EXPAND); void glReadPixels(glReadPixels_ARG_EXPAND); typedef void (*glReadPixels_PTR)(glReadPixels_ARG_EXPAND); void glReleaseShaderCompiler(glReleaseShaderCompiler_ARG_EXPAND); typedef void (*glReleaseShaderCompiler_PTR)(glReleaseShaderCompiler_ARG_EXPAND); void glRenderbufferStorage(glRenderbufferStorage_ARG_EXPAND); typedef void (*glRenderbufferStorage_PTR)(glRenderbufferStorage_ARG_EXPAND); void glSampleCoverage(glSampleCoverage_ARG_EXPAND); typedef void (*glSampleCoverage_PTR)(glSampleCoverage_ARG_EXPAND); void glScissor(glScissor_ARG_EXPAND); typedef void (*glScissor_PTR)(glScissor_ARG_EXPAND); void glShaderBinary(glShaderBinary_ARG_EXPAND); typedef void (*glShaderBinary_PTR)(glShaderBinary_ARG_EXPAND); void glShaderSource(glShaderSource_ARG_EXPAND); typedef void (*glShaderSource_PTR)(glShaderSource_ARG_EXPAND); void glStencilFunc(glStencilFunc_ARG_EXPAND); typedef void (*glStencilFunc_PTR)(glStencilFunc_ARG_EXPAND); void glStencilFuncSeparate(glStencilFuncSeparate_ARG_EXPAND); typedef void (*glStencilFuncSeparate_PTR)(glStencilFuncSeparate_ARG_EXPAND); void glStencilMask(glStencilMask_ARG_EXPAND); typedef void (*glStencilMask_PTR)(glStencilMask_ARG_EXPAND); void glStencilMaskSeparate(glStencilMaskSeparate_ARG_EXPAND); typedef void (*glStencilMaskSeparate_PTR)(glStencilMaskSeparate_ARG_EXPAND); void glStencilOp(glStencilOp_ARG_EXPAND); typedef void (*glStencilOp_PTR)(glStencilOp_ARG_EXPAND); void glStencilOpSeparate(glStencilOpSeparate_ARG_EXPAND); typedef void (*glStencilOpSeparate_PTR)(glStencilOpSeparate_ARG_EXPAND); void glTexImage2D(glTexImage2D_ARG_EXPAND); typedef void (*glTexImage2D_PTR)(glTexImage2D_ARG_EXPAND); void glTexParameterf(glTexParameterf_ARG_EXPAND); typedef void (*glTexParameterf_PTR)(glTexParameterf_ARG_EXPAND); void glTexParameterfv(glTexParameterfv_ARG_EXPAND); typedef void (*glTexParameterfv_PTR)(glTexParameterfv_ARG_EXPAND); void glTexParameteri(glTexParameteri_ARG_EXPAND); typedef void (*glTexParameteri_PTR)(glTexParameteri_ARG_EXPAND); void glTexParameteriv(glTexParameteriv_ARG_EXPAND); typedef void (*glTexParameteriv_PTR)(glTexParameteriv_ARG_EXPAND); void glTexSubImage2D(glTexSubImage2D_ARG_EXPAND); typedef void (*glTexSubImage2D_PTR)(glTexSubImage2D_ARG_EXPAND); void glUniform1f(glUniform1f_ARG_EXPAND); typedef void (*glUniform1f_PTR)(glUniform1f_ARG_EXPAND); void glUniform1fv(glUniform1fv_ARG_EXPAND); typedef void (*glUniform1fv_PTR)(glUniform1fv_ARG_EXPAND); void glUniform1i(glUniform1i_ARG_EXPAND); typedef void (*glUniform1i_PTR)(glUniform1i_ARG_EXPAND); void glUniform1iv(glUniform1iv_ARG_EXPAND); typedef void (*glUniform1iv_PTR)(glUniform1iv_ARG_EXPAND); void glUniform2f(glUniform2f_ARG_EXPAND); typedef void (*glUniform2f_PTR)(glUniform2f_ARG_EXPAND); void glUniform2fv(glUniform2fv_ARG_EXPAND); typedef void (*glUniform2fv_PTR)(glUniform2fv_ARG_EXPAND); void glUniform2i(glUniform2i_ARG_EXPAND); typedef void (*glUniform2i_PTR)(glUniform2i_ARG_EXPAND); void glUniform2iv(glUniform2iv_ARG_EXPAND); typedef void (*glUniform2iv_PTR)(glUniform2iv_ARG_EXPAND); void glUniform3f(glUniform3f_ARG_EXPAND); typedef void (*glUniform3f_PTR)(glUniform3f_ARG_EXPAND); void glUniform3fv(glUniform3fv_ARG_EXPAND); typedef void (*glUniform3fv_PTR)(glUniform3fv_ARG_EXPAND); void glUniform3i(glUniform3i_ARG_EXPAND); typedef void (*glUniform3i_PTR)(glUniform3i_ARG_EXPAND); void glUniform3iv(glUniform3iv_ARG_EXPAND); typedef void (*glUniform3iv_PTR)(glUniform3iv_ARG_EXPAND); void glUniform4f(glUniform4f_ARG_EXPAND); typedef void (*glUniform4f_PTR)(glUniform4f_ARG_EXPAND); void glUniform4fv(glUniform4fv_ARG_EXPAND); typedef void (*glUniform4fv_PTR)(glUniform4fv_ARG_EXPAND); void glUniform4i(glUniform4i_ARG_EXPAND); typedef void (*glUniform4i_PTR)(glUniform4i_ARG_EXPAND); void glUniform4iv(glUniform4iv_ARG_EXPAND); typedef void (*glUniform4iv_PTR)(glUniform4iv_ARG_EXPAND); void glUniformMatrix2fv(glUniformMatrix2fv_ARG_EXPAND); typedef void (*glUniformMatrix2fv_PTR)(glUniformMatrix2fv_ARG_EXPAND); void glUniformMatrix3fv(glUniformMatrix3fv_ARG_EXPAND); typedef void (*glUniformMatrix3fv_PTR)(glUniformMatrix3fv_ARG_EXPAND); void glUniformMatrix4fv(glUniformMatrix4fv_ARG_EXPAND); typedef void (*glUniformMatrix4fv_PTR)(glUniformMatrix4fv_ARG_EXPAND); void glUseProgram(glUseProgram_ARG_EXPAND); typedef void (*glUseProgram_PTR)(glUseProgram_ARG_EXPAND); void glValidateProgram(glValidateProgram_ARG_EXPAND); typedef void (*glValidateProgram_PTR)(glValidateProgram_ARG_EXPAND); void glVertexAttrib1f(glVertexAttrib1f_ARG_EXPAND); typedef void (*glVertexAttrib1f_PTR)(glVertexAttrib1f_ARG_EXPAND); void glVertexAttrib1fv(glVertexAttrib1fv_ARG_EXPAND); typedef void (*glVertexAttrib1fv_PTR)(glVertexAttrib1fv_ARG_EXPAND); void glVertexAttrib2f(glVertexAttrib2f_ARG_EXPAND); typedef void (*glVertexAttrib2f_PTR)(glVertexAttrib2f_ARG_EXPAND); void glVertexAttrib2fv(glVertexAttrib2fv_ARG_EXPAND); typedef void (*glVertexAttrib2fv_PTR)(glVertexAttrib2fv_ARG_EXPAND); void glVertexAttrib3f(glVertexAttrib3f_ARG_EXPAND); typedef void (*glVertexAttrib3f_PTR)(glVertexAttrib3f_ARG_EXPAND); void glVertexAttrib3fv(glVertexAttrib3fv_ARG_EXPAND); typedef void (*glVertexAttrib3fv_PTR)(glVertexAttrib3fv_ARG_EXPAND); void glVertexAttrib4f(glVertexAttrib4f_ARG_EXPAND); typedef void (*glVertexAttrib4f_PTR)(glVertexAttrib4f_ARG_EXPAND); void glVertexAttrib4fv(glVertexAttrib4fv_ARG_EXPAND); typedef void (*glVertexAttrib4fv_PTR)(glVertexAttrib4fv_ARG_EXPAND); void glVertexAttribPointer(glVertexAttribPointer_ARG_EXPAND); typedef void (*glVertexAttribPointer_PTR)(glVertexAttribPointer_ARG_EXPAND); void glViewport(glViewport_ARG_EXPAND); typedef void (*glViewport_PTR)(glViewport_ARG_EXPAND); #ifndef direct_glActiveTexture #define push_glActiveTexture(texture) { \ glActiveTexture_PACKED *packed_data = malloc(sizeof(glActiveTexture_PACKED)); \ packed_data->format = glActiveTexture_FORMAT; \ packed_data->func = glActiveTexture; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)texture; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glAttachShader #define push_glAttachShader(program, shader) { \ glAttachShader_PACKED *packed_data = malloc(sizeof(glAttachShader_PACKED)); \ packed_data->format = glAttachShader_FORMAT; \ packed_data->func = glAttachShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLuint)shader; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBindAttribLocation #define push_glBindAttribLocation(program, index, name) { \ glBindAttribLocation_PACKED *packed_data = malloc(sizeof(glBindAttribLocation_PACKED)); \ packed_data->format = glBindAttribLocation_FORMAT; \ packed_data->func = glBindAttribLocation; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLuint)index; \ packed_data->args.a3 = (GLchar *)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBindBuffer #define push_glBindBuffer(target, buffer) { \ glBindBuffer_PACKED *packed_data = malloc(sizeof(glBindBuffer_PACKED)); \ packed_data->format = glBindBuffer_FORMAT; \ packed_data->func = glBindBuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)buffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBindFramebuffer #define push_glBindFramebuffer(target, framebuffer) { \ glBindFramebuffer_PACKED *packed_data = malloc(sizeof(glBindFramebuffer_PACKED)); \ packed_data->format = glBindFramebuffer_FORMAT; \ packed_data->func = glBindFramebuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)framebuffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBindRenderbuffer #define push_glBindRenderbuffer(target, renderbuffer) { \ glBindRenderbuffer_PACKED *packed_data = malloc(sizeof(glBindRenderbuffer_PACKED)); \ packed_data->format = glBindRenderbuffer_FORMAT; \ packed_data->func = glBindRenderbuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)renderbuffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBindTexture #define push_glBindTexture(target, texture) { \ glBindTexture_PACKED *packed_data = malloc(sizeof(glBindTexture_PACKED)); \ packed_data->format = glBindTexture_FORMAT; \ packed_data->func = glBindTexture; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)texture; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBlendColor #define push_glBlendColor(red, green, blue, alpha) { \ glBlendColor_PACKED *packed_data = malloc(sizeof(glBlendColor_PACKED)); \ packed_data->format = glBlendColor_FORMAT; \ packed_data->func = glBlendColor; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLclampf)red; \ packed_data->args.a2 = (GLclampf)green; \ packed_data->args.a3 = (GLclampf)blue; \ packed_data->args.a4 = (GLclampf)alpha; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBlendEquation #define push_glBlendEquation(mode) { \ glBlendEquation_PACKED *packed_data = malloc(sizeof(glBlendEquation_PACKED)); \ packed_data->format = glBlendEquation_FORMAT; \ packed_data->func = glBlendEquation; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)mode; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBlendEquationSeparate #define push_glBlendEquationSeparate(modeRGB, modeA) { \ glBlendEquationSeparate_PACKED *packed_data = malloc(sizeof(glBlendEquationSeparate_PACKED)); \ packed_data->format = glBlendEquationSeparate_FORMAT; \ packed_data->func = glBlendEquationSeparate; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)modeRGB; \ packed_data->args.a2 = (GLenum)modeA; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBlendFunc #define push_glBlendFunc(sfactor, dfactor) { \ glBlendFunc_PACKED *packed_data = malloc(sizeof(glBlendFunc_PACKED)); \ packed_data->format = glBlendFunc_FORMAT; \ packed_data->func = glBlendFunc; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)sfactor; \ packed_data->args.a2 = (GLenum)dfactor; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBlendFuncSeparate #define push_glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) { \ glBlendFuncSeparate_PACKED *packed_data = malloc(sizeof(glBlendFuncSeparate_PACKED)); \ packed_data->format = glBlendFuncSeparate_FORMAT; \ packed_data->func = glBlendFuncSeparate; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)sfactorRGB; \ packed_data->args.a2 = (GLenum)dfactorRGB; \ packed_data->args.a3 = (GLenum)sfactorAlpha; \ packed_data->args.a4 = (GLenum)dfactorAlpha; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBufferData #define push_glBufferData(target, size, data, usage) { \ glBufferData_PACKED *packed_data = malloc(sizeof(glBufferData_PACKED)); \ packed_data->format = glBufferData_FORMAT; \ packed_data->func = glBufferData; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLsizeiptr)size; \ packed_data->args.a3 = (GLvoid *)data; \ packed_data->args.a4 = (GLenum)usage; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glBufferSubData #define push_glBufferSubData(target, offset, size, data) { \ glBufferSubData_PACKED *packed_data = malloc(sizeof(glBufferSubData_PACKED)); \ packed_data->format = glBufferSubData_FORMAT; \ packed_data->func = glBufferSubData; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLintptr)offset; \ packed_data->args.a3 = (GLsizeiptr)size; \ packed_data->args.a4 = (GLvoid *)data; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCheckFramebufferStatus #define push_glCheckFramebufferStatus(target) { \ glCheckFramebufferStatus_PACKED *packed_data = malloc(sizeof(glCheckFramebufferStatus_PACKED)); \ packed_data->format = glCheckFramebufferStatus_FORMAT; \ packed_data->func = glCheckFramebufferStatus; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glClear #define push_glClear(mask) { \ glClear_PACKED *packed_data = malloc(sizeof(glClear_PACKED)); \ packed_data->format = glClear_FORMAT; \ packed_data->func = glClear; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLbitfield)mask; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glClearColor #define push_glClearColor(red, green, blue, alpha) { \ glClearColor_PACKED *packed_data = malloc(sizeof(glClearColor_PACKED)); \ packed_data->format = glClearColor_FORMAT; \ packed_data->func = glClearColor; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLclampf)red; \ packed_data->args.a2 = (GLclampf)green; \ packed_data->args.a3 = (GLclampf)blue; \ packed_data->args.a4 = (GLclampf)alpha; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glClearDepthf #define push_glClearDepthf(depth) { \ glClearDepthf_PACKED *packed_data = malloc(sizeof(glClearDepthf_PACKED)); \ packed_data->format = glClearDepthf_FORMAT; \ packed_data->func = glClearDepthf; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLclampf)depth; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glClearStencil #define push_glClearStencil(s) { \ glClearStencil_PACKED *packed_data = malloc(sizeof(glClearStencil_PACKED)); \ packed_data->format = glClearStencil_FORMAT; \ packed_data->func = glClearStencil; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)s; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glColorMask #define push_glColorMask(red, green, blue, alpha) { \ glColorMask_PACKED *packed_data = malloc(sizeof(glColorMask_PACKED)); \ packed_data->format = glColorMask_FORMAT; \ packed_data->func = glColorMask; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLboolean)red; \ packed_data->args.a2 = (GLboolean)green; \ packed_data->args.a3 = (GLboolean)blue; \ packed_data->args.a4 = (GLboolean)alpha; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCompileShader #define push_glCompileShader(shader) { \ glCompileShader_PACKED *packed_data = malloc(sizeof(glCompileShader_PACKED)); \ packed_data->format = glCompileShader_FORMAT; \ packed_data->func = glCompileShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCompressedTexImage2D #define push_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) { \ glCompressedTexImage2D_PACKED *packed_data = malloc(sizeof(glCompressedTexImage2D_PACKED)); \ packed_data->format = glCompressedTexImage2D_FORMAT; \ packed_data->func = glCompressedTexImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLenum)internalformat; \ packed_data->args.a4 = (GLsizei)width; \ packed_data->args.a5 = (GLsizei)height; \ packed_data->args.a6 = (GLint)border; \ packed_data->args.a7 = (GLsizei)imageSize; \ packed_data->args.a8 = (GLvoid *)data; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCompressedTexSubImage2D #define push_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { \ glCompressedTexSubImage2D_PACKED *packed_data = malloc(sizeof(glCompressedTexSubImage2D_PACKED)); \ packed_data->format = glCompressedTexSubImage2D_FORMAT; \ packed_data->func = glCompressedTexSubImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLsizei)width; \ packed_data->args.a6 = (GLsizei)height; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLsizei)imageSize; \ packed_data->args.a9 = (GLvoid *)data; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCopyTexImage2D #define push_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border) { \ glCopyTexImage2D_PACKED *packed_data = malloc(sizeof(glCopyTexImage2D_PACKED)); \ packed_data->format = glCopyTexImage2D_FORMAT; \ packed_data->func = glCopyTexImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLenum)internalformat; \ packed_data->args.a4 = (GLint)x; \ packed_data->args.a5 = (GLint)y; \ packed_data->args.a6 = (GLsizei)width; \ packed_data->args.a7 = (GLsizei)height; \ packed_data->args.a8 = (GLint)border; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCopyTexSubImage2D #define push_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) { \ glCopyTexSubImage2D_PACKED *packed_data = malloc(sizeof(glCopyTexSubImage2D_PACKED)); \ packed_data->format = glCopyTexSubImage2D_FORMAT; \ packed_data->func = glCopyTexSubImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLint)x; \ packed_data->args.a6 = (GLint)y; \ packed_data->args.a7 = (GLsizei)width; \ packed_data->args.a8 = (GLsizei)height; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCreateProgram #define push_glCreateProgram() { \ glCreateProgram_PACKED *packed_data = malloc(sizeof(glCreateProgram_PACKED)); \ packed_data->format = glCreateProgram_FORMAT; \ packed_data->func = glCreateProgram; \ packed_data->refs = 0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCreateShader #define push_glCreateShader(type) { \ glCreateShader_PACKED *packed_data = malloc(sizeof(glCreateShader_PACKED)); \ packed_data->format = glCreateShader_FORMAT; \ packed_data->func = glCreateShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)type; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glCullFace #define push_glCullFace(mode) { \ glCullFace_PACKED *packed_data = malloc(sizeof(glCullFace_PACKED)); \ packed_data->format = glCullFace_FORMAT; \ packed_data->func = glCullFace; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)mode; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteBuffers #define push_glDeleteBuffers(n, buffer) { \ glDeleteBuffers_PACKED *packed_data = malloc(sizeof(glDeleteBuffers_PACKED)); \ packed_data->format = glDeleteBuffers_FORMAT; \ packed_data->func = glDeleteBuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)buffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteFramebuffers #define push_glDeleteFramebuffers(n, framebuffers) { \ glDeleteFramebuffers_PACKED *packed_data = malloc(sizeof(glDeleteFramebuffers_PACKED)); \ packed_data->format = glDeleteFramebuffers_FORMAT; \ packed_data->func = glDeleteFramebuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)framebuffers; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteProgram #define push_glDeleteProgram(program) { \ glDeleteProgram_PACKED *packed_data = malloc(sizeof(glDeleteProgram_PACKED)); \ packed_data->format = glDeleteProgram_FORMAT; \ packed_data->func = glDeleteProgram; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteRenderbuffers #define push_glDeleteRenderbuffers(n, renderbuffers) { \ glDeleteRenderbuffers_PACKED *packed_data = malloc(sizeof(glDeleteRenderbuffers_PACKED)); \ packed_data->format = glDeleteRenderbuffers_FORMAT; \ packed_data->func = glDeleteRenderbuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)renderbuffers; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteShader #define push_glDeleteShader(program) { \ glDeleteShader_PACKED *packed_data = malloc(sizeof(glDeleteShader_PACKED)); \ packed_data->format = glDeleteShader_FORMAT; \ packed_data->func = glDeleteShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDeleteTextures #define push_glDeleteTextures(n, textures) { \ glDeleteTextures_PACKED *packed_data = malloc(sizeof(glDeleteTextures_PACKED)); \ packed_data->format = glDeleteTextures_FORMAT; \ packed_data->func = glDeleteTextures; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)textures; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDepthFunc #define push_glDepthFunc(func) { \ glDepthFunc_PACKED *packed_data = malloc(sizeof(glDepthFunc_PACKED)); \ packed_data->format = glDepthFunc_FORMAT; \ packed_data->func = glDepthFunc; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)func; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDepthMask #define push_glDepthMask(flag) { \ glDepthMask_PACKED *packed_data = malloc(sizeof(glDepthMask_PACKED)); \ packed_data->format = glDepthMask_FORMAT; \ packed_data->func = glDepthMask; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLboolean)flag; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDepthRangef #define push_glDepthRangef(zNear, zFar) { \ glDepthRangef_PACKED *packed_data = malloc(sizeof(glDepthRangef_PACKED)); \ packed_data->format = glDepthRangef_FORMAT; \ packed_data->func = glDepthRangef; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLclampf)zNear; \ packed_data->args.a2 = (GLclampf)zFar; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDetachShader #define push_glDetachShader(program, shader) { \ glDetachShader_PACKED *packed_data = malloc(sizeof(glDetachShader_PACKED)); \ packed_data->format = glDetachShader_FORMAT; \ packed_data->func = glDetachShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLuint)shader; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDisable #define push_glDisable(cap) { \ glDisable_PACKED *packed_data = malloc(sizeof(glDisable_PACKED)); \ packed_data->format = glDisable_FORMAT; \ packed_data->func = glDisable; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)cap; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDisableVertexAttribArray #define push_glDisableVertexAttribArray(index) { \ glDisableVertexAttribArray_PACKED *packed_data = malloc(sizeof(glDisableVertexAttribArray_PACKED)); \ packed_data->format = glDisableVertexAttribArray_FORMAT; \ packed_data->func = glDisableVertexAttribArray; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDrawArrays #define push_glDrawArrays(mode, first, count) { \ glDrawArrays_PACKED *packed_data = malloc(sizeof(glDrawArrays_PACKED)); \ packed_data->format = glDrawArrays_FORMAT; \ packed_data->func = glDrawArrays; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)mode; \ packed_data->args.a2 = (GLint)first; \ packed_data->args.a3 = (GLsizei)count; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glDrawElements #define push_glDrawElements(mode, count, type, indices) { \ glDrawElements_PACKED *packed_data = malloc(sizeof(glDrawElements_PACKED)); \ packed_data->format = glDrawElements_FORMAT; \ packed_data->func = glDrawElements; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)mode; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLenum)type; \ packed_data->args.a4 = (GLvoid *)indices; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glEnable #define push_glEnable(cap) { \ glEnable_PACKED *packed_data = malloc(sizeof(glEnable_PACKED)); \ packed_data->format = glEnable_FORMAT; \ packed_data->func = glEnable; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)cap; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glEnableVertexAttribArray #define push_glEnableVertexAttribArray(index) { \ glEnableVertexAttribArray_PACKED *packed_data = malloc(sizeof(glEnableVertexAttribArray_PACKED)); \ packed_data->format = glEnableVertexAttribArray_FORMAT; \ packed_data->func = glEnableVertexAttribArray; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glFinish #define push_glFinish() { \ glFinish_PACKED *packed_data = malloc(sizeof(glFinish_PACKED)); \ packed_data->format = glFinish_FORMAT; \ packed_data->func = glFinish; \ packed_data->refs = 0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glFlush #define push_glFlush() { \ glFlush_PACKED *packed_data = malloc(sizeof(glFlush_PACKED)); \ packed_data->format = glFlush_FORMAT; \ packed_data->func = glFlush; \ packed_data->refs = 0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glFramebufferRenderbuffer #define push_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { \ glFramebufferRenderbuffer_PACKED *packed_data = malloc(sizeof(glFramebufferRenderbuffer_PACKED)); \ packed_data->format = glFramebufferRenderbuffer_FORMAT; \ packed_data->func = glFramebufferRenderbuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)attachment; \ packed_data->args.a3 = (GLenum)renderbuffertarget; \ packed_data->args.a4 = (GLuint)renderbuffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glFramebufferTexture2D #define push_glFramebufferTexture2D(target, attachment, textarget, texture, level) { \ glFramebufferTexture2D_PACKED *packed_data = malloc(sizeof(glFramebufferTexture2D_PACKED)); \ packed_data->format = glFramebufferTexture2D_FORMAT; \ packed_data->func = glFramebufferTexture2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)attachment; \ packed_data->args.a3 = (GLenum)textarget; \ packed_data->args.a4 = (GLuint)texture; \ packed_data->args.a5 = (GLint)level; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glFrontFace #define push_glFrontFace(mode) { \ glFrontFace_PACKED *packed_data = malloc(sizeof(glFrontFace_PACKED)); \ packed_data->format = glFrontFace_FORMAT; \ packed_data->func = glFrontFace; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)mode; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGenBuffers #define push_glGenBuffers(n, buffer) { \ glGenBuffers_PACKED *packed_data = malloc(sizeof(glGenBuffers_PACKED)); \ packed_data->format = glGenBuffers_FORMAT; \ packed_data->func = glGenBuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)buffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGenFramebuffers #define push_glGenFramebuffers(n, framebuffers) { \ glGenFramebuffers_PACKED *packed_data = malloc(sizeof(glGenFramebuffers_PACKED)); \ packed_data->format = glGenFramebuffers_FORMAT; \ packed_data->func = glGenFramebuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)framebuffers; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGenRenderbuffers #define push_glGenRenderbuffers(n, renderbuffers) { \ glGenRenderbuffers_PACKED *packed_data = malloc(sizeof(glGenRenderbuffers_PACKED)); \ packed_data->format = glGenRenderbuffers_FORMAT; \ packed_data->func = glGenRenderbuffers; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)renderbuffers; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGenTextures #define push_glGenTextures(n, textures) { \ glGenTextures_PACKED *packed_data = malloc(sizeof(glGenTextures_PACKED)); \ packed_data->format = glGenTextures_FORMAT; \ packed_data->func = glGenTextures; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)textures; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGenerateMipmap #define push_glGenerateMipmap(target) { \ glGenerateMipmap_PACKED *packed_data = malloc(sizeof(glGenerateMipmap_PACKED)); \ packed_data->format = glGenerateMipmap_FORMAT; \ packed_data->func = glGenerateMipmap; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetActiveAttrib #define push_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { \ glGetActiveAttrib_PACKED *packed_data = malloc(sizeof(glGetActiveAttrib_PACKED)); \ packed_data->format = glGetActiveAttrib_FORMAT; \ packed_data->func = glGetActiveAttrib; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLuint)index; \ packed_data->args.a3 = (GLsizei)bufSize; \ packed_data->args.a4 = (GLsizei *)length; \ packed_data->args.a5 = (GLint *)size; \ packed_data->args.a6 = (GLenum *)type; \ packed_data->args.a7 = (GLchar *)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetActiveUniform #define push_glGetActiveUniform(program, index, bufSize, length, size, type, name) { \ glGetActiveUniform_PACKED *packed_data = malloc(sizeof(glGetActiveUniform_PACKED)); \ packed_data->format = glGetActiveUniform_FORMAT; \ packed_data->func = glGetActiveUniform; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLuint)index; \ packed_data->args.a3 = (GLsizei)bufSize; \ packed_data->args.a4 = (GLsizei *)length; \ packed_data->args.a5 = (GLint *)size; \ packed_data->args.a6 = (GLenum *)type; \ packed_data->args.a7 = (GLchar *)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetAttachedShaders #define push_glGetAttachedShaders(program, maxCount, count, obj) { \ glGetAttachedShaders_PACKED *packed_data = malloc(sizeof(glGetAttachedShaders_PACKED)); \ packed_data->format = glGetAttachedShaders_FORMAT; \ packed_data->func = glGetAttachedShaders; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLsizei)maxCount; \ packed_data->args.a3 = (GLsizei *)count; \ packed_data->args.a4 = (GLuint *)obj; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetAttribLocation #define push_glGetAttribLocation(program, name) { \ glGetAttribLocation_PACKED *packed_data = malloc(sizeof(glGetAttribLocation_PACKED)); \ packed_data->format = glGetAttribLocation_FORMAT; \ packed_data->func = glGetAttribLocation; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLchar *)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetBooleanv #define push_glGetBooleanv(pname, params) { \ glGetBooleanv_PACKED *packed_data = malloc(sizeof(glGetBooleanv_PACKED)); \ packed_data->format = glGetBooleanv_FORMAT; \ packed_data->func = glGetBooleanv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLboolean *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetBufferParameteriv #define push_glGetBufferParameteriv(target, pname, params) { \ glGetBufferParameteriv_PACKED *packed_data = malloc(sizeof(glGetBufferParameteriv_PACKED)); \ packed_data->format = glGetBufferParameteriv_FORMAT; \ packed_data->func = glGetBufferParameteriv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetError #define push_glGetError() { \ glGetError_PACKED *packed_data = malloc(sizeof(glGetError_PACKED)); \ packed_data->format = glGetError_FORMAT; \ packed_data->func = glGetError; \ packed_data->refs = 0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetFloatv #define push_glGetFloatv(pname, params) { \ glGetFloatv_PACKED *packed_data = malloc(sizeof(glGetFloatv_PACKED)); \ packed_data->format = glGetFloatv_FORMAT; \ packed_data->func = glGetFloatv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetFramebufferAttachmentParameteriv #define push_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { \ glGetFramebufferAttachmentParameteriv_PACKED *packed_data = malloc(sizeof(glGetFramebufferAttachmentParameteriv_PACKED)); \ packed_data->format = glGetFramebufferAttachmentParameteriv_FORMAT; \ packed_data->func = glGetFramebufferAttachmentParameteriv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)attachment; \ packed_data->args.a3 = (GLenum)pname; \ packed_data->args.a4 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetIntegerv #define push_glGetIntegerv(pname, params) { \ glGetIntegerv_PACKED *packed_data = malloc(sizeof(glGetIntegerv_PACKED)); \ packed_data->format = glGetIntegerv_FORMAT; \ packed_data->func = glGetIntegerv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetProgramInfoLog #define push_glGetProgramInfoLog(program, bufSize, length, infoLog) { \ glGetProgramInfoLog_PACKED *packed_data = malloc(sizeof(glGetProgramInfoLog_PACKED)); \ packed_data->format = glGetProgramInfoLog_FORMAT; \ packed_data->func = glGetProgramInfoLog; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLsizei)bufSize; \ packed_data->args.a3 = (GLsizei *)length; \ packed_data->args.a4 = (GLchar *)infoLog; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetProgramiv #define push_glGetProgramiv(program, pname, params) { \ glGetProgramiv_PACKED *packed_data = malloc(sizeof(glGetProgramiv_PACKED)); \ packed_data->format = glGetProgramiv_FORMAT; \ packed_data->func = glGetProgramiv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetRenderbufferParameteriv #define push_glGetRenderbufferParameteriv(target, pname, params) { \ glGetRenderbufferParameteriv_PACKED *packed_data = malloc(sizeof(glGetRenderbufferParameteriv_PACKED)); \ packed_data->format = glGetRenderbufferParameteriv_FORMAT; \ packed_data->func = glGetRenderbufferParameteriv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetShaderInfoLog #define push_glGetShaderInfoLog(shader, bufSize, length, infoLog) { \ glGetShaderInfoLog_PACKED *packed_data = malloc(sizeof(glGetShaderInfoLog_PACKED)); \ packed_data->format = glGetShaderInfoLog_FORMAT; \ packed_data->func = glGetShaderInfoLog; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ packed_data->args.a2 = (GLsizei)bufSize; \ packed_data->args.a3 = (GLsizei *)length; \ packed_data->args.a4 = (GLchar *)infoLog; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetShaderPrecisionFormat #define push_glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision) { \ glGetShaderPrecisionFormat_PACKED *packed_data = malloc(sizeof(glGetShaderPrecisionFormat_PACKED)); \ packed_data->format = glGetShaderPrecisionFormat_FORMAT; \ packed_data->func = glGetShaderPrecisionFormat; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)shadertype; \ packed_data->args.a2 = (GLenum)precisiontype; \ packed_data->args.a3 = (GLint *)range; \ packed_data->args.a4 = (GLint *)precision; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetShaderSource #define push_glGetShaderSource(shader, bufSize, length, source) { \ glGetShaderSource_PACKED *packed_data = malloc(sizeof(glGetShaderSource_PACKED)); \ packed_data->format = glGetShaderSource_FORMAT; \ packed_data->func = glGetShaderSource; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ packed_data->args.a2 = (GLsizei)bufSize; \ packed_data->args.a3 = (GLsizei *)length; \ packed_data->args.a4 = (GLchar *)source; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetShaderiv #define push_glGetShaderiv(shader, pname, params) { \ glGetShaderiv_PACKED *packed_data = malloc(sizeof(glGetShaderiv_PACKED)); \ packed_data->format = glGetShaderiv_FORMAT; \ packed_data->func = glGetShaderiv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetString #define push_glGetString(name) { \ glGetString_PACKED *packed_data = malloc(sizeof(glGetString_PACKED)); \ packed_data->format = glGetString_FORMAT; \ packed_data->func = glGetString; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetTexParameterfv #define push_glGetTexParameterfv(target, pname, params) { \ glGetTexParameterfv_PACKED *packed_data = malloc(sizeof(glGetTexParameterfv_PACKED)); \ packed_data->format = glGetTexParameterfv_FORMAT; \ packed_data->func = glGetTexParameterfv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetTexParameteriv #define push_glGetTexParameteriv(target, pname, params) { \ glGetTexParameteriv_PACKED *packed_data = malloc(sizeof(glGetTexParameteriv_PACKED)); \ packed_data->format = glGetTexParameteriv_FORMAT; \ packed_data->func = glGetTexParameteriv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetUniformLocation #define push_glGetUniformLocation(program, name) { \ glGetUniformLocation_PACKED *packed_data = malloc(sizeof(glGetUniformLocation_PACKED)); \ packed_data->format = glGetUniformLocation_FORMAT; \ packed_data->func = glGetUniformLocation; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLchar *)name; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetUniformfv #define push_glGetUniformfv(program, location, params) { \ glGetUniformfv_PACKED *packed_data = malloc(sizeof(glGetUniformfv_PACKED)); \ packed_data->format = glGetUniformfv_FORMAT; \ packed_data->func = glGetUniformfv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLint)location; \ packed_data->args.a3 = (GLfloat *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetUniformiv #define push_glGetUniformiv(program, location, params) { \ glGetUniformiv_PACKED *packed_data = malloc(sizeof(glGetUniformiv_PACKED)); \ packed_data->format = glGetUniformiv_FORMAT; \ packed_data->func = glGetUniformiv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ packed_data->args.a2 = (GLint)location; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetVertexAttribPointerv #define push_glGetVertexAttribPointerv(index, pname, pointer) { \ glGetVertexAttribPointerv_PACKED *packed_data = malloc(sizeof(glGetVertexAttribPointerv_PACKED)); \ packed_data->format = glGetVertexAttribPointerv_FORMAT; \ packed_data->func = glGetVertexAttribPointerv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLvoid **)pointer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetVertexAttribfv #define push_glGetVertexAttribfv(index, pname, params) { \ glGetVertexAttribfv_PACKED *packed_data = malloc(sizeof(glGetVertexAttribfv_PACKED)); \ packed_data->format = glGetVertexAttribfv_FORMAT; \ packed_data->func = glGetVertexAttribfv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glGetVertexAttribiv #define push_glGetVertexAttribiv(index, pname, params) { \ glGetVertexAttribiv_PACKED *packed_data = malloc(sizeof(glGetVertexAttribiv_PACKED)); \ packed_data->format = glGetVertexAttribiv_FORMAT; \ packed_data->func = glGetVertexAttribiv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glHint #define push_glHint(target, mode) { \ glHint_PACKED *packed_data = malloc(sizeof(glHint_PACKED)); \ packed_data->format = glHint_FORMAT; \ packed_data->func = glHint; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)mode; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsBuffer #define push_glIsBuffer(buffer) { \ glIsBuffer_PACKED *packed_data = malloc(sizeof(glIsBuffer_PACKED)); \ packed_data->format = glIsBuffer_FORMAT; \ packed_data->func = glIsBuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)buffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsEnabled #define push_glIsEnabled(cap) { \ glIsEnabled_PACKED *packed_data = malloc(sizeof(glIsEnabled_PACKED)); \ packed_data->format = glIsEnabled_FORMAT; \ packed_data->func = glIsEnabled; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)cap; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsFramebuffer #define push_glIsFramebuffer(framebuffer) { \ glIsFramebuffer_PACKED *packed_data = malloc(sizeof(glIsFramebuffer_PACKED)); \ packed_data->format = glIsFramebuffer_FORMAT; \ packed_data->func = glIsFramebuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)framebuffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsProgram #define push_glIsProgram(program) { \ glIsProgram_PACKED *packed_data = malloc(sizeof(glIsProgram_PACKED)); \ packed_data->format = glIsProgram_FORMAT; \ packed_data->func = glIsProgram; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsRenderbuffer #define push_glIsRenderbuffer(renderbuffer) { \ glIsRenderbuffer_PACKED *packed_data = malloc(sizeof(glIsRenderbuffer_PACKED)); \ packed_data->format = glIsRenderbuffer_FORMAT; \ packed_data->func = glIsRenderbuffer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)renderbuffer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsShader #define push_glIsShader(shader) { \ glIsShader_PACKED *packed_data = malloc(sizeof(glIsShader_PACKED)); \ packed_data->format = glIsShader_FORMAT; \ packed_data->func = glIsShader; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glIsTexture #define push_glIsTexture(texture) { \ glIsTexture_PACKED *packed_data = malloc(sizeof(glIsTexture_PACKED)); \ packed_data->format = glIsTexture_FORMAT; \ packed_data->func = glIsTexture; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)texture; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glLineWidth #define push_glLineWidth(width) { \ glLineWidth_PACKED *packed_data = malloc(sizeof(glLineWidth_PACKED)); \ packed_data->format = glLineWidth_FORMAT; \ packed_data->func = glLineWidth; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLfloat)width; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glLinkProgram #define push_glLinkProgram(program) { \ glLinkProgram_PACKED *packed_data = malloc(sizeof(glLinkProgram_PACKED)); \ packed_data->format = glLinkProgram_FORMAT; \ packed_data->func = glLinkProgram; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glPixelStorei #define push_glPixelStorei(pname, param) { \ glPixelStorei_PACKED *packed_data = malloc(sizeof(glPixelStorei_PACKED)); \ packed_data->format = glPixelStorei_FORMAT; \ packed_data->func = glPixelStorei; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLint)param; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glPolygonOffset #define push_glPolygonOffset(factor, units) { \ glPolygonOffset_PACKED *packed_data = malloc(sizeof(glPolygonOffset_PACKED)); \ packed_data->format = glPolygonOffset_FORMAT; \ packed_data->func = glPolygonOffset; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLfloat)factor; \ packed_data->args.a2 = (GLfloat)units; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glReadPixels #define push_glReadPixels(x, y, width, height, format, type, pixels) { \ glReadPixels_PACKED *packed_data = malloc(sizeof(glReadPixels_PACKED)); \ packed_data->format = glReadPixels_FORMAT; \ packed_data->func = glReadPixels; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ packed_data->args.a5 = (GLenum)format; \ packed_data->args.a6 = (GLenum)type; \ packed_data->args.a7 = (GLvoid *)pixels; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glReleaseShaderCompiler #define push_glReleaseShaderCompiler() { \ glReleaseShaderCompiler_PACKED *packed_data = malloc(sizeof(glReleaseShaderCompiler_PACKED)); \ packed_data->format = glReleaseShaderCompiler_FORMAT; \ packed_data->func = glReleaseShaderCompiler; \ packed_data->refs = 0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glRenderbufferStorage #define push_glRenderbufferStorage(target, internalformat, width, height) { \ glRenderbufferStorage_PACKED *packed_data = malloc(sizeof(glRenderbufferStorage_PACKED)); \ packed_data->format = glRenderbufferStorage_FORMAT; \ packed_data->func = glRenderbufferStorage; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)internalformat; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glSampleCoverage #define push_glSampleCoverage(value, invert) { \ glSampleCoverage_PACKED *packed_data = malloc(sizeof(glSampleCoverage_PACKED)); \ packed_data->format = glSampleCoverage_FORMAT; \ packed_data->func = glSampleCoverage; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLclampf)value; \ packed_data->args.a2 = (GLboolean)invert; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glScissor #define push_glScissor(x, y, width, height) { \ glScissor_PACKED *packed_data = malloc(sizeof(glScissor_PACKED)); \ packed_data->format = glScissor_FORMAT; \ packed_data->func = glScissor; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glShaderBinary #define push_glShaderBinary(n, shaders, binaryformat, binary, length) { \ glShaderBinary_PACKED *packed_data = malloc(sizeof(glShaderBinary_PACKED)); \ packed_data->format = glShaderBinary_FORMAT; \ packed_data->func = glShaderBinary; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)shaders; \ packed_data->args.a3 = (GLenum)binaryformat; \ packed_data->args.a4 = (GLvoid *)binary; \ packed_data->args.a5 = (GLsizei)length; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glShaderSource #define push_glShaderSource(shader, count, string, length) { \ glShaderSource_PACKED *packed_data = malloc(sizeof(glShaderSource_PACKED)); \ packed_data->format = glShaderSource_FORMAT; \ packed_data->func = glShaderSource; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)shader; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLchar * *)string; \ packed_data->args.a4 = (GLint *)length; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilFunc #define push_glStencilFunc(func, ref, mask) { \ glStencilFunc_PACKED *packed_data = malloc(sizeof(glStencilFunc_PACKED)); \ packed_data->format = glStencilFunc_FORMAT; \ packed_data->func = glStencilFunc; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)func; \ packed_data->args.a2 = (GLint)ref; \ packed_data->args.a3 = (GLuint)mask; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilFuncSeparate #define push_glStencilFuncSeparate(face, func, ref, mask) { \ glStencilFuncSeparate_PACKED *packed_data = malloc(sizeof(glStencilFuncSeparate_PACKED)); \ packed_data->format = glStencilFuncSeparate_FORMAT; \ packed_data->func = glStencilFuncSeparate; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)func; \ packed_data->args.a3 = (GLint)ref; \ packed_data->args.a4 = (GLuint)mask; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilMask #define push_glStencilMask(mask) { \ glStencilMask_PACKED *packed_data = malloc(sizeof(glStencilMask_PACKED)); \ packed_data->format = glStencilMask_FORMAT; \ packed_data->func = glStencilMask; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)mask; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilMaskSeparate #define push_glStencilMaskSeparate(face, mask) { \ glStencilMaskSeparate_PACKED *packed_data = malloc(sizeof(glStencilMaskSeparate_PACKED)); \ packed_data->format = glStencilMaskSeparate_FORMAT; \ packed_data->func = glStencilMaskSeparate; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLuint)mask; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilOp #define push_glStencilOp(fail, zfail, zpass) { \ glStencilOp_PACKED *packed_data = malloc(sizeof(glStencilOp_PACKED)); \ packed_data->format = glStencilOp_FORMAT; \ packed_data->func = glStencilOp; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)fail; \ packed_data->args.a2 = (GLenum)zfail; \ packed_data->args.a3 = (GLenum)zpass; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glStencilOpSeparate #define push_glStencilOpSeparate(face, sfail, zfail, zpass) { \ glStencilOpSeparate_PACKED *packed_data = malloc(sizeof(glStencilOpSeparate_PACKED)); \ packed_data->format = glStencilOpSeparate_FORMAT; \ packed_data->func = glStencilOpSeparate; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)sfail; \ packed_data->args.a3 = (GLenum)zfail; \ packed_data->args.a4 = (GLenum)zpass; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexImage2D #define push_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) { \ glTexImage2D_PACKED *packed_data = malloc(sizeof(glTexImage2D_PACKED)); \ packed_data->format = glTexImage2D_FORMAT; \ packed_data->func = glTexImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)internalformat; \ packed_data->args.a4 = (GLsizei)width; \ packed_data->args.a5 = (GLsizei)height; \ packed_data->args.a6 = (GLint)border; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLenum)type; \ packed_data->args.a9 = (GLvoid *)pixels; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexParameterf #define push_glTexParameterf(target, pname, param) { \ glTexParameterf_PACKED *packed_data = malloc(sizeof(glTexParameterf_PACKED)); \ packed_data->format = glTexParameterf_FORMAT; \ packed_data->func = glTexParameterf; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat)param; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexParameterfv #define push_glTexParameterfv(target, pname, params) { \ glTexParameterfv_PACKED *packed_data = malloc(sizeof(glTexParameterfv_PACKED)); \ packed_data->format = glTexParameterfv_FORMAT; \ packed_data->func = glTexParameterfv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexParameteri #define push_glTexParameteri(target, pname, param) { \ glTexParameteri_PACKED *packed_data = malloc(sizeof(glTexParameteri_PACKED)); \ packed_data->format = glTexParameteri_FORMAT; \ packed_data->func = glTexParameteri; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint)param; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexParameteriv #define push_glTexParameteriv(target, pname, params) { \ glTexParameteriv_PACKED *packed_data = malloc(sizeof(glTexParameteriv_PACKED)); \ packed_data->format = glTexParameteriv_FORMAT; \ packed_data->func = glTexParameteriv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glTexSubImage2D #define push_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { \ glTexSubImage2D_PACKED *packed_data = malloc(sizeof(glTexSubImage2D_PACKED)); \ packed_data->format = glTexSubImage2D_FORMAT; \ packed_data->func = glTexSubImage2D; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLsizei)width; \ packed_data->args.a6 = (GLsizei)height; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLenum)type; \ packed_data->args.a9 = (GLvoid *)pixels; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform1f #define push_glUniform1f(location, v0) { \ glUniform1f_PACKED *packed_data = malloc(sizeof(glUniform1f_PACKED)); \ packed_data->format = glUniform1f_FORMAT; \ packed_data->func = glUniform1f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLfloat)v0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform1fv #define push_glUniform1fv(location, count, value) { \ glUniform1fv_PACKED *packed_data = malloc(sizeof(glUniform1fv_PACKED)); \ packed_data->format = glUniform1fv_FORMAT; \ packed_data->func = glUniform1fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform1i #define push_glUniform1i(location, v0) { \ glUniform1i_PACKED *packed_data = malloc(sizeof(glUniform1i_PACKED)); \ packed_data->format = glUniform1i_FORMAT; \ packed_data->func = glUniform1i; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLint)v0; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform1iv #define push_glUniform1iv(location, count, value) { \ glUniform1iv_PACKED *packed_data = malloc(sizeof(glUniform1iv_PACKED)); \ packed_data->format = glUniform1iv_FORMAT; \ packed_data->func = glUniform1iv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLint *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform2f #define push_glUniform2f(location, v0, v1) { \ glUniform2f_PACKED *packed_data = malloc(sizeof(glUniform2f_PACKED)); \ packed_data->format = glUniform2f_FORMAT; \ packed_data->func = glUniform2f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLfloat)v0; \ packed_data->args.a3 = (GLfloat)v1; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform2fv #define push_glUniform2fv(location, count, value) { \ glUniform2fv_PACKED *packed_data = malloc(sizeof(glUniform2fv_PACKED)); \ packed_data->format = glUniform2fv_FORMAT; \ packed_data->func = glUniform2fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform2i #define push_glUniform2i(location, v0, v1) { \ glUniform2i_PACKED *packed_data = malloc(sizeof(glUniform2i_PACKED)); \ packed_data->format = glUniform2i_FORMAT; \ packed_data->func = glUniform2i; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLint)v0; \ packed_data->args.a3 = (GLint)v1; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform2iv #define push_glUniform2iv(location, count, value) { \ glUniform2iv_PACKED *packed_data = malloc(sizeof(glUniform2iv_PACKED)); \ packed_data->format = glUniform2iv_FORMAT; \ packed_data->func = glUniform2iv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLint *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform3f #define push_glUniform3f(location, v0, v1, v2) { \ glUniform3f_PACKED *packed_data = malloc(sizeof(glUniform3f_PACKED)); \ packed_data->format = glUniform3f_FORMAT; \ packed_data->func = glUniform3f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLfloat)v0; \ packed_data->args.a3 = (GLfloat)v1; \ packed_data->args.a4 = (GLfloat)v2; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform3fv #define push_glUniform3fv(location, count, value) { \ glUniform3fv_PACKED *packed_data = malloc(sizeof(glUniform3fv_PACKED)); \ packed_data->format = glUniform3fv_FORMAT; \ packed_data->func = glUniform3fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform3i #define push_glUniform3i(location, v0, v1, v2) { \ glUniform3i_PACKED *packed_data = malloc(sizeof(glUniform3i_PACKED)); \ packed_data->format = glUniform3i_FORMAT; \ packed_data->func = glUniform3i; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLint)v0; \ packed_data->args.a3 = (GLint)v1; \ packed_data->args.a4 = (GLint)v2; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform3iv #define push_glUniform3iv(location, count, value) { \ glUniform3iv_PACKED *packed_data = malloc(sizeof(glUniform3iv_PACKED)); \ packed_data->format = glUniform3iv_FORMAT; \ packed_data->func = glUniform3iv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLint *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform4f #define push_glUniform4f(location, v0, v1, v2, v3) { \ glUniform4f_PACKED *packed_data = malloc(sizeof(glUniform4f_PACKED)); \ packed_data->format = glUniform4f_FORMAT; \ packed_data->func = glUniform4f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLfloat)v0; \ packed_data->args.a3 = (GLfloat)v1; \ packed_data->args.a4 = (GLfloat)v2; \ packed_data->args.a5 = (GLfloat)v3; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform4fv #define push_glUniform4fv(location, count, value) { \ glUniform4fv_PACKED *packed_data = malloc(sizeof(glUniform4fv_PACKED)); \ packed_data->format = glUniform4fv_FORMAT; \ packed_data->func = glUniform4fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform4i #define push_glUniform4i(location, v0, v1, v2, v3) { \ glUniform4i_PACKED *packed_data = malloc(sizeof(glUniform4i_PACKED)); \ packed_data->format = glUniform4i_FORMAT; \ packed_data->func = glUniform4i; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLint)v0; \ packed_data->args.a3 = (GLint)v1; \ packed_data->args.a4 = (GLint)v2; \ packed_data->args.a5 = (GLint)v3; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniform4iv #define push_glUniform4iv(location, count, value) { \ glUniform4iv_PACKED *packed_data = malloc(sizeof(glUniform4iv_PACKED)); \ packed_data->format = glUniform4iv_FORMAT; \ packed_data->func = glUniform4iv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLint *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniformMatrix2fv #define push_glUniformMatrix2fv(location, count, transpose, value) { \ glUniformMatrix2fv_PACKED *packed_data = malloc(sizeof(glUniformMatrix2fv_PACKED)); \ packed_data->format = glUniformMatrix2fv_FORMAT; \ packed_data->func = glUniformMatrix2fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLboolean)transpose; \ packed_data->args.a4 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniformMatrix3fv #define push_glUniformMatrix3fv(location, count, transpose, value) { \ glUniformMatrix3fv_PACKED *packed_data = malloc(sizeof(glUniformMatrix3fv_PACKED)); \ packed_data->format = glUniformMatrix3fv_FORMAT; \ packed_data->func = glUniformMatrix3fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLboolean)transpose; \ packed_data->args.a4 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUniformMatrix4fv #define push_glUniformMatrix4fv(location, count, transpose, value) { \ glUniformMatrix4fv_PACKED *packed_data = malloc(sizeof(glUniformMatrix4fv_PACKED)); \ packed_data->format = glUniformMatrix4fv_FORMAT; \ packed_data->func = glUniformMatrix4fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)location; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLboolean)transpose; \ packed_data->args.a4 = (GLfloat *)value; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glUseProgram #define push_glUseProgram(program) { \ glUseProgram_PACKED *packed_data = malloc(sizeof(glUseProgram_PACKED)); \ packed_data->format = glUseProgram_FORMAT; \ packed_data->func = glUseProgram; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glValidateProgram #define push_glValidateProgram(program) { \ glValidateProgram_PACKED *packed_data = malloc(sizeof(glValidateProgram_PACKED)); \ packed_data->format = glValidateProgram_FORMAT; \ packed_data->func = glValidateProgram; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)program; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib1f #define push_glVertexAttrib1f(index, x) { \ glVertexAttrib1f_PACKED *packed_data = malloc(sizeof(glVertexAttrib1f_PACKED)); \ packed_data->format = glVertexAttrib1f_FORMAT; \ packed_data->func = glVertexAttrib1f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat)x; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib1fv #define push_glVertexAttrib1fv(index, v) { \ glVertexAttrib1fv_PACKED *packed_data = malloc(sizeof(glVertexAttrib1fv_PACKED)); \ packed_data->format = glVertexAttrib1fv_FORMAT; \ packed_data->func = glVertexAttrib1fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat *)v; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib2f #define push_glVertexAttrib2f(index, x, y) { \ glVertexAttrib2f_PACKED *packed_data = malloc(sizeof(glVertexAttrib2f_PACKED)); \ packed_data->format = glVertexAttrib2f_FORMAT; \ packed_data->func = glVertexAttrib2f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat)x; \ packed_data->args.a3 = (GLfloat)y; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib2fv #define push_glVertexAttrib2fv(index, v) { \ glVertexAttrib2fv_PACKED *packed_data = malloc(sizeof(glVertexAttrib2fv_PACKED)); \ packed_data->format = glVertexAttrib2fv_FORMAT; \ packed_data->func = glVertexAttrib2fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat *)v; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib3f #define push_glVertexAttrib3f(index, x, y, z) { \ glVertexAttrib3f_PACKED *packed_data = malloc(sizeof(glVertexAttrib3f_PACKED)); \ packed_data->format = glVertexAttrib3f_FORMAT; \ packed_data->func = glVertexAttrib3f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat)x; \ packed_data->args.a3 = (GLfloat)y; \ packed_data->args.a4 = (GLfloat)z; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib3fv #define push_glVertexAttrib3fv(index, v) { \ glVertexAttrib3fv_PACKED *packed_data = malloc(sizeof(glVertexAttrib3fv_PACKED)); \ packed_data->format = glVertexAttrib3fv_FORMAT; \ packed_data->func = glVertexAttrib3fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat *)v; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib4f #define push_glVertexAttrib4f(index, x, y, z, w) { \ glVertexAttrib4f_PACKED *packed_data = malloc(sizeof(glVertexAttrib4f_PACKED)); \ packed_data->format = glVertexAttrib4f_FORMAT; \ packed_data->func = glVertexAttrib4f; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat)x; \ packed_data->args.a3 = (GLfloat)y; \ packed_data->args.a4 = (GLfloat)z; \ packed_data->args.a5 = (GLfloat)w; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttrib4fv #define push_glVertexAttrib4fv(index, v) { \ glVertexAttrib4fv_PACKED *packed_data = malloc(sizeof(glVertexAttrib4fv_PACKED)); \ packed_data->format = glVertexAttrib4fv_FORMAT; \ packed_data->func = glVertexAttrib4fv; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLfloat *)v; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glVertexAttribPointer #define push_glVertexAttribPointer(index, size, type, normalized, stride, pointer) { \ glVertexAttribPointer_PACKED *packed_data = malloc(sizeof(glVertexAttribPointer_PACKED)); \ packed_data->format = glVertexAttribPointer_FORMAT; \ packed_data->func = glVertexAttribPointer; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLuint)index; \ packed_data->args.a2 = (GLint)size; \ packed_data->args.a3 = (GLenum)type; \ packed_data->args.a4 = (GLboolean)normalized; \ packed_data->args.a5 = (GLsizei)stride; \ packed_data->args.a6 = (GLvoid *)pointer; \ glPushCall((void *)packed_data); \ } #endif #ifndef direct_glViewport #define push_glViewport(x, y, width, height) { \ glViewport_PACKED *packed_data = malloc(sizeof(glViewport_PACKED)); \ packed_data->format = glViewport_FORMAT; \ packed_data->func = glViewport; \ packed_data->refs = 0; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ glPushCall((void *)packed_data); \ } #endif #endif #endif |
Added jni/glshim/src/gl/wrap/glstub.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #include "stub.h" #define STUB(def)\ def {\ char *debug = getenv("LIBGL_DEBUG");\ if (debug && strcmp(debug, "1") == 0)\ printf("stub: %s;\n", #def);\ } STUB(void glFogCoordd(GLdouble coord)) STUB(void glFogCoordf(GLfloat coord)) STUB(void glFogCoorddv(const GLdouble *coord)) STUB(void glFogCoordfv(const GLfloat *coord)) #ifdef BCMHOST STUB(void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments)) #endif #ifdef USE_ES2 STUB(void glClipPlanef(GLenum plane, const GLfloat *equation)); STUB(void glDisableClientState(GLenum state)); STUB(void glEnableClientState(GLenum state)); STUB(void glFogf(GLenum pname, GLfloat param)); STUB(void glFogfv(GLenum pname, const GLfloat *params)); STUB(void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far)); STUB(void glGetClipPlanef(GLenum plane, GLfloat *equation)); STUB(void glLightf(GLenum light, GLenum pname, GLfloat param)); STUB(void glLightfv(GLenum light, GLenum pname, const GLfloat *params)); STUB(void glLoadIdentity()); STUB(void glLoadMatrixf(const GLfloat *m)); STUB(void glMaterialf(GLenum face, GLenum pname, GLfloat param)); STUB(void glMatrixMode(GLenum mode)); STUB(void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat r, GLfloat q, GLfloat t)); STUB(void glMultMatrixf(const GLfloat *m)); STUB(void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat nearVal, GLfloat farVal)); STUB(void glPopMatrix()); STUB(void glPushMatrix()); STUB(void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)); STUB(void glScalef(GLfloat x, GLfloat y, GLfloat z)); STUB(void glTexEnvf(GLenum target, GLenum pname, GLfloat param)); STUB(void glTexEnvi(GLenum target, GLenum pname, GLint param)); STUB(void glTranslatef(GLfloat x, GLfloat y, GLfloat z)); #endif // STUB(void glMultiTexCoord()); // STUB(void glVertexAttrib()); STUB(void glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) STUB(void glColorMaterial(GLenum face, GLenum mode)) STUB(void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)) STUB(void glDrawBuffer(GLenum mode)) STUB(void glEdgeFlag(GLboolean flag)) STUB(void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * img)) STUB(void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)) STUB(void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)) STUB(void glIndexf(GLfloat c)) STUB(void glPixelTransferf(GLenum pname, GLfloat param)) STUB(void glPixelTransferi(GLenum pname, GLint param)) STUB(void glPixelZoom(GLfloat xfactor, GLfloat yfactor)) STUB(void glPolygonMode(GLenum face, GLenum mode)) STUB(void glPolygonStipple(const GLubyte *mask)) STUB(void glReadBuffer(GLenum mode)) STUB(void glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b)) #undef STUB |
Added jni/glshim/src/gl/wrap/stub.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include "../gl.h" GLint glRenderMode(GLenum mode); void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha); void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); void glColorMaterial(GLenum face, GLenum mode); void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); void glDrawBuffer(GLenum mode); void glEdgeFlag(GLboolean flag); void glFogCoordd(GLdouble coord); void glFogCoorddv(const GLdouble *coord); void glFogCoordf(GLfloat coord); void glFogCoordfv(const GLfloat *coord); void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * img); void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params); void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params); void glIndexf(GLfloat c); void glInitNames(); void glLightModeli(GLenum pname, GLint param); void glLoadName(GLuint name); void glPixelTransferf(GLenum pname, GLfloat param); void glPixelTransferi(GLenum pname, GLint param); void glPixelZoom(GLfloat xfactor, GLfloat yfactor); void glPolygonMode(GLenum face, GLenum mode); void glPolygonStipple(const GLubyte *mask); void glPopName(); void glPushName(); void glReadBuffer(GLenum mode); void glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b); // glSelectBuffer: http://www.lighthouse3d.com/opengl/picking/index.php?color1 void glSelectBuffer(GLsizei size, GLuint *buffer); |
Added jni/glshim/src/gl/wrap/types.h.
> > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #ifndef PACKED_TYPE_H #define PACKED_TYPE_H typedef struct { int format; void *func; int refs; void *args; } packed_call_t; typedef struct { int func; void *args; } indexed_call_t; #endif |
Added jni/glshim/src/util/extypes.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | #ifndef GL_EXTYPES_H #define GL_EXTYPES_H #include <stdint.h> #if !defined(ANDROID) #include <X11/Xlib.h> #include <X11/Xutil.h> #endif // gles typedef void *GLDEBUGPROC; typedef int32_t GLclampx; typedef int32_t GLfixed; // glx + x11 #if !defined(ANDROID) typedef void *DMbuffer; typedef void *GLXContextID; typedef int GLXDrawable; typedef void *GLXFBConfigSGIX; typedef void *GLXHyperpipeConfigSGIX; typedef void *GLXHyperpipeNetworkSGIX; typedef void *GLXPbuffer; typedef void *GLXPbufferSGIX; typedef void *GLXPixmap; typedef void *GLXVideoCaptureDeviceNV; typedef void *GLXVideoDeviceNV; typedef void *GLXVideoSourceSGIX; typedef void *GLXWindow; typedef void *VLNode; typedef void *VLPath; typedef void *VLServer; typedef void *__GLXextFuncPtr; typedef void DMparams; struct __GLXContextRec { Display *display; unsigned char direct; int currentWritable; int currentReadable; XID xid; }; typedef struct __GLXContextRec *GLXContext; struct __GLXFBConfigRec { int visualType; int transparentType; /* colors are floats scaled to ints */ int transparentRed, transparentGreen, transparentBlue, transparentAlpha; int transparentIndex; int visualCaveat; int associatedVisualId; int screen; int drawableType; int renderType; int maxPbufferWidth, maxPbufferHeight, maxPbufferPixels; int optimalPbufferWidth, optimalPbufferHeight; /* for SGIX_pbuffer */ int visualSelectGroup; /* visuals grouped by select priority */ unsigned int id; unsigned char rgbMode; unsigned char colorIndexMode; unsigned char doubleBufferMode; unsigned char stereoMode; unsigned char haveAccumBuffer; unsigned char haveDepthBuffer; unsigned char haveStencilBuffer; /* The number of bits present in various buffers */ int accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; int depthBits; int stencilBits; int indexBits; int redBits, greenBits, blueBits, alphaBits; unsigned int redMask, greenMask, blueMask, alphaMask; unsigned int multiSampleSize; /* Number of samples per pixel (0 if no ms) */ unsigned int nMultiSampleBuffers; /* Number of availble ms buffers */ int maxAuxBuffers; /* frame buffer level */ int level; /* color ranges (for SGI_color_range) */ unsigned char extendedRange; double minRed, maxRed; double minGreen, maxGreen; double minBlue, maxBlue; double minAlpha, maxAlpha; }; typedef struct __GLXFBConfigRec *GLXFBConfig; #endif /* !defined(ANDROID) */ // egl #if !defined(__unix__) && defined(__APPLE__) && defined(__MACH__) #define __unix__ #include <EGL/egl.h> #include <EGL/eglext.h> #undef __unix__ #else #include <EGL/egl.h> #include <EGL/eglext.h> #endif #endif |
Added jni/glshim/src/util/gl_helpers.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | #include <GL/gl.h> #include <stdbool.h> #include <stdio.h> #ifndef GL_HELPERS_H #define GL_HELPERS_H #define GL_TYPE_CASE(name, var, magic, type, code) \ case magic: { \ type *name = (type *)var; \ code \ break; \ } #define GL_TYPE_SWITCH(name, var, type, code, extra) \ switch (type) { \ GL_TYPE_CASE(name, var, GL_DOUBLE, GLdouble, code) \ GL_TYPE_CASE(name, var, GL_FLOAT, GLfloat, code) \ GL_TYPE_CASE(name, var, GL_INT, GLint, code) \ GL_TYPE_CASE(name, var, GL_SHORT, GLshort, code) \ GL_TYPE_CASE(name, var, GL_UNSIGNED_BYTE, GLubyte, code) \ GL_TYPE_CASE(name, var, GL_UNSIGNED_INT, GLuint, code) \ GL_TYPE_CASE(name, var, GL_UNSIGNED_SHORT, GLushort, code) \ extra \ } static const GLsizei gl_sizeof(GLenum type) { // types switch (type) { case GL_DOUBLE: return 8; case GL_FLOAT: case GL_INT: case GL_UNSIGNED_INT: case GL_UNSIGNED_INT_10_10_10_2: case GL_UNSIGNED_INT_2_10_10_10_REV: case GL_UNSIGNED_INT_8_8_8_8: case GL_UNSIGNED_INT_8_8_8_8_REV: case GL_4_BYTES: return 4; case GL_3_BYTES: return 3; case GL_LUMINANCE_ALPHA: case GL_UNSIGNED_SHORT: case GL_UNSIGNED_SHORT_1_5_5_5_REV: case GL_UNSIGNED_SHORT_4_4_4_4: case GL_UNSIGNED_SHORT_4_4_4_4_REV: case GL_UNSIGNED_SHORT_5_5_5_1: case GL_UNSIGNED_SHORT_5_6_5: case GL_UNSIGNED_SHORT_5_6_5_REV: case GL_2_BYTES: return 2; case GL_LUMINANCE: case GL_UNSIGNED_BYTE: case GL_UNSIGNED_BYTE_2_3_3_REV: case GL_UNSIGNED_BYTE_3_3_2: return 1; } // formats printf("gl_sizeof(): Unknown data type 0x%x\n", type); return 0; } static const GLuint gl_max_value(GLenum type) { switch (type) { // float/double only make sense on tex/color // be careful about using this case GL_DOUBLE: case GL_FLOAT: return 1; case GL_BYTE: return 127; case GL_UNSIGNED_BYTE: return 255; case GL_SHORT: return 32767; case GL_UNSIGNED_SHORT: return 65535; case GL_INT: return 2147483647; case GL_UNSIGNED_INT: return 4294967295; } printf("gl_max_value(): Unknown GL type 0x%x\n", type); return 0; } static const bool gl_is_type_packed(GLenum type) { switch (type) { case GL_4_BYTES: case GL_UNSIGNED_BYTE_2_3_3_REV: case GL_UNSIGNED_BYTE_3_3_2: case GL_UNSIGNED_INT_10_10_10_2: case GL_UNSIGNED_INT_2_10_10_10_REV: case GL_UNSIGNED_INT_8_8_8_8: case GL_UNSIGNED_INT_8_8_8_8_REV: case GL_UNSIGNED_SHORT_1_5_5_5_REV: case GL_UNSIGNED_SHORT_4_4_4_4: case GL_UNSIGNED_SHORT_4_4_4_4_REV: case GL_UNSIGNED_SHORT_5_5_5_1: case GL_UNSIGNED_SHORT_5_6_5: case GL_UNSIGNED_SHORT_5_6_5_REV: return true; } return false; } static const GLsizei gl_pixel_sizeof(GLenum format, GLenum type) { GLsizei width = 0; switch (format) { case GL_ALPHA: case GL_LUMINANCE: case GL_RED: width = 1; break; case GL_LUMINANCE_ALPHA: case GL_RG: width = 2; break; case GL_RGB: case GL_BGR: width = 3; break; case GL_RGBA: case GL_BGRA: width = 4; break; default: printf("gl_pixel_sizeof(): Unknown format %x\n", format); return 0; } if (gl_is_type_packed(type)) width = 1; return width * gl_sizeof(type); } static inline const bool gl_valid_vertex_type(GLenum type) { switch (type) { case GL_BYTE: case GL_FIXED: case GL_FLOAT: case GL_SHORT: return true; default: return false; } } static inline const bool gl_valid_mode(GLenum mode) { switch (mode) { case GL_POINTS: case GL_LINES: case GL_LINE_STRIP: case GL_LINE_LOOP: case GL_TRIANGLES: case GL_TRIANGLE_STRIP: case GL_TRIANGLE_FAN: case GL_QUADS: case GL_QUAD_STRIP: case GL_POLYGON: return true; default: return false; } } #endif |
Added jni/glshim/src/util/gl_str.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 | #include <stdlib.h> #include <string.h> #include "tack.h" #define bit(a, b) ((a & b) == b) #define bit_push(b, str) { if (value & b) tack_push(&bits, str); } static char *finish(tack_t *bits) { char *out = tack_str_join(bits, " | "); tack_clear(bits); return out; } #define strdup _strdup static char *strdup(const char *str) { char *dup = malloc(strlen(str) + 1); if (dup) { strcpy(dup, str); } return dup; } char *gl_bits_glPushAttrib(int value) { tack_t bits = {0}; if (bit(value, 0x000FFFFF)) { return strdup("GL_ALL_ATTRIB_BITS"); } bit_push(0x00000001, "GL_CURRENT_BIT"); bit_push(0x00000002, "GL_POINT_BIT"); bit_push(0x00000004, "GL_LINE_BIT"); bit_push(0x00000008, "GL_POLYGON_BIT"); bit_push(0x00000010, "GL_POLYGON_STIPPLE_BIT"); bit_push(0x00000020, "GL_PIXEL_MODE_BIT"); bit_push(0x00000040, "GL_LIGHTING_BIT"); bit_push(0x00000080, "GL_FOG_BIT"); bit_push(0x00000100, "GL_DEPTH_BUFFER_BIT"); bit_push(0x00000200, "GL_ACCUM_BUFFER_BIT"); bit_push(0x00000400, "GL_STENCIL_BUFFER_BIT"); bit_push(0x00000800, "GL_VIEWPORT_BIT"); bit_push(0x00001000, "GL_TRANSFORM_BIT"); bit_push(0x00002000, "GL_ENABLE_BIT"); bit_push(0x00004000, "GL_COLOR_BUFFER_BIT"); bit_push(0x00008000, "GL_HINT_BIT"); bit_push(0x00010000, "GL_EVAL_BIT"); bit_push(0x00020000, "GL_LIST_BIT"); bit_push(0x00040000, "GL_TEXTURE_BIT"); bit_push(0x00080000, "GL_SCISSOR_BIT"); return finish(&bits); } char *gl_bits_glPushClientAttrib(int value) { tack_t bits = {0}; if (bit(value, 0xFFFFFFFF)) { return strdup("GL_CLIENT_ALL_ATTRIB_BITS"); } bit_push(0x00000001, "GL_CLIENT_PIXEL_STORE_BIT"); bit_push(0x00000002, "GL_CLIENT_VERTEX_ARRAY_BIT"); return finish(&bits); } char *gl_bits_glCreateShader(int value) { tack_t bits = {0}; if (bit(value, 0xFFFFFFFF)) { return strdup("GL_ALL_SHADER_BITS"); } bit_push(0x00000001, "GL_VERTEX_SHADER_BIT"); bit_push(0x00000002, "GL_FRAGMENT_SHADER_BIT"); bit_push(0x00000004, "GL_GEOMETRY_SHADER_BIT"); bit_push(0x00000008, "GL_TESS_CONTROL_SHADER_BIT"); return finish(&bits); } const char *gl_str_glMap(int value) { switch (value) { case 0x0001: return "GL_MAP_READ_BIT"; case 0x0002: return "GL_MAP_WRITE_BIT"; case 0x0004: return "GL_MAP_INVALIDATE_RANGE_BIT"; case 0x0008: return "GL_MAP_INVALIDATE_BUFFER_BIT"; case 0x0010: return "GL_MAP_FLUSH_EXPLICIT_BIT"; case 0x0020: return "GL_MAP_UNSYNCHRONIZED_BIT"; } return NULL; } const char *gl_str_primitive(int value) { switch (value) { case 0x0000: return "GL_POINTS"; case 0x0001: return "GL_LINES"; case 0x0002: return "GL_LINE_LOOP"; case 0x0003: return "GL_LINE_STRIP"; case 0x0004: return "GL_TRIANGLES"; case 0x0005: return "GL_TRIANGLE_STRIP"; case 0x0006: return "GL_TRIANGLE_FAN"; case 0x0007: return "GL_QUADS"; case 0x0008: return "GL_QUAD_STRIP"; case 0x0009: return "GL_POLYGON"; case 0x000A: return "GL_LINES_ADJACENCY"; case 0x000B: return "GL_LINE_STRIP_ADJACENCY"; case 0x000C: return "GL_TRIANGLES_ADJACENCY"; case 0x000D: return "GL_TRIANGLE_STRIP_ADJACENCY"; } return NULL; } const char *gl_str(int value) { switch (value) { case 0x0: return "GL_ZERO"; case 0x1: return "GL_ONE"; case 0x0A00: return "GL_COEFF"; case 0x0A01: return "GL_ORDER"; case 0x0A02: return "GL_DOMAIN"; case 0x0B00: return "GL_CURRENT_COLOR"; case 0x0B01: return "GL_CURRENT_INDEX"; case 0x0B02: return "GL_CURRENT_NORMAL"; case 0x0B03: return "GL_CURRENT_TEXTURE_COORDS"; case 0x0B04: return "GL_CURRENT_RASTER_COLOR"; case 0x0B05: return "GL_CURRENT_RASTER_INDEX"; case 0x0B06: return "GL_CURRENT_RASTER_TEXTURE_COORDS"; case 0x0B07: return "GL_CURRENT_RASTER_POSITION"; case 0x0B08: return "GL_CURRENT_RASTER_POSITION_VALID"; case 0x0B09: return "GL_CURRENT_RASTER_DISTANCE"; case 0x0B10: return "GL_POINT_SMOOTH"; case 0x0B11: return "GL_POINT_SIZE"; case 0x0B12: return "GL_POINT_SIZE_RANGE"; case 0x0B13: return "GL_POINT_SIZE_GRANULARITY"; case 0x0B20: return "GL_LINE_SMOOTH"; case 0x0B21: return "GL_LINE_WIDTH"; case 0x0B22: return "GL_LINE_WIDTH_RANGE"; case 0x0B23: return "GL_LINE_WIDTH_GRANULARITY"; case 0x0B24: return "GL_LINE_STIPPLE"; case 0x0B25: return "GL_LINE_STIPPLE_PATTERN"; case 0x0B26: return "GL_LINE_STIPPLE_REPEAT"; case 0x0B30: return "GL_LIST_MODE"; case 0x0B31: return "GL_MAX_LIST_NESTING"; case 0x0B32: return "GL_LIST_BASE"; case 0x0B33: return "GL_LIST_INDEX"; case 0x0B40: return "GL_POLYGON_MODE"; case 0x0B41: return "GL_POLYGON_SMOOTH"; case 0x0B42: return "GL_POLYGON_STIPPLE"; case 0x0B43: return "GL_EDGE_FLAG"; case 0x0B44: return "GL_CULL_FACE"; case 0x0B45: return "GL_CULL_FACE_MODE"; case 0x0B46: return "GL_FRONT_FACE"; case 0x0B50: return "GL_LIGHTING"; case 0x0B51: return "GL_LIGHT_MODEL_LOCAL_VIEWER"; case 0x0B52: return "GL_LIGHT_MODEL_TWO_SIDE"; case 0x0B53: return "GL_LIGHT_MODEL_AMBIENT"; case 0x0B54: return "GL_SHADE_MODEL"; case 0x0B55: return "GL_COLOR_MATERIAL_FACE"; case 0x0B56: return "GL_COLOR_MATERIAL_PARAMETER"; case 0x0B57: return "GL_COLOR_MATERIAL"; case 0x0B60: return "GL_FOG"; case 0x0B61: return "GL_FOG_INDEX"; case 0x0B62: return "GL_FOG_DENSITY"; case 0x0B63: return "GL_FOG_START"; case 0x0B64: return "GL_FOG_END"; case 0x0B65: return "GL_FOG_MODE"; case 0x0B66: return "GL_FOG_COLOR"; case 0x0B70: return "GL_DEPTH_RANGE"; case 0x0B71: return "GL_DEPTH_TEST"; case 0x0B72: return "GL_DEPTH_WRITEMASK"; case 0x0B73: return "GL_DEPTH_CLEAR_VALUE"; case 0x0B74: return "GL_DEPTH_FUNC"; case 0x0B80: return "GL_ACCUM_CLEAR_VALUE"; case 0x0B90: return "GL_STENCIL_TEST"; case 0x0B91: return "GL_STENCIL_CLEAR_VALUE"; case 0x0B92: return "GL_STENCIL_FUNC"; case 0x0B93: return "GL_STENCIL_VALUE_MASK"; case 0x0B94: return "GL_STENCIL_FAIL"; case 0x0B95: return "GL_STENCIL_PASS_DEPTH_FAIL"; case 0x0B96: return "GL_STENCIL_PASS_DEPTH_PASS"; case 0x0B97: return "GL_STENCIL_REF"; case 0x0B98: return "GL_STENCIL_WRITEMASK"; case 0x0BA0: return "GL_MATRIX_MODE"; case 0x0BA1: return "GL_NORMALIZE"; case 0x0BA2: return "GL_VIEWPORT"; case 0x0BA3: return "GL_MODELVIEW_STACK_DEPTH"; case 0x0BA4: return "GL_PROJECTION_STACK_DEPTH"; case 0x0BA5: return "GL_TEXTURE_STACK_DEPTH"; case 0x0BA6: return "GL_MODELVIEW_MATRIX"; case 0x0BA7: return "GL_PROJECTION_MATRIX"; case 0x0BA8: return "GL_TEXTURE_MATRIX"; case 0x0BB0: return "GL_ATTRIB_STACK_DEPTH"; case 0x0BB1: return "GL_CLIENT_ATTRIB_STACK_DEPTH"; case 0x0BC0: return "GL_ALPHA_TEST"; case 0x0BC1: return "GL_ALPHA_TEST_FUNC"; case 0x0BC2: return "GL_ALPHA_TEST_REF"; case 0x0BD0: return "GL_DITHER"; case 0x0BE0: return "GL_BLEND_DST"; case 0x0BE1: return "GL_BLEND_SRC"; case 0x0BE2: return "GL_BLEND"; case 0x0BF0: return "GL_LOGIC_OP_MODE"; case 0x0BF1: return "GL_LOGIC_OP"; case 0x0BF2: return "GL_COLOR_LOGIC_OP"; case 0x0C00: return "GL_AUX_BUFFERS"; case 0x0C01: return "GL_DRAW_BUFFER"; case 0x0C02: return "GL_READ_BUFFER"; case 0x0C10: return "GL_SCISSOR_BOX"; case 0x0C11: return "GL_SCISSOR_TEST"; case 0x0C20: return "GL_INDEX_CLEAR_VALUE"; case 0x0C21: return "GL_INDEX_WRITEMASK"; case 0x0C22: return "GL_COLOR_CLEAR_VALUE"; case 0x0C23: return "GL_COLOR_WRITEMASK"; case 0x0C30: return "GL_INDEX_MODE"; case 0x0C31: return "GL_RGBA_MODE"; case 0x0C32: return "GL_DOUBLEBUFFER"; case 0x0C33: return "GL_STEREO"; case 0x0C40: return "GL_RENDER_MODE"; case 0x0C50: return "GL_PERSPECTIVE_CORRECTION_HINT"; case 0x0C51: return "GL_POINT_SMOOTH_HINT"; case 0x0C52: return "GL_LINE_SMOOTH_HINT"; case 0x0C53: return "GL_POLYGON_SMOOTH_HINT"; case 0x0C54: return "GL_FOG_HINT"; case 0x0C60: return "GL_TEXTURE_GEN_S"; case 0x0C61: return "GL_TEXTURE_GEN_T"; case 0x0C62: return "GL_TEXTURE_GEN_R"; case 0x0C63: return "GL_TEXTURE_GEN_Q"; case 0x0C70: return "GL_PIXEL_MAP_I_TO_I"; case 0x0C71: return "GL_PIXEL_MAP_S_TO_S"; case 0x0C72: return "GL_PIXEL_MAP_I_TO_R"; case 0x0C73: return "GL_PIXEL_MAP_I_TO_G"; case 0x0C74: return "GL_PIXEL_MAP_I_TO_B"; case 0x0C75: return "GL_PIXEL_MAP_I_TO_A"; case 0x0C76: return "GL_PIXEL_MAP_R_TO_R"; case 0x0C77: return "GL_PIXEL_MAP_G_TO_G"; case 0x0C78: return "GL_PIXEL_MAP_B_TO_B"; case 0x0C79: return "GL_PIXEL_MAP_A_TO_A"; case 0x0CB0: return "GL_PIXEL_MAP_I_TO_I_SIZE"; case 0x0CB1: return "GL_PIXEL_MAP_S_TO_S_SIZE"; case 0x0CB2: return "GL_PIXEL_MAP_I_TO_R_SIZE"; case 0x0CB3: return "GL_PIXEL_MAP_I_TO_G_SIZE"; case 0x0CB4: return "GL_PIXEL_MAP_I_TO_B_SIZE"; case 0x0CB5: return "GL_PIXEL_MAP_I_TO_A_SIZE"; case 0x0CB6: return "GL_PIXEL_MAP_R_TO_R_SIZE"; case 0x0CB7: return "GL_PIXEL_MAP_G_TO_G_SIZE"; case 0x0CB8: return "GL_PIXEL_MAP_B_TO_B_SIZE"; case 0x0CB9: return "GL_PIXEL_MAP_A_TO_A_SIZE"; case 0x0CF0: return "GL_UNPACK_SWAP_BYTES"; case 0x0CF1: return "GL_UNPACK_LSB_FIRST"; case 0x0CF2: return "GL_UNPACK_ROW_LENGTH"; case 0x0CF3: return "GL_UNPACK_SKIP_ROWS"; case 0x0CF4: return "GL_UNPACK_SKIP_PIXELS"; case 0x0CF5: return "GL_UNPACK_ALIGNMENT"; case 0x0D00: return "GL_PACK_SWAP_BYTES"; case 0x0D01: return "GL_PACK_LSB_FIRST"; case 0x0D1A: return "GL_BLUE_SCALE"; case 0x0D1B: return "GL_BLUE_BIAS"; case 0x0D1C: return "GL_ALPHA_SCALE"; case 0x0D1D: return "GL_ALPHA_BIAS"; case 0x0D1E: return "GL_DEPTH_SCALE"; case 0x0D1F: return "GL_DEPTH_BIAS"; case 0x0D02: return "GL_PACK_ROW_LENGTH"; case 0x0D03: return "GL_PACK_SKIP_ROWS"; case 0x0D3A: return "GL_MAX_VIEWPORT_DIMS"; case 0x0D3B: return "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"; case 0x0D04: return "GL_PACK_SKIP_PIXELS"; case 0x0D05: return "GL_PACK_ALIGNMENT"; case 0x0D5A: return "GL_ACCUM_BLUE_BITS"; case 0x0D5B: return "GL_ACCUM_ALPHA_BITS"; case 0x0D10: return "GL_MAP_COLOR"; case 0x0D11: return "GL_MAP_STENCIL"; case 0x0D12: return "GL_INDEX_SHIFT"; case 0x0D13: return "GL_INDEX_OFFSET"; case 0x0D14: return "GL_RED_SCALE"; case 0x0D15: return "GL_RED_BIAS"; case 0x0D16: return "GL_ZOOM_X"; case 0x0D17: return "GL_ZOOM_Y"; case 0x0D18: return "GL_GREEN_SCALE"; case 0x0D19: return "GL_GREEN_BIAS"; case 0x0D30: return "GL_MAX_EVAL_ORDER"; case 0x0D31: return "GL_MAX_LIGHTS"; case 0x0D32: return "GL_MAX_CLIP_PLANES"; case 0x0D33: return "GL_MAX_TEXTURE_SIZE"; case 0x0D34: return "GL_MAX_PIXEL_MAP_TABLE"; case 0x0D35: return "GL_MAX_ATTRIB_STACK_DEPTH"; case 0x0D36: return "GL_MAX_MODELVIEW_STACK_DEPTH"; case 0x0D37: return "GL_MAX_NAME_STACK_DEPTH"; case 0x0D38: return "GL_MAX_PROJECTION_STACK_DEPTH"; case 0x0D39: return "GL_MAX_TEXTURE_STACK_DEPTH"; case 0x0D50: return "GL_SUBPIXEL_BITS"; case 0x0D51: return "GL_INDEX_BITS"; case 0x0D52: return "GL_RED_BITS"; case 0x0D53: return "GL_GREEN_BITS"; case 0x0D54: return "GL_BLUE_BITS"; case 0x0D55: return "GL_ALPHA_BITS"; case 0x0D56: return "GL_DEPTH_BITS"; case 0x0D57: return "GL_STENCIL_BITS"; case 0x0D58: return "GL_ACCUM_RED_BITS"; case 0x0D59: return "GL_ACCUM_GREEN_BITS"; case 0x0D70: return "GL_NAME_STACK_DEPTH"; case 0x0D80: return "GL_AUTO_NORMAL"; case 0x0D90: return "GL_MAP1_COLOR_4"; case 0x0D91: return "GL_MAP1_INDEX"; case 0x0D92: return "GL_MAP1_NORMAL"; case 0x0D93: return "GL_MAP1_TEXTURE_COORD_1"; case 0x0D94: return "GL_MAP1_TEXTURE_COORD_2"; case 0x0D95: return "GL_MAP1_TEXTURE_COORD_3"; case 0x0D96: return "GL_MAP1_TEXTURE_COORD_4"; case 0x0D97: return "GL_MAP1_VERTEX_3"; case 0x0D98: return "GL_MAP1_VERTEX_4"; case 0x0DB0: return "GL_MAP2_COLOR_4"; case 0x0DB1: return "GL_MAP2_INDEX"; case 0x0DB2: return "GL_MAP2_NORMAL"; case 0x0DB3: return "GL_MAP2_TEXTURE_COORD_1"; case 0x0DB4: return "GL_MAP2_TEXTURE_COORD_2"; case 0x0DB5: return "GL_MAP2_TEXTURE_COORD_3"; case 0x0DB6: return "GL_MAP2_TEXTURE_COORD_4"; case 0x0DB7: return "GL_MAP2_VERTEX_3"; case 0x0DB8: return "GL_MAP2_VERTEX_4"; case 0x0DD0: return "GL_MAP1_GRID_DOMAIN"; case 0x0DD1: return "GL_MAP1_GRID_SEGMENTS"; case 0x0DD2: return "GL_MAP2_GRID_DOMAIN"; case 0x0DD3: return "GL_MAP2_GRID_SEGMENTS"; case 0x0DE0: return "GL_TEXTURE_1D"; case 0x0DE1: return "GL_TEXTURE_2D"; case 0x0DF0: return "GL_FEEDBACK_BUFFER_POINTER"; case 0x0DF1: return "GL_FEEDBACK_BUFFER_SIZE"; case 0x0DF2: return "GL_FEEDBACK_BUFFER_TYPE"; case 0x0DF3: return "GL_SELECTION_BUFFER_POINTER"; case 0x0DF4: return "GL_SELECTION_BUFFER_SIZE"; case 0x000E: return "GL_PATCHES"; case 0x1A00: return "GL_BITMAP"; case 0x1B00: return "GL_POINT"; case 0x1B01: return "GL_LINE"; case 0x1B02: return "GL_FILL"; case 0x1C00: return "GL_RENDER"; case 0x1C01: return "GL_FEEDBACK"; case 0x1C02: return "GL_SELECT"; case 0x1D00: return "GL_FLAT"; case 0x1D01: return "GL_SMOOTH"; case 0x1E00: return "GL_KEEP"; case 0x1E01: return "GL_REPLACE"; case 0x1E02: return "GL_INCR"; case 0x1E03: return "GL_DECR"; case 0x1F00: return "GL_VENDOR"; case 0x1F01: return "GL_RENDERER"; case 0x1F02: return "GL_VERSION"; case 0x1F03: return "GL_EXTENSIONS"; case 0x2A00: return "GL_POLYGON_OFFSET_UNITS"; case 0x2A01: return "GL_POLYGON_OFFSET_POINT"; case 0x2A02: return "GL_POLYGON_OFFSET_LINE"; case 0x2A2A: return "GL_T2F_C3F_V3F"; case 0x2A2B: return "GL_T2F_N3F_V3F"; case 0x2A2C: return "GL_T2F_C4F_N3F_V3F"; case 0x2A2D: return "GL_T4F_C4F_N3F_V4F"; case 0x2A10: return "GL_R3_G3_B2"; case 0x2A20: return "GL_V2F"; case 0x2A21: return "GL_V3F"; case 0x2A22: return "GL_C4UB_V2F"; case 0x2A23: return "GL_C4UB_V3F"; case 0x2A24: return "GL_C3F_V3F"; case 0x2A25: return "GL_N3F_V3F"; case 0x2A26: return "GL_C4F_N3F_V3F"; case 0x2A27: return "GL_T2F_V3F"; case 0x2A28: return "GL_T4F_V4F"; case 0x2A29: return "GL_T2F_C4UB_V3F"; case 0x8A00: return "GL_VERTEX_ATTRIB_MAP1_APPLE"; case 0x8A0A: return "GL_DRAW_PIXELS_APPLE"; case 0x8A0B: return "GL_FENCE_APPLE"; case 0x8A0C: return "GL_ELEMENT_ARRAY_APPLE"; case 0x8A0D: return "GL_ELEMENT_ARRAY_TYPE_APPLE"; case 0x8A0E: return "GL_ELEMENT_ARRAY_POINTER_APPLE"; case 0x8A0F: return "GL_COLOR_FLOAT_APPLE"; case 0x8A01: return "GL_VERTEX_ATTRIB_MAP2_APPLE"; case 0x8A1A: return "GL_VOLATILE_APPLE"; case 0x8A1B: return "GL_RETAINED_APPLE"; case 0x8A1C: return "GL_UNDEFINED_APPLE"; case 0x8A1D: return "GL_PURGEABLE_APPLE"; case 0x8A1F: return "GL_RGB_422_APPLE"; case 0x8A02: return "GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"; case 0x8A2A: return "GL_UNIFORM_BUFFER_SIZE"; case 0x8A2B: return "GL_MAX_VERTEX_UNIFORM_BLOCKS"; case 0x8A2C: return "GL_MAX_GEOMETRY_UNIFORM_BLOCKS"; case 0x8A2D: return "GL_MAX_FRAGMENT_UNIFORM_BLOCKS"; case 0x8A2E: return "GL_MAX_COMBINED_UNIFORM_BLOCKS"; case 0x8A2F: return "GL_MAX_UNIFORM_BUFFER_BINDINGS"; case 0x8A03: return "GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"; case 0x8A3A: return "GL_UNIFORM_BLOCK_INDEX"; case 0x8A3B: return "GL_UNIFORM_OFFSET"; case 0x8A3C: return "GL_UNIFORM_ARRAY_STRIDE"; case 0x8A3D: return "GL_UNIFORM_MATRIX_STRIDE"; case 0x8A3E: return "GL_UNIFORM_IS_ROW_MAJOR"; case 0x8A3F: return "GL_UNIFORM_BLOCK_BINDING"; case 0x8A04: return "GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"; case 0x8A05: return "GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"; case 0x8A06: return "GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"; case 0x8A07: return "GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"; case 0x8A08: return "GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"; case 0x8A09: return "GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"; case 0x8A11: return "GL_UNIFORM_BUFFER"; case 0x8A12: return "GL_BUFFER_SERIALIZED_MODIFY_APPLE"; case 0x8A13: return "GL_BUFFER_FLUSHING_UNMAP_APPLE"; case 0x8A14: return "GL_AUX_DEPTH_STENCIL_APPLE"; case 0x8A15: return "GL_PACK_ROW_BYTES_APPLE"; case 0x8A16: return "GL_UNPACK_ROW_BYTES_APPLE"; case 0x8A19: return "GL_RELEASED_APPLE"; case 0x8A28: return "GL_UNIFORM_BUFFER_BINDING"; case 0x8A29: return "GL_UNIFORM_BUFFER_START"; case 0x8A30: return "GL_MAX_UNIFORM_BLOCK_SIZE"; case 0x8A31: return "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"; case 0x8A32: return "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"; case 0x8A33: return "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"; case 0x8A34: return "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"; case 0x8A35: return "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"; case 0x8A36: return "GL_ACTIVE_UNIFORM_BLOCKS"; case 0x8A37: return "GL_UNIFORM_TYPE"; case 0x8A38: return "GL_UNIFORM_SIZE"; case 0x8A39: return "GL_UNIFORM_NAME_LENGTH"; case 0x8A40: return "GL_UNIFORM_BLOCK_DATA_SIZE"; case 0x8A41: return "GL_UNIFORM_BLOCK_NAME_LENGTH"; case 0x8A42: return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"; case 0x8A43: return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"; case 0x8A44: return "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"; case 0x8A45: return "GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"; case 0x8A46: return "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"; case 0x8B4A: return "GL_MAX_VERTEX_UNIFORM_COMPONENTS"; case 0x8B4B: return "GL_MAX_VARYING_COMPONENTS"; case 0x8B4C: return "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"; case 0x8B4D: return "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"; case 0x8B4E: return "GL_OBJECT_TYPE_ARB"; case 0x8B4F: return "GL_SHADER_TYPE"; case 0x8B5A: return "GL_FLOAT_MAT2"; case 0x8B5B: return "GL_FLOAT_MAT3"; case 0x8B5C: return "GL_FLOAT_MAT4"; case 0x8B5D: return "GL_SAMPLER_1D"; case 0x8B5E: return "GL_SAMPLER_2D"; case 0x8B5F: return "GL_SAMPLER_3D"; case 0x8B6A: return "GL_FLOAT_MAT4x3"; case 0x8B8A: return "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"; case 0x8B8B: return "GL_FRAGMENT_SHADER_DERIVATIVE_HINT"; case 0x8B8C: return "GL_SHADING_LANGUAGE_VERSION"; case 0x8B8D: return "GL_CURRENT_PROGRAM"; case 0x8B9A: return "GL_IMPLEMENTATION_COLOR_READ_TYPE"; case 0x8B9B: return "GL_IMPLEMENTATION_COLOR_READ_FORMAT"; case 0x8B30: return "GL_FRAGMENT_SHADER"; case 0x8B31: return "GL_VERTEX_SHADER"; case 0x8B40: return "GL_PROGRAM_OBJECT_ARB"; case 0x8B48: return "GL_SHADER_OBJECT_ARB"; case 0x8B49: return "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"; case 0x8B50: return "GL_FLOAT_VEC2"; case 0x8B51: return "GL_FLOAT_VEC3"; case 0x8B52: return "GL_FLOAT_VEC4"; case 0x8B53: return "GL_INT_VEC2"; case 0x8B54: return "GL_INT_VEC3"; case 0x8B55: return "GL_INT_VEC4"; case 0x8B56: return "GL_BOOL"; case 0x8B57: return "GL_BOOL_VEC2"; case 0x8B58: return "GL_BOOL_VEC3"; case 0x8B59: return "GL_BOOL_VEC4"; case 0x8B60: return "GL_SAMPLER_CUBE"; case 0x8B61: return "GL_SAMPLER_1D_SHADOW"; case 0x8B62: return "GL_SAMPLER_2D_SHADOW"; case 0x8B63: return "GL_SAMPLER_2D_RECT"; case 0x8B64: return "GL_SAMPLER_2D_RECT_SHADOW"; case 0x8B65: return "GL_FLOAT_MAT2x3"; case 0x8B66: return "GL_FLOAT_MAT2x4"; case 0x8B67: return "GL_FLOAT_MAT3x2"; case 0x8B68: return "GL_FLOAT_MAT3x4"; case 0x8B69: return "GL_FLOAT_MAT4x2"; case 0x8B80: return "GL_DELETE_STATUS"; case 0x8B81: return "GL_COMPILE_STATUS"; case 0x8B82: return "GL_LINK_STATUS"; case 0x8B83: return "GL_OBJECT_VALIDATE_STATUS_ARB"; case 0x8B84: return "GL_INFO_LOG_LENGTH"; case 0x8B85: return "GL_ATTACHED_SHADERS"; case 0x8B86: return "GL_ACTIVE_UNIFORMS"; case 0x8B87: return "GL_ACTIVE_UNIFORM_MAX_LENGTH"; case 0x8B88: return "GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"; case 0x8B89: return "GL_ACTIVE_ATTRIBUTES"; case 0x8bb0: return "GL_FRAGMENT_PROGRAM_POSITION_MESA"; case 0x8bb1: return "GL_FRAGMENT_PROGRAM_CALLBACK_MESA"; case 0x8bb2: return "GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA"; case 0x8bb3: return "GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA"; case 0x8bb4: return "GL_VERTEX_PROGRAM_POSITION_MESA"; case 0x8bb5: return "GL_VERTEX_PROGRAM_CALLBACK_MESA"; case 0x8bb6: return "GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA"; case 0x8bb7: return "GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA"; case 0x8BC0: return "GL_COUNTER_TYPE_AMD"; case 0x8BC1: return "GL_COUNTER_RANGE_AMD"; case 0x8BC2: return "GL_UNSIGNED_INT64_AMD"; case 0x8BC3: return "GL_PERCENTAGE_AMD"; case 0x8BC4: return "GL_PERFMON_RESULT_AVAILABLE_AMD"; case 0x8BC5: return "GL_PERFMON_RESULT_SIZE_AMD"; case 0x8BC6: return "GL_PERFMON_RESULT_AMD"; case 0x8C1A: return "GL_TEXTURE_2D_ARRAY"; case 0x8C1B: return "GL_PROXY_TEXTURE_2D_ARRAY"; case 0x8C1C: return "GL_TEXTURE_BINDING_1D_ARRAY"; case 0x8C1D: return "GL_TEXTURE_BINDING_2D_ARRAY"; case 0x8C2A: return "GL_TEXTURE_BUFFER"; case 0x8C2B: return "GL_MAX_TEXTURE_BUFFER_SIZE"; case 0x8C2C: return "GL_TEXTURE_BINDING_BUFFER"; case 0x8C2D: return "GL_TEXTURE_BUFFER_DATA_STORE_BINDING"; case 0x8C2E: return "GL_TEXTURE_BUFFER_FORMAT"; case 0x8C2F: return "GL_ANY_SAMPLES_PASSED"; case 0x8C3A: return "GL_R11F_G11F_B10F"; case 0x8C3B: return "GL_UNSIGNED_INT_10F_11F_11F_REV"; case 0x8C3C: return "GL_RGBA_SIGNED_COMPONENTS_EXT"; case 0x8C3D: return "GL_RGB9_E5"; case 0x8C3E: return "GL_UNSIGNED_INT_5_9_9_9_REV"; case 0x8C3F: return "GL_TEXTURE_SHARED_SIZE"; case 0x8C4A: return "GL_COMPRESSED_SLUMINANCE"; case 0x8C4B: return "GL_COMPRESSED_SLUMINANCE_ALPHA"; case 0x8C4C: return "GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"; case 0x8C4D: return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"; case 0x8C4E: return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"; case 0x8C4F: return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"; case 0x8C7F: return "GL_TRANSFORM_FEEDBACK_BUFFER_MODE"; case 0x8C8A: return "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"; case 0x8C8B: return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"; case 0x8C8C: return "GL_INTERLEAVED_ATTRIBS"; case 0x8C8D: return "GL_SEPARATE_ATTRIBS"; case 0x8C8E: return "GL_TRANSFORM_FEEDBACK_BUFFER"; case 0x8C8F: return "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"; case 0x8C10: return "GL_TEXTURE_RED_TYPE"; case 0x8C11: return "GL_TEXTURE_GREEN_TYPE"; case 0x8C12: return "GL_TEXTURE_BLUE_TYPE"; case 0x8C13: return "GL_TEXTURE_ALPHA_TYPE"; case 0x8C14: return "GL_TEXTURE_LUMINANCE_TYPE"; case 0x8C15: return "GL_TEXTURE_INTENSITY_TYPE"; case 0x8C16: return "GL_TEXTURE_DEPTH_TYPE"; case 0x8C17: return "GL_UNSIGNED_NORMALIZED"; case 0x8C18: return "GL_TEXTURE_1D_ARRAY"; case 0x8C19: return "GL_PROXY_TEXTURE_1D_ARRAY"; case 0x8C29: return "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"; case 0x8C36: return "GL_SAMPLE_SHADING"; case 0x8C37: return "GL_MIN_SAMPLE_SHADING_VALUE"; case 0x8C40: return "GL_SRGB"; case 0x8C41: return "GL_SRGB8"; case 0x8C42: return "GL_SRGB_ALPHA"; case 0x8C43: return "GL_SRGB8_ALPHA8"; case 0x8C44: return "GL_SLUMINANCE_ALPHA"; case 0x8C45: return "GL_SLUMINANCE8_ALPHA8"; case 0x8C46: return "GL_SLUMINANCE"; case 0x8C47: return "GL_SLUMINANCE8"; case 0x8C48: return "GL_COMPRESSED_SRGB"; case 0x8C49: return "GL_COMPRESSED_SRGB_ALPHA"; case 0x8C70: return "GL_COMPRESSED_LUMINANCE_LATC1_EXT"; case 0x8C71: return "GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"; case 0x8C72: return "GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"; case 0x8C73: return "GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"; case 0x8C76: return "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"; case 0x8C80: return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"; case 0x8C83: return "GL_TRANSFORM_FEEDBACK_VARYINGS"; case 0x8C84: return "GL_TRANSFORM_FEEDBACK_BUFFER_START"; case 0x8C85: return "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"; case 0x8C87: return "GL_PRIMITIVES_GENERATED"; case 0x8C88: return "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"; case 0x8C89: return "GL_RASTERIZER_DISCARD"; case 0x8CA0: return "GL_POINT_SPRITE_COORD_ORIGIN"; case 0x8CA1: return "GL_LOWER_LEFT"; case 0x8CA2: return "GL_UPPER_LEFT"; case 0x8CA3: return "GL_STENCIL_BACK_REF"; case 0x8CA4: return "GL_STENCIL_BACK_VALUE_MASK"; case 0x8CA5: return "GL_STENCIL_BACK_WRITEMASK"; case 0x8CA6: return "GL_FRAMEBUFFER_BINDING"; case 0x8CA7: return "GL_RENDERBUFFER_BINDING"; case 0x8CA8: return "GL_READ_FRAMEBUFFER"; case 0x8CA9: return "GL_DRAW_FRAMEBUFFER"; case 0x8CAA: return "GL_READ_FRAMEBUFFER_BINDING"; case 0x8CAB: return "GL_RENDERBUFFER_SAMPLES"; case 0x8CAC: return "GL_DEPTH_COMPONENT32F"; case 0x8CAD: return "GL_DEPTH32F_STENCIL8"; case 0x8CD0: return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"; case 0x8CD1: return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"; case 0x8CD2: return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"; case 0x8CD3: return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"; case 0x8CD4: return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"; case 0x8CD5: return "GL_FRAMEBUFFER_COMPLETE"; case 0x8CD6: return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"; case 0x8CD7: return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; case 0x8CD9: return "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"; case 0x8CDA: return "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"; case 0x8CDB: return "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"; case 0x8CDC: return "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"; case 0x8CDD: return "GL_FRAMEBUFFER_UNSUPPORTED"; case 0x8CDF: return "GL_MAX_COLOR_ATTACHMENTS"; case 0x8CE0: return "GL_COLOR_ATTACHMENT0"; case 0x8CE1: return "GL_COLOR_ATTACHMENT1"; case 0x8CE2: return "GL_COLOR_ATTACHMENT2"; case 0x8CE3: return "GL_COLOR_ATTACHMENT3"; case 0x8CE4: return "GL_COLOR_ATTACHMENT4"; case 0x8CE5: return "GL_COLOR_ATTACHMENT5"; case 0x8CE6: return "GL_COLOR_ATTACHMENT6"; case 0x8CE7: return "GL_COLOR_ATTACHMENT7"; case 0x8CE8: return "GL_COLOR_ATTACHMENT8"; case 0x8CE9: return "GL_COLOR_ATTACHMENT9"; case 0x8CEA: return "GL_COLOR_ATTACHMENT10"; case 0x8CEB: return "GL_COLOR_ATTACHMENT11"; case 0x8CEC: return "GL_COLOR_ATTACHMENT12"; case 0x8CED: return "GL_COLOR_ATTACHMENT13"; case 0x8CEE: return "GL_COLOR_ATTACHMENT14"; case 0x8CEF: return "GL_COLOR_ATTACHMENT15"; case 0x8D00: return "GL_DEPTH_ATTACHMENT"; case 0x8D7A: return "GL_LUMINANCE16UI_EXT"; case 0x8D7B: return "GL_LUMINANCE_ALPHA16UI_EXT"; case 0x8D7C: return "GL_RGBA8UI"; case 0x8D7D: return "GL_RGB8UI"; case 0x8D7E: return "GL_ALPHA8UI_EXT"; case 0x8D7F: return "GL_INTENSITY8UI_EXT"; case 0x8D8A: return "GL_ALPHA16I_EXT"; case 0x8D8B: return "GL_INTENSITY16I_EXT"; case 0x8D8C: return "GL_LUMINANCE16I_EXT"; case 0x8D8D: return "GL_LUMINANCE_ALPHA16I_EXT"; case 0x8D8E: return "GL_RGBA8I"; case 0x8D8F: return "GL_RGB8I"; case 0x8D9A: return "GL_BGR_INTEGER"; case 0x8D9B: return "GL_BGRA_INTEGER"; case 0x8D9C: return "GL_LUMINANCE_INTEGER_EXT"; case 0x8D9D: return "GL_LUMINANCE_ALPHA_INTEGER_EXT"; case 0x8D9E: return "GL_RGBA_INTEGER_MODE_EXT"; case 0x8D9F: return "GL_INT_2_10_10_10_REV"; case 0x8D20: return "GL_STENCIL_ATTACHMENT"; case 0x8D40: return "GL_FRAMEBUFFER"; case 0x8D41: return "GL_RENDERBUFFER"; case 0x8D42: return "GL_RENDERBUFFER_WIDTH"; case 0x8D43: return "GL_RENDERBUFFER_HEIGHT"; case 0x8D44: return "GL_RENDERBUFFER_INTERNAL_FORMAT"; case 0x8D46: return "GL_STENCIL_INDEX1"; case 0x8D47: return "GL_STENCIL_INDEX4"; case 0x8D48: return "GL_STENCIL_INDEX8"; case 0x8D49: return "GL_STENCIL_INDEX16"; case 0x8D50: return "GL_RENDERBUFFER_RED_SIZE"; case 0x8D51: return "GL_RENDERBUFFER_GREEN_SIZE"; case 0x8D52: return "GL_RENDERBUFFER_BLUE_SIZE"; case 0x8D53: return "GL_RENDERBUFFER_ALPHA_SIZE"; case 0x8D54: return "GL_RENDERBUFFER_DEPTH_SIZE"; case 0x8D55: return "GL_RENDERBUFFER_STENCIL_SIZE"; case 0x8D56: return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"; case 0x8D57: return "GL_MAX_SAMPLES"; case 0x8D70: return "GL_RGBA32UI"; case 0x8D71: return "GL_RGB32UI"; case 0x8D72: return "GL_ALPHA32UI_EXT"; case 0x8D73: return "GL_INTENSITY32UI_EXT"; case 0x8D74: return "GL_LUMINANCE32UI_EXT"; case 0x8D75: return "GL_LUMINANCE_ALPHA32UI_EXT"; case 0x8D76: return "GL_RGBA16UI"; case 0x8D77: return "GL_RGB16UI"; case 0x8D78: return "GL_ALPHA16UI_EXT"; case 0x8D79: return "GL_INTENSITY16UI_EXT"; case 0x8D80: return "GL_LUMINANCE8UI_EXT"; case 0x8D81: return "GL_LUMINANCE_ALPHA8UI_EXT"; case 0x8D82: return "GL_RGBA32I"; case 0x8D83: return "GL_RGB32I"; case 0x8D84: return "GL_ALPHA32I_EXT"; case 0x8D85: return "GL_INTENSITY32I_EXT"; case 0x8D86: return "GL_LUMINANCE32I_EXT"; case 0x8D87: return "GL_LUMINANCE_ALPHA32I_EXT"; case 0x8D88: return "GL_RGBA16I"; case 0x8D89: return "GL_RGB16I"; case 0x8D90: return "GL_ALPHA8I_EXT"; case 0x8D91: return "GL_INTENSITY8I_EXT"; case 0x8D92: return "GL_LUMINANCE8I_EXT"; case 0x8D93: return "GL_LUMINANCE_ALPHA8I_EXT"; case 0x8D94: return "GL_RED_INTEGER"; case 0x8D95: return "GL_GREEN_INTEGER"; case 0x8D96: return "GL_BLUE_INTEGER"; case 0x8D97: return "GL_ALPHA_INTEGER"; case 0x8D98: return "GL_RGB_INTEGER"; case 0x8D99: return "GL_RGBA_INTEGER"; case 0x8DA7: return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED"; case 0x8DA8: return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"; case 0x8DA9: return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"; case 0x8DAD: return "GL_FLOAT_32_UNSIGNED_INT_24_8_REV"; case 0x8DAE: return "GL_SHADER_INCLUDE_ARB"; case 0x8DB9: return "GL_FRAMEBUFFER_SRGB"; case 0x8DBA: return "GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"; case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; case 0x8DC0: return "GL_SAMPLER_1D_ARRAY"; case 0x8DC1: return "GL_SAMPLER_2D_ARRAY"; case 0x8DC2: return "GL_SAMPLER_BUFFER"; case 0x8DC3: return "GL_SAMPLER_1D_ARRAY_SHADOW"; case 0x8DC4: return "GL_SAMPLER_2D_ARRAY_SHADOW"; case 0x8DC5: return "GL_SAMPLER_CUBE_SHADOW"; case 0x8DC6: return "GL_UNSIGNED_INT_VEC2"; case 0x8DC7: return "GL_UNSIGNED_INT_VEC3"; case 0x8DC8: return "GL_UNSIGNED_INT_VEC4"; case 0x8DC9: return "GL_INT_SAMPLER_1D"; case 0x8DCA: return "GL_INT_SAMPLER_2D"; case 0x8DCB: return "GL_INT_SAMPLER_3D"; case 0x8DCC: return "GL_INT_SAMPLER_CUBE"; case 0x8DCD: return "GL_INT_SAMPLER_2D_RECT"; case 0x8DCE: return "GL_INT_SAMPLER_1D_ARRAY"; case 0x8DCF: return "GL_INT_SAMPLER_2D_ARRAY"; case 0x8DD0: return "GL_INT_SAMPLER_BUFFER"; case 0x8DD1: return "GL_UNSIGNED_INT_SAMPLER_1D"; case 0x8DD2: return "GL_UNSIGNED_INT_SAMPLER_2D"; case 0x8DD3: return "GL_UNSIGNED_INT_SAMPLER_3D"; case 0x8DD4: return "GL_UNSIGNED_INT_SAMPLER_CUBE"; case 0x8DD5: return "GL_UNSIGNED_INT_SAMPLER_2D_RECT"; case 0x8DD6: return "GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"; case 0x8DD7: return "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"; case 0x8DD8: return "GL_UNSIGNED_INT_SAMPLER_BUFFER"; case 0x8DD9: return "GL_GEOMETRY_SHADER"; case 0x8DDA: return "GL_GEOMETRY_VERTICES_OUT_EXT"; case 0x8DDB: return "GL_GEOMETRY_INPUT_TYPE_EXT"; case 0x8DDC: return "GL_GEOMETRY_OUTPUT_TYPE_EXT"; case 0x8DDD: return "GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"; case 0x8DDE: return "GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"; case 0x8DDF: return "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"; case 0x8DE0: return "GL_MAX_GEOMETRY_OUTPUT_VERTICES"; case 0x8DE1: return "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"; case 0x8DE2: return "GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"; case 0x8DE3: return "GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"; case 0x8DE4: return "GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"; case 0x8DE5: return "GL_ACTIVE_SUBROUTINES"; case 0x8DE6: return "GL_ACTIVE_SUBROUTINE_UNIFORMS"; case 0x8DE7: return "GL_MAX_SUBROUTINES"; case 0x8DE8: return "GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"; case 0x8DE9: return "GL_NAMED_STRING_LENGTH_ARB"; case 0x8DEA: return "GL_NAMED_STRING_TYPE_ARB"; case 0x8DED: return "GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"; case 0x8DEE: return "GL_UNIFORM_BUFFER_EXT"; case 0x8DEF: return "GL_UNIFORM_BUFFER_BINDING_EXT"; case 0x8DF0: return "GL_LOW_FLOAT"; case 0x8DF1: return "GL_MEDIUM_FLOAT"; case 0x8DF2: return "GL_HIGH_FLOAT"; case 0x8DF3: return "GL_LOW_INT"; case 0x8DF4: return "GL_MEDIUM_INT"; case 0x8DF5: return "GL_HIGH_INT"; case 0x8DF9: return "GL_NUM_SHADER_BINARY_FORMATS"; case 0x8DFA: return "GL_SHADER_COMPILER"; case 0x8DFB: return "GL_MAX_VERTEX_UNIFORM_VECTORS"; case 0x8DFC: return "GL_MAX_VARYING_VECTORS"; case 0x8DFD: return "GL_MAX_FRAGMENT_UNIFORM_VECTORS"; case 0x8E1E: return "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"; case 0x8E1F: return "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"; case 0x8E2D: return "GL_PROGRAM_MATRIX_EXT"; case 0x8E2E: return "GL_TRANSPOSE_PROGRAM_MATRIX_EXT"; case 0x8E2F: return "GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"; case 0x8E4A: return "GL_NUM_COMPATIBLE_SUBROUTINES"; case 0x8E4B: return "GL_COMPATIBLE_SUBROUTINES"; case 0x8E4C: return "GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"; case 0x8E4D: return "GL_FIRST_VERTEX_CONVENTION"; case 0x8E4E: return "GL_LAST_VERTEX_CONVENTION"; case 0x8E4F: return "GL_PROVOKING_VERTEX"; case 0x8E5A: return "GL_MAX_GEOMETRY_SHADER_INVOCATIONS"; case 0x8E5B: return "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"; case 0x8E5C: return "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"; case 0x8E5D: return "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"; case 0x8E5E: return "GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"; case 0x8E5F: return "GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"; case 0x8E7A: return "GL_ISOLINES"; case 0x8E7B: return "GL_FRACTIONAL_ODD"; case 0x8E7C: return "GL_FRACTIONAL_EVEN"; case 0x8E7D: return "GL_MAX_PATCH_VERTICES"; case 0x8E7E: return "GL_MAX_TESS_GEN_LEVEL"; case 0x8E7F: return "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"; case 0x8E8A: return "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"; case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; case 0x8E13: return "GL_QUERY_WAIT"; case 0x8E14: return "GL_QUERY_NO_WAIT"; case 0x8E15: return "GL_QUERY_BY_REGION_WAIT"; case 0x8E16: return "GL_QUERY_BY_REGION_NO_WAIT"; case 0x8E22: return "GL_TRANSFORM_FEEDBACK"; case 0x8E23: return "GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"; case 0x8E24: return "GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"; case 0x8E25: return "GL_TRANSFORM_FEEDBACK_BINDING"; case 0x8E28: return "GL_TIMESTAMP"; case 0x8E42: return "GL_TEXTURE_SWIZZLE_R"; case 0x8E43: return "GL_TEXTURE_SWIZZLE_G"; case 0x8E44: return "GL_TEXTURE_SWIZZLE_B"; case 0x8E45: return "GL_TEXTURE_SWIZZLE_A"; case 0x8E46: return "GL_TEXTURE_SWIZZLE_RGBA"; case 0x8E47: return "GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"; case 0x8E48: return "GL_ACTIVE_SUBROUTINE_MAX_LENGTH"; case 0x8E49: return "GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"; case 0x8E50: return "GL_SAMPLE_POSITION"; case 0x8E51: return "GL_SAMPLE_MASK"; case 0x8E52: return "GL_SAMPLE_MASK_VALUE"; case 0x8E59: return "GL_MAX_SAMPLE_MASK_WORDS"; case 0x8E70: return "GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"; case 0x8E71: return "GL_MAX_VERTEX_STREAMS"; case 0x8E72: return "GL_PATCH_VERTICES"; case 0x8E73: return "GL_PATCH_DEFAULT_INNER_LEVEL"; case 0x8E74: return "GL_PATCH_DEFAULT_OUTER_LEVEL"; case 0x8E75: return "GL_TESS_CONTROL_OUTPUT_VERTICES"; case 0x8E76: return "GL_TESS_GEN_MODE"; case 0x8E77: return "GL_TESS_GEN_SPACING"; case 0x8E78: return "GL_TESS_GEN_VERTEX_ORDER"; case 0x8E79: return "GL_TESS_GEN_POINT_MODE"; case 0x8E80: return "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"; case 0x8E81: return "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"; case 0x8E82: return "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"; case 0x8E83: return "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"; case 0x8E84: return "GL_MAX_TESS_PATCH_COMPONENTS"; case 0x8E85: return "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"; case 0x8E86: return "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"; case 0x8E87: return "GL_TESS_EVALUATION_SHADER"; case 0x8E88: return "GL_TESS_CONTROL_SHADER"; case 0x8E89: return "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"; case 0x8F3A: return "GL_IMAGE_BINDING_NAME_EXT"; case 0x8F3B: return "GL_IMAGE_BINDING_LEVEL_EXT"; case 0x8F3C: return "GL_IMAGE_BINDING_LAYERED_EXT"; case 0x8F3D: return "GL_IMAGE_BINDING_LAYER_EXT"; case 0x8F3E: return "GL_IMAGE_BINDING_ACCESS_EXT"; case 0x8F3F: return "GL_DRAW_INDIRECT_BUFFER"; case 0x8F4A: return "GL_DOUBLE_MAT2x4"; case 0x8F4B: return "GL_DOUBLE_MAT3x2"; case 0x8F4C: return "GL_DOUBLE_MAT3x4"; case 0x8F4D: return "GL_DOUBLE_MAT4x2"; case 0x8F4E: return "GL_DOUBLE_MAT4x3"; case 0x8F9A: return "GL_RGB16_SNORM"; case 0x8F9B: return "GL_RGBA16_SNORM"; case 0x8F9C: return "GL_SIGNED_NORMALIZED"; case 0x8F9D: return "GL_PRIMITIVE_RESTART"; case 0x8F9E: return "GL_PRIMITIVE_RESTART_INDEX"; case 0x8F36: return "GL_COPY_READ_BUFFER"; case 0x8F37: return "GL_COPY_WRITE_BUFFER"; case 0x8F38: return "GL_MAX_IMAGE_UNITS_EXT"; case 0x8F39: return "GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"; case 0x8F43: return "GL_DRAW_INDIRECT_BUFFER_BINDING"; case 0x8F46: return "GL_DOUBLE_MAT2"; case 0x8F47: return "GL_DOUBLE_MAT3"; case 0x8F48: return "GL_DOUBLE_MAT4"; case 0x8F49: return "GL_DOUBLE_MAT2x3"; case 0x8F90: return "GL_RED_SNORM"; case 0x8F91: return "GL_RG_SNORM"; case 0x8F92: return "GL_RGB_SNORM"; case 0x8F93: return "GL_RGBA_SNORM"; case 0x8F94: return "GL_R8_SNORM"; case 0x8F95: return "GL_RG8_SNORM"; case 0x8F96: return "GL_RGB8_SNORM"; case 0x8F97: return "GL_RGBA8_SNORM"; case 0x8F98: return "GL_R16_SNORM"; case 0x8F99: return "GL_RG16_SNORM"; case 0x8FFC: return "GL_DOUBLE_VEC2"; case 0x8FFD: return "GL_DOUBLE_VEC3"; case 0x8FFE: return "GL_DOUBLE_VEC4"; case 0x040A: return "GL_AUX1"; case 0x040B: return "GL_AUX2"; case 0x040C: return "GL_AUX3"; case 0x80A0: return "GL_SAMPLE_COVERAGE"; case 0x80A1: return "GL_1PASS_EXT"; case 0x80A2: return "GL_2PASS_0_EXT"; case 0x80A3: return "GL_2PASS_1_EXT"; case 0x80A4: return "GL_4PASS_0_EXT"; case 0x80A5: return "GL_4PASS_1_EXT"; case 0x80A6: return "GL_4PASS_2_EXT"; case 0x80A7: return "GL_4PASS_3_EXT"; case 0x80A8: return "GL_SAMPLE_BUFFERS"; case 0x80A9: return "GL_SAMPLES"; case 0x80AA: return "GL_SAMPLE_COVERAGE_VALUE"; case 0x80AB: return "GL_SAMPLE_COVERAGE_INVERT"; case 0x80AC: return "GL_SAMPLE_PATTERN_EXT"; case 0x80AD: return "GL_LINEAR_SHARPEN_SGIS"; case 0x80AE: return "GL_LINEAR_SHARPEN_ALPHA_SGIS"; case 0x80AF: return "GL_LINEAR_SHARPEN_COLOR_SGIS"; case 0x80B0: return "GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"; case 0x80B1: return "GL_COLOR_MATRIX"; case 0x80B2: return "GL_COLOR_MATRIX_STACK_DEPTH"; case 0x80B3: return "GL_MAX_COLOR_MATRIX_STACK_DEPTH"; case 0x80B4: return "GL_POST_COLOR_MATRIX_RED_SCALE"; case 0x80B5: return "GL_POST_COLOR_MATRIX_GREEN_SCALE"; case 0x80B6: return "GL_POST_COLOR_MATRIX_BLUE_SCALE"; case 0x80B7: return "GL_POST_COLOR_MATRIX_ALPHA_SCALE"; case 0x80B8: return "GL_POST_COLOR_MATRIX_RED_BIAS"; case 0x80B9: return "GL_POST_COLOR_MATRIX_GREEN_BIAS"; case 0x80BA: return "GL_POST_COLOR_MATRIX_BLUE_BIAS"; case 0x80BB: return "GL_POST_COLOR_MATRIX_ALPHA_BIAS"; case 0x80BC: return "GL_TEXTURE_COLOR_TABLE_SGI"; case 0x80BD: return "GL_PROXY_TEXTURE_COLOR_TABLE_SGI"; case 0x80BF: return "GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"; case 0x80C8: return "GL_BLEND_DST_RGB"; case 0x80C9: return "GL_BLEND_SRC_RGB"; case 0x80CA: return "GL_BLEND_DST_ALPHA"; case 0x80CB: return "GL_BLEND_SRC_ALPHA"; case 0x80CC: return "GL_422_EXT"; case 0x80CD: return "GL_422_REV_EXT"; case 0x80CE: return "GL_422_AVERAGE_EXT"; case 0x80CF: return "GL_422_REV_AVERAGE_EXT"; case 0x80D0: return "GL_COLOR_TABLE"; case 0x80D1: return "GL_POST_CONVOLUTION_COLOR_TABLE"; case 0x80D2: return "GL_POST_COLOR_MATRIX_COLOR_TABLE"; case 0x80D3: return "GL_PROXY_COLOR_TABLE"; case 0x80D4: return "GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"; case 0x80D5: return "GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"; case 0x80D6: return "GL_COLOR_TABLE_SCALE"; case 0x80D7: return "GL_COLOR_TABLE_BIAS"; case 0x80D8: return "GL_COLOR_TABLE_FORMAT"; case 0x80D9: return "GL_COLOR_TABLE_WIDTH"; case 0x80DA: return "GL_COLOR_TABLE_RED_SIZE"; case 0x80DB: return "GL_COLOR_TABLE_GREEN_SIZE"; case 0x80DC: return "GL_COLOR_TABLE_BLUE_SIZE"; case 0x80DD: return "GL_COLOR_TABLE_ALPHA_SIZE"; case 0x80DE: return "GL_COLOR_TABLE_LUMINANCE_SIZE"; case 0x80DF: return "GL_COLOR_TABLE_INTENSITY_SIZE"; case 0x80E0: return "GL_BGR"; case 0x80E1: return "GL_BGRA"; case 0x80E2: return "GL_COLOR_INDEX1_EXT"; case 0x80E3: return "GL_COLOR_INDEX2_EXT"; case 0x80E4: return "GL_COLOR_INDEX4_EXT"; case 0x80E5: return "GL_COLOR_INDEX8_EXT"; case 0x80E6: return "GL_COLOR_INDEX12_EXT"; case 0x80E7: return "GL_COLOR_INDEX16_EXT"; case 0x80E8: return "GL_MAX_ELEMENTS_VERTICES"; case 0x80E9: return "GL_MAX_ELEMENTS_INDICES"; case 0x80EA: return "GL_PHONG_WIN"; case 0x80EB: return "GL_PHONG_HINT_WIN"; case 0x80EC: return "GL_FOG_SPECULAR_TEXTURE_WIN"; case 0x80ED: return "GL_TEXTURE_INDEX_SIZE_EXT"; case 0x80F0: return "GL_CLIP_VOLUME_CLIPPING_HINT_EXT"; case 0x81A5: return "GL_DEPTH_COMPONENT16"; case 0x81A6: return "GL_DEPTH_COMPONENT24"; case 0x81A7: return "GL_DEPTH_COMPONENT32"; case 0x81A8: return "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"; case 0x81A9: return "GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"; case 0x81AA: return "GL_CULL_VERTEX_EXT"; case 0x81AB: return "GL_CULL_VERTEX_EYE_POSITION_EXT"; case 0x81AC: return "GL_CULL_VERTEX_OBJECT_POSITION_EXT"; case 0x81AD: return "GL_IUI_V2F_EXT"; case 0x81AE: return "GL_IUI_V3F_EXT"; case 0x81AF: return "GL_IUI_N3F_V2F_EXT"; case 0x81B0: return "GL_IUI_N3F_V3F_EXT"; case 0x81B1: return "GL_T2F_IUI_V2F_EXT"; case 0x81B2: return "GL_T2F_IUI_V3F_EXT"; case 0x81B3: return "GL_T2F_IUI_N3F_V2F_EXT"; case 0x81B4: return "GL_T2F_IUI_N3F_V3F_EXT"; case 0x81B5: return "GL_INDEX_TEST_EXT"; case 0x81B6: return "GL_INDEX_TEST_FUNC_EXT"; case 0x81B7: return "GL_INDEX_TEST_REF_EXT"; case 0x81B8: return "GL_INDEX_MATERIAL_EXT"; case 0x81B9: return "GL_INDEX_MATERIAL_PARAMETER_EXT"; case 0x81BA: return "GL_INDEX_MATERIAL_FACE_EXT"; case 0x81D4: return "GL_WRAP_BORDER_SUN"; case 0x81D5: return "GL_UNPACK_CONSTANT_DATA_SUNX"; case 0x81D6: return "GL_TEXTURE_CONSTANT_DATA_SUNX"; case 0x81D7: return "GL_TRIANGLE_LIST_SUN"; case 0x81D8: return "GL_REPLACEMENT_CODE_SUN"; case 0x81D9: return "GL_GLOBAL_ALPHA_SUN"; case 0x81DA: return "GL_GLOBAL_ALPHA_FACTOR_SUN"; case 0x81EF: return "GL_TEXTURE_COLOR_WRITEMASK_SGIS"; case 0x81F0: return "GL_EYE_DISTANCE_TO_POINT_SGIS"; case 0x81F1: return "GL_OBJECT_DISTANCE_TO_POINT_SGIS"; case 0x81F2: return "GL_EYE_DISTANCE_TO_LINE_SGIS"; case 0x81F3: return "GL_OBJECT_DISTANCE_TO_LINE_SGIS"; case 0x81F4: return "GL_EYE_POINT_SGIS"; case 0x81F5: return "GL_OBJECT_POINT_SGIS"; case 0x81F6: return "GL_EYE_LINE_SGIS"; case 0x81F7: return "GL_OBJECT_LINE_SGIS"; case 0x81F8: return "GL_LIGHT_MODEL_COLOR_CONTROL"; case 0x81F9: return "GL_SINGLE_COLOR"; case 0x81FA: return "GL_SEPARATE_SPECULAR_COLOR"; case 0x81FB: return "GL_SHARED_TEXTURE_PALETTE_EXT"; case 0x83A0: return "GL_RGB_S3TC"; case 0x83A1: return "GL_RGB4_S3TC"; case 0x83A2: return "GL_RGBA_S3TC"; case 0x83A3: return "GL_RGBA4_S3TC"; case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; case 0x83F4: return "GL_PARALLEL_ARRAYS_INTEL"; case 0x83F5: return "GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"; case 0x83F6: return "GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"; case 0x83F7: return "GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"; case 0x83F8: return "GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"; case 0x84C0: return "GL_TEXTURE0"; case 0x84C1: return "GL_TEXTURE1"; case 0x84C2: return "GL_TEXTURE2"; case 0x84C3: return "GL_TEXTURE3"; case 0x84C4: return "GL_TEXTURE4"; case 0x84C5: return "GL_TEXTURE5"; case 0x84C6: return "GL_TEXTURE6"; case 0x84C7: return "GL_TEXTURE7"; case 0x84C8: return "GL_TEXTURE8"; case 0x84C9: return "GL_TEXTURE9"; case 0x84CA: return "GL_TEXTURE10"; case 0x84CB: return "GL_TEXTURE11"; case 0x84CC: return "GL_TEXTURE12"; case 0x84CD: return "GL_TEXTURE13"; case 0x84CE: return "GL_TEXTURE14"; case 0x84CF: return "GL_TEXTURE15"; case 0x84D0: return "GL_TEXTURE16"; case 0x84D1: return "GL_TEXTURE17"; case 0x84D2: return "GL_TEXTURE18"; case 0x84D3: return "GL_TEXTURE19"; case 0x84D4: return "GL_TEXTURE20"; case 0x84D5: return "GL_TEXTURE21"; case 0x84D6: return "GL_TEXTURE22"; case 0x84D7: return "GL_TEXTURE23"; case 0x84D8: return "GL_TEXTURE24"; case 0x84D9: return "GL_TEXTURE25"; case 0x84DA: return "GL_TEXTURE26"; case 0x84DB: return "GL_TEXTURE27"; case 0x84DC: return "GL_TEXTURE28"; case 0x84DD: return "GL_TEXTURE29"; case 0x84DE: return "GL_TEXTURE30"; case 0x84DF: return "GL_TEXTURE31"; case 0x84E0: return "GL_ACTIVE_TEXTURE"; case 0x84E1: return "GL_CLIENT_ACTIVE_TEXTURE"; case 0x84E2: return "GL_MAX_TEXTURE_UNITS"; case 0x84E3: return "GL_TRANSPOSE_MODELVIEW_MATRIX"; case 0x84E4: return "GL_TRANSPOSE_PROJECTION_MATRIX"; case 0x84E5: return "GL_TRANSPOSE_TEXTURE_MATRIX"; case 0x84E6: return "GL_TRANSPOSE_COLOR_MATRIX"; case 0x84E7: return "GL_SUBTRACT"; case 0x84E8: return "GL_MAX_RENDERBUFFER_SIZE"; case 0x84E9: return "GL_COMPRESSED_ALPHA"; case 0x84EA: return "GL_COMPRESSED_LUMINANCE"; case 0x84EB: return "GL_COMPRESSED_LUMINANCE_ALPHA"; case 0x84EC: return "GL_COMPRESSED_INTENSITY"; case 0x84ED: return "GL_COMPRESSED_RGB"; case 0x84EE: return "GL_COMPRESSED_RGBA"; case 0x84EF: return "GL_TEXTURE_COMPRESSION_HINT"; case 0x84F0: return "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"; case 0x84F1: return "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"; case 0x84F5: return "GL_TEXTURE_RECTANGLE"; case 0x84F6: return "GL_TEXTURE_BINDING_RECTANGLE"; case 0x84F7: return "GL_PROXY_TEXTURE_RECTANGLE"; case 0x84F8: return "GL_MAX_RECTANGLE_TEXTURE_SIZE"; case 0x84F9: return "GL_DEPTH_STENCIL"; case 0x84FA: return "GL_UNSIGNED_INT_24_8"; case 0x84FD: return "GL_MAX_TEXTURE_LOD_BIAS"; case 0x84FE: return "GL_TEXTURE_MAX_ANISOTROPY_EXT"; case 0x84FF: return "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"; case 0x85AE: return "GL_PERTURB_EXT"; case 0x85AF: return "GL_TEXTURE_NORMAL_EXT"; case 0x85B0: return "GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"; case 0x85B1: return "GL_TRANSFORM_HINT_APPLE"; case 0x85B2: return "GL_UNPACK_CLIENT_STORAGE_APPLE"; case 0x85B3: return "GL_BUFFER_OBJECT_APPLE"; case 0x85B4: return "GL_STORAGE_CLIENT_APPLE"; case 0x85B5: return "GL_VERTEX_ARRAY_BINDING"; case 0x85B7: return "GL_TEXTURE_RANGE_LENGTH_APPLE"; case 0x85B8: return "GL_TEXTURE_RANGE_POINTER_APPLE"; case 0x85B9: return "GL_YCBCR_422_APPLE"; case 0x85BA: return "GL_UNSIGNED_SHORT_8_8_MESA"; case 0x85BB: return "GL_UNSIGNED_SHORT_8_8_REV_MESA"; case 0x85BC: return "GL_TEXTURE_STORAGE_HINT_APPLE"; case 0x85BD: return "GL_STORAGE_PRIVATE_APPLE"; case 0x85BE: return "GL_STORAGE_CACHED_APPLE"; case 0x85BF: return "GL_STORAGE_SHARED_APPLE"; case 0x85C0: return "GL_REPLACEMENT_CODE_ARRAY_SUN"; case 0x85C1: return "GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"; case 0x85C2: return "GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"; case 0x85C3: return "GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"; case 0x85C4: return "GL_R1UI_V3F_SUN"; case 0x85C5: return "GL_R1UI_C4UB_V3F_SUN"; case 0x85C6: return "GL_R1UI_C3F_V3F_SUN"; case 0x85C7: return "GL_R1UI_N3F_V3F_SUN"; case 0x85C8: return "GL_R1UI_C4F_N3F_V3F_SUN"; case 0x85C9: return "GL_R1UI_T2F_V3F_SUN"; case 0x85CA: return "GL_R1UI_T2F_N3F_V3F_SUN"; case 0x85CB: return "GL_R1UI_T2F_C4F_N3F_V3F_SUN"; case 0x85CC: return "GL_SLICE_ACCUM_SUN"; case 0x86A0: return "GL_TEXTURE_COMPRESSED_IMAGE_SIZE"; case 0x86A1: return "GL_TEXTURE_COMPRESSED"; case 0x86A2: return "GL_NUM_COMPRESSED_TEXTURE_FORMATS"; case 0x86A3: return "GL_COMPRESSED_TEXTURE_FORMATS"; case 0x86A4: return "GL_MAX_VERTEX_UNITS_ARB"; case 0x86A5: return "GL_ACTIVE_VERTEX_UNITS_ARB"; case 0x86A6: return "GL_WEIGHT_SUM_UNITY_ARB"; case 0x86A7: return "GL_VERTEX_BLEND_ARB"; case 0x86A8: return "GL_CURRENT_WEIGHT_ARB"; case 0x86A9: return "GL_WEIGHT_ARRAY_TYPE_ARB"; case 0x86AA: return "GL_WEIGHT_ARRAY_STRIDE_ARB"; case 0x86AB: return "GL_WEIGHT_ARRAY_SIZE_ARB"; case 0x86AC: return "GL_WEIGHT_ARRAY_POINTER_ARB"; case 0x86AD: return "GL_WEIGHT_ARRAY_ARB"; case 0x86AE: return "GL_DOT3_RGB"; case 0x86AF: return "GL_DOT3_RGBA"; case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; case 0x86B2: return "GL_MULTISAMPLE_3DFX"; case 0x86B3: return "GL_SAMPLE_BUFFERS_3DFX"; case 0x86B4: return "GL_SAMPLES_3DFX"; case 0x87A0: return "GL_OUTPUT_TEXTURE_COORD3_EXT"; case 0x87A1: return "GL_OUTPUT_TEXTURE_COORD4_EXT"; case 0x87A2: return "GL_OUTPUT_TEXTURE_COORD5_EXT"; case 0x87A3: return "GL_OUTPUT_TEXTURE_COORD6_EXT"; case 0x87A4: return "GL_OUTPUT_TEXTURE_COORD7_EXT"; case 0x87A5: return "GL_OUTPUT_TEXTURE_COORD8_EXT"; case 0x87A6: return "GL_OUTPUT_TEXTURE_COORD9_EXT"; case 0x87A7: return "GL_OUTPUT_TEXTURE_COORD10_EXT"; case 0x87A8: return "GL_OUTPUT_TEXTURE_COORD11_EXT"; case 0x87A9: return "GL_OUTPUT_TEXTURE_COORD12_EXT"; case 0x87AA: return "GL_OUTPUT_TEXTURE_COORD13_EXT"; case 0x87AB: return "GL_OUTPUT_TEXTURE_COORD14_EXT"; case 0x87AC: return "GL_OUTPUT_TEXTURE_COORD15_EXT"; case 0x87AD: return "GL_OUTPUT_TEXTURE_COORD16_EXT"; case 0x87AE: return "GL_OUTPUT_TEXTURE_COORD17_EXT"; case 0x87AF: return "GL_OUTPUT_TEXTURE_COORD18_EXT"; case 0x87B0: return "GL_OUTPUT_TEXTURE_COORD19_EXT"; case 0x87B1: return "GL_OUTPUT_TEXTURE_COORD20_EXT"; case 0x87B2: return "GL_OUTPUT_TEXTURE_COORD21_EXT"; case 0x87B3: return "GL_OUTPUT_TEXTURE_COORD22_EXT"; case 0x87B4: return "GL_OUTPUT_TEXTURE_COORD23_EXT"; case 0x87B5: return "GL_OUTPUT_TEXTURE_COORD24_EXT"; case 0x87B6: return "GL_OUTPUT_TEXTURE_COORD25_EXT"; case 0x87B7: return "GL_OUTPUT_TEXTURE_COORD26_EXT"; case 0x87B8: return "GL_OUTPUT_TEXTURE_COORD27_EXT"; case 0x87B9: return "GL_OUTPUT_TEXTURE_COORD28_EXT"; case 0x87BA: return "GL_OUTPUT_TEXTURE_COORD29_EXT"; case 0x87BB: return "GL_OUTPUT_TEXTURE_COORD30_EXT"; case 0x87BC: return "GL_OUTPUT_TEXTURE_COORD31_EXT"; case 0x87BD: return "GL_OUTPUT_FOG_EXT"; case 0x87BE: return "GL_SCALAR_EXT"; case 0x87BF: return "GL_VECTOR_EXT"; case 0x87C0: return "GL_MATRIX_EXT"; case 0x87C1: return "GL_VARIANT_EXT"; case 0x87C2: return "GL_INVARIANT_EXT"; case 0x87C3: return "GL_LOCAL_CONSTANT_EXT"; case 0x87C4: return "GL_LOCAL_EXT"; case 0x87C5: return "GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"; case 0x87C6: return "GL_MAX_VERTEX_SHADER_VARIANTS_EXT"; case 0x87C7: return "GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"; case 0x87C8: return "GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"; case 0x87C9: return "GL_MAX_VERTEX_SHADER_LOCALS_EXT"; case 0x87CA: return "GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"; case 0x87CB: return "GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"; case 0x87CC: return "GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"; case 0x87CD: return "GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"; case 0x87CE: return "GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"; case 0x87CF: return "GL_VERTEX_SHADER_INSTRUCTIONS_EXT"; case 0x87D0: return "GL_VERTEX_SHADER_VARIANTS_EXT"; case 0x87D1: return "GL_VERTEX_SHADER_INVARIANTS_EXT"; case 0x87D2: return "GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"; case 0x87D3: return "GL_VERTEX_SHADER_LOCALS_EXT"; case 0x87D4: return "GL_VERTEX_SHADER_OPTIMIZED_EXT"; case 0x87D5: return "GL_X_EXT"; case 0x87D6: return "GL_Y_EXT"; case 0x87D7: return "GL_Z_EXT"; case 0x87D8: return "GL_W_EXT"; case 0x87D9: return "GL_NEGATIVE_X_EXT"; case 0x87DA: return "GL_NEGATIVE_Y_EXT"; case 0x87DB: return "GL_NEGATIVE_Z_EXT"; case 0x87DC: return "GL_NEGATIVE_W_EXT"; case 0x87DD: return "GL_ZERO_EXT"; case 0x87DE: return "GL_ONE_EXT"; case 0x87DF: return "GL_NEGATIVE_ONE_EXT"; case 0x87E0: return "GL_NORMALIZED_RANGE_EXT"; case 0x87E1: return "GL_FULL_RANGE_EXT"; case 0x87E2: return "GL_CURRENT_VERTEX_EXT"; case 0x87E3: return "GL_MVP_MATRIX_EXT"; case 0x87E4: return "GL_VARIANT_VALUE_EXT"; case 0x87E5: return "GL_VARIANT_DATATYPE_EXT"; case 0x87E6: return "GL_VARIANT_ARRAY_STRIDE_EXT"; case 0x87E7: return "GL_VARIANT_ARRAY_TYPE_EXT"; case 0x87E8: return "GL_VARIANT_ARRAY_EXT"; case 0x87E9: return "GL_VARIANT_ARRAY_POINTER_EXT"; case 0x87EA: return "GL_INVARIANT_VALUE_EXT"; case 0x87EB: return "GL_INVARIANT_DATATYPE_EXT"; case 0x87EC: return "GL_LOCAL_CONSTANT_VALUE_EXT"; case 0x87ED: return "GL_LOCAL_CONSTANT_DATATYPE_EXT"; case 0x87FE: return "GL_NUM_PROGRAM_BINARY_FORMATS"; case 0x87FF: return "GL_PROGRAM_BINARY_FORMATS"; case 0x88A0: return "GL_PROGRAM_INSTRUCTIONS_ARB"; case 0x88A1: return "GL_MAX_PROGRAM_INSTRUCTIONS_ARB"; case 0x88A2: return "GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"; case 0x88A3: return "GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"; case 0x88A4: return "GL_PROGRAM_TEMPORARIES_ARB"; case 0x88A5: return "GL_MAX_PROGRAM_TEMPORARIES_ARB"; case 0x88A6: return "GL_PROGRAM_NATIVE_TEMPORARIES_ARB"; case 0x88A7: return "GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"; case 0x88A8: return "GL_PROGRAM_PARAMETERS_ARB"; case 0x88A9: return "GL_MAX_PROGRAM_PARAMETERS_ARB"; case 0x88AA: return "GL_PROGRAM_NATIVE_PARAMETERS_ARB"; case 0x88AB: return "GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"; case 0x88AC: return "GL_PROGRAM_ATTRIBS_ARB"; case 0x88AD: return "GL_MAX_PROGRAM_ATTRIBS_ARB"; case 0x88AE: return "GL_PROGRAM_NATIVE_ATTRIBS_ARB"; case 0x88AF: return "GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"; case 0x88B0: return "GL_PROGRAM_ADDRESS_REGISTERS_ARB"; case 0x88B1: return "GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"; case 0x88B2: return "GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"; case 0x88B3: return "GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"; case 0x88B4: return "GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"; case 0x88B5: return "GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"; case 0x88B6: return "GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"; case 0x88B7: return "GL_TRANSPOSE_CURRENT_MATRIX_ARB"; case 0x88B8: return "GL_READ_ONLY"; case 0x88B9: return "GL_WRITE_ONLY"; case 0x88BA: return "GL_READ_WRITE"; case 0x88BB: return "GL_BUFFER_ACCESS"; case 0x88BC: return "GL_BUFFER_MAPPED"; case 0x88BD: return "GL_BUFFER_MAP_POINTER"; case 0x88BF: return "GL_TIME_ELAPSED"; case 0x88C0: return "GL_MATRIX0_ARB"; case 0x88C1: return "GL_MATRIX1_ARB"; case 0x88C2: return "GL_MATRIX2_ARB"; case 0x88C3: return "GL_MATRIX3_ARB"; case 0x88C4: return "GL_MATRIX4_ARB"; case 0x88C5: return "GL_MATRIX5_ARB"; case 0x88C6: return "GL_MATRIX6_ARB"; case 0x88C7: return "GL_MATRIX7_ARB"; case 0x88C8: return "GL_MATRIX8_ARB"; case 0x88C9: return "GL_MATRIX9_ARB"; case 0x88CA: return "GL_MATRIX10_ARB"; case 0x88CB: return "GL_MATRIX11_ARB"; case 0x88CC: return "GL_MATRIX12_ARB"; case 0x88CD: return "GL_MATRIX13_ARB"; case 0x88CE: return "GL_MATRIX14_ARB"; case 0x88CF: return "GL_MATRIX15_ARB"; case 0x88D0: return "GL_MATRIX16_ARB"; case 0x88D1: return "GL_MATRIX17_ARB"; case 0x88D2: return "GL_MATRIX18_ARB"; case 0x88D3: return "GL_MATRIX19_ARB"; case 0x88D4: return "GL_MATRIX20_ARB"; case 0x88D5: return "GL_MATRIX21_ARB"; case 0x88D6: return "GL_MATRIX22_ARB"; case 0x88D7: return "GL_MATRIX23_ARB"; case 0x88D8: return "GL_MATRIX24_ARB"; case 0x88D9: return "GL_MATRIX25_ARB"; case 0x88DA: return "GL_MATRIX26_ARB"; case 0x88DB: return "GL_MATRIX27_ARB"; case 0x88DC: return "GL_MATRIX28_ARB"; case 0x88DD: return "GL_MATRIX29_ARB"; case 0x88DE: return "GL_MATRIX30_ARB"; case 0x88DF: return "GL_MATRIX31_ARB"; case 0x88E0: return "GL_STREAM_DRAW"; case 0x88E1: return "GL_STREAM_READ"; case 0x88E2: return "GL_STREAM_COPY"; case 0x88E4: return "GL_STATIC_DRAW"; case 0x88E5: return "GL_STATIC_READ"; case 0x88E6: return "GL_STATIC_COPY"; case 0x88E8: return "GL_DYNAMIC_DRAW"; case 0x88E9: return "GL_DYNAMIC_READ"; case 0x88EA: return "GL_DYNAMIC_COPY"; case 0x88EB: return "GL_PIXEL_PACK_BUFFER"; case 0x88EC: return "GL_PIXEL_UNPACK_BUFFER"; case 0x88ED: return "GL_PIXEL_PACK_BUFFER_BINDING"; case 0x88EF: return "GL_PIXEL_UNPACK_BUFFER_BINDING"; case 0x88F0: return "GL_DEPTH24_STENCIL8"; case 0x88F1: return "GL_TEXTURE_STENCIL_SIZE"; case 0x88F2: return "GL_STENCIL_TAG_BITS_EXT"; case 0x88F3: return "GL_STENCIL_CLEAR_TAG_VALUE_EXT"; case 0x88F9: return "GL_SRC1_COLOR"; case 0x88FA: return "GL_ONE_MINUS_SRC1_COLOR"; case 0x88FB: return "GL_ONE_MINUS_SRC1_ALPHA"; case 0x88FC: return "GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"; case 0x88FD: return "GL_VERTEX_ATTRIB_ARRAY_INTEGER"; case 0x88FE: return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR"; case 0x88FF: return "GL_MAX_ARRAY_TEXTURE_LAYERS"; case 0x0100: return "GL_ACCUM"; case 0x0101: return "GL_LOAD"; case 0x0102: return "GL_RETURN"; case 0x0103: return "GL_MULT"; case 0x0104: return "GL_ADD"; case 0x140A: return "GL_DOUBLE"; case 0x140B: return "GL_HALF_FLOAT"; case 0x140C: return "GL_FIXED"; case 0x150A: return "GL_INVERT"; case 0x150B: return "GL_OR_REVERSE"; case 0x150C: return "GL_COPY_INVERTED"; case 0x150D: return "GL_OR_INVERTED"; case 0x150E: return "GL_NAND"; case 0x150F: return "GL_SET"; case 0x190A: return "GL_LUMINANCE_ALPHA"; case 0x0200: return "GL_NEVER"; case 0x0201: return "GL_LESS"; case 0x0202: return "GL_EQUAL"; case 0x0203: return "GL_LEQUAL"; case 0x0204: return "GL_GREATER"; case 0x0205: return "GL_NOTEQUAL"; case 0x0206: return "GL_GEQUAL"; case 0x0207: return "GL_ALWAYS"; case 0x0300: return "GL_SRC_COLOR"; case 0x0301: return "GL_ONE_MINUS_SRC_COLOR"; case 0x0302: return "GL_SRC_ALPHA"; case 0x0303: return "GL_ONE_MINUS_SRC_ALPHA"; case 0x0304: return "GL_DST_ALPHA"; case 0x0305: return "GL_ONE_MINUS_DST_ALPHA"; case 0x0306: return "GL_DST_COLOR"; case 0x0307: return "GL_ONE_MINUS_DST_COLOR"; case 0x0308: return "GL_SRC_ALPHA_SATURATE"; case 0x0400: return "GL_FRONT_LEFT"; case 0x0401: return "GL_FRONT_RIGHT"; case 0x0402: return "GL_BACK_LEFT"; case 0x0403: return "GL_BACK_RIGHT"; case 0x0404: return "GL_FRONT"; case 0x0405: return "GL_BACK"; case 0x0406: return "GL_LEFT"; case 0x0407: return "GL_RIGHT"; case 0x0408: return "GL_FRONT_AND_BACK"; case 0x0409: return "GL_AUX0"; case 0x0500: return "GL_INVALID_ENUM"; case 0x0501: return "GL_INVALID_VALUE"; case 0x0502: return "GL_INVALID_OPERATION"; case 0x0503: return "GL_STACK_OVERFLOW"; case 0x0504: return "GL_STACK_UNDERFLOW"; case 0x0505: return "GL_OUT_OF_MEMORY"; case 0x0506: return "GL_INVALID_FRAMEBUFFER_OPERATION"; case 0x0600: return "GL_2D"; case 0x0601: return "GL_3D"; case 0x0602: return "GL_3D_COLOR"; case 0x0603: return "GL_3D_COLOR_TEXTURE"; case 0x0604: return "GL_4D_COLOR_TEXTURE"; case 0x0700: return "GL_PASS_THROUGH_TOKEN"; case 0x0701: return "GL_POINT_TOKEN"; case 0x0702: return "GL_LINE_TOKEN"; case 0x0703: return "GL_POLYGON_TOKEN"; case 0x0704: return "GL_BITMAP_TOKEN"; case 0x0705: return "GL_DRAW_PIXEL_TOKEN"; case 0x0706: return "GL_COPY_PIXEL_TOKEN"; case 0x0707: return "GL_LINE_RESET_TOKEN"; case 0x0800: return "GL_EXP"; case 0x800A: return "GL_FUNC_SUBTRACT"; case 0x800B: return "GL_FUNC_REVERSE_SUBTRACT"; case 0x800C: return "GL_CMYK_EXT"; case 0x800D: return "GL_CMYKA_EXT"; case 0x800E: return "GL_PACK_CMYK_HINT_EXT"; case 0x800F: return "GL_UNPACK_CMYK_HINT_EXT"; case 0x0801: return "GL_EXP2"; case 0x801A: return "GL_MAX_CONVOLUTION_WIDTH"; case 0x801B: return "GL_MAX_CONVOLUTION_HEIGHT"; case 0x801C: return "GL_POST_CONVOLUTION_RED_SCALE"; case 0x801D: return "GL_POST_CONVOLUTION_GREEN_SCALE"; case 0x801E: return "GL_POST_CONVOLUTION_BLUE_SCALE"; case 0x801F: return "GL_POST_CONVOLUTION_ALPHA_SCALE"; case 0x802A: return "GL_HISTOGRAM_BLUE_SIZE"; case 0x802B: return "GL_HISTOGRAM_ALPHA_SIZE"; case 0x802C: return "GL_HISTOGRAM_LUMINANCE_SIZE"; case 0x802D: return "GL_HISTOGRAM_SINK"; case 0x802E: return "GL_MINMAX"; case 0x802F: return "GL_MINMAX_FORMAT"; case 0x803A: return "GL_RESCALE_NORMAL"; case 0x803B: return "GL_ALPHA4"; case 0x803C: return "GL_ALPHA8"; case 0x803D: return "GL_ALPHA12"; case 0x803E: return "GL_ALPHA16"; case 0x803F: return "GL_LUMINANCE4"; case 0x804A: return "GL_INTENSITY4"; case 0x804B: return "GL_INTENSITY8"; case 0x804C: return "GL_INTENSITY12"; case 0x804D: return "GL_INTENSITY16"; case 0x804E: return "GL_RGB2_EXT"; case 0x804F: return "GL_RGB4"; case 0x805A: return "GL_RGBA12"; case 0x805B: return "GL_RGBA16"; case 0x805C: return "GL_TEXTURE_RED_SIZE"; case 0x805D: return "GL_TEXTURE_GREEN_SIZE"; case 0x805E: return "GL_TEXTURE_BLUE_SIZE"; case 0x805F: return "GL_TEXTURE_ALPHA_SIZE"; case 0x806A: return "GL_TEXTURE_BINDING_3D"; case 0x806B: return "GL_PACK_SKIP_IMAGES"; case 0x806C: return "GL_PACK_IMAGE_HEIGHT"; case 0x806D: return "GL_UNPACK_SKIP_IMAGES"; case 0x806E: return "GL_UNPACK_IMAGE_HEIGHT"; case 0x806F: return "GL_TEXTURE_3D"; case 0x807A: return "GL_VERTEX_ARRAY_SIZE"; case 0x807B: return "GL_VERTEX_ARRAY_TYPE"; case 0x807C: return "GL_VERTEX_ARRAY_STRIDE"; case 0x807D: return "GL_VERTEX_ARRAY_COUNT_EXT"; case 0x807E: return "GL_NORMAL_ARRAY_TYPE"; case 0x807F: return "GL_NORMAL_ARRAY_STRIDE"; case 0x808A: return "GL_TEXTURE_COORD_ARRAY_STRIDE"; case 0x808B: return "GL_TEXTURE_COORD_ARRAY_COUNT_EXT"; case 0x808C: return "GL_EDGE_FLAG_ARRAY_STRIDE"; case 0x808D: return "GL_EDGE_FLAG_ARRAY_COUNT_EXT"; case 0x808E: return "GL_VERTEX_ARRAY_POINTER"; case 0x808F: return "GL_NORMAL_ARRAY_POINTER"; case 0x809A: return "GL_DETAIL_TEXTURE_LEVEL_SGIS"; case 0x809B: return "GL_DETAIL_TEXTURE_MODE_SGIS"; case 0x809C: return "GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"; case 0x809D: return "GL_MULTISAMPLE"; case 0x809E: return "GL_SAMPLE_ALPHA_TO_COVERAGE"; case 0x809F: return "GL_SAMPLE_ALPHA_TO_ONE"; case 0x811A: return "GL_DUAL_INTENSITY12_SGIS"; case 0x811B: return "GL_DUAL_INTENSITY16_SGIS"; case 0x811C: return "GL_DUAL_LUMINANCE_ALPHA4_SGIS"; case 0x811D: return "GL_DUAL_LUMINANCE_ALPHA8_SGIS"; case 0x811E: return "GL_QUAD_ALPHA4_SGIS"; case 0x811F: return "GL_QUAD_ALPHA8_SGIS"; case 0x812A: return "GL_FOG_FUNC_SGIS"; case 0x812B: return "GL_FOG_FUNC_POINTS_SGIS"; case 0x812C: return "GL_MAX_FOG_FUNC_POINTS_SGIS"; case 0x812D: return "GL_CLAMP_TO_BORDER"; case 0x812F: return "GL_CLAMP_TO_EDGE"; case 0x813A: return "GL_TEXTURE_MIN_LOD"; case 0x813B: return "GL_TEXTURE_MAX_LOD"; case 0x813C: return "GL_TEXTURE_BASE_LEVEL"; case 0x813D: return "GL_TEXTURE_MAX_LEVEL"; case 0x814F: return "GL_TEXTURE_4D_BINDING_SGIS"; case 0x815A: return "GL_IMAGE_ROTATE_ORIGIN_X_HP"; case 0x815B: return "GL_IMAGE_ROTATE_ORIGIN_Y_HP"; case 0x815C: return "GL_IMAGE_MAG_FILTER_HP"; case 0x815D: return "GL_IMAGE_MIN_FILTER_HP"; case 0x815E: return "GL_IMAGE_CUBIC_WEIGHT_HP"; case 0x815F: return "GL_CUBIC_HP"; case 0x821A: return "GL_DEPTH_STENCIL_ATTACHMENT"; case 0x821B: return "GL_MAJOR_VERSION"; case 0x821C: return "GL_MINOR_VERSION"; case 0x821D: return "GL_NUM_EXTENSIONS"; case 0x821E: return "GL_CONTEXT_FLAGS"; case 0x822A: return "GL_R16"; case 0x822B: return "GL_RG8"; case 0x822C: return "GL_RG16"; case 0x822D: return "GL_R16F"; case 0x822E: return "GL_R32F"; case 0x822F: return "GL_RG16F"; case 0x823A: return "GL_RG16UI"; case 0x823B: return "GL_RG32I"; case 0x823C: return "GL_RG32UI"; case 0x824A: return "GL_DEBUG_SOURCE_APPLICATION_ARB"; case 0x824B: return "GL_DEBUG_SOURCE_OTHER_ARB"; case 0x824C: return "GL_DEBUG_TYPE_ERROR_ARB"; case 0x824D: return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"; case 0x824E: return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"; case 0x824F: return "GL_DEBUG_TYPE_PORTABILITY_ARB"; case 0x825A: return "GL_PROGRAM_PIPELINE_BINDING"; case 0x825B: return "GL_MAX_VIEWPORTS"; case 0x825C: return "GL_VIEWPORT_SUBPIXEL_BITS"; case 0x825D: return "GL_VIEWPORT_BOUNDS_RANGE"; case 0x825E: return "GL_LAYER_PROVOKING_VERTEX"; case 0x825F: return "GL_VIEWPORT_INDEX_PROVOKING_VERTEX"; case 0x834A: return "GL_FRAGMENT_NORMAL_EXT"; case 0x834C: return "GL_FRAGMENT_COLOR_EXT"; case 0x834D: return "GL_ATTENUATION_EXT"; case 0x834E: return "GL_SHADOW_ATTENUATION_EXT"; case 0x834F: return "GL_TEXTURE_APPLICATION_MODE_EXT"; case 0x843A: return "GL_BINORMAL_ARRAY_EXT"; case 0x843B: return "GL_CURRENT_TANGENT_EXT"; case 0x843C: return "GL_CURRENT_BINORMAL_EXT"; case 0x843E: return "GL_TANGENT_ARRAY_TYPE_EXT"; case 0x843F: return "GL_TANGENT_ARRAY_STRIDE_EXT"; case 0x845A: return "GL_SECONDARY_COLOR_ARRAY_SIZE"; case 0x845B: return "GL_SECONDARY_COLOR_ARRAY_TYPE"; case 0x845C: return "GL_SECONDARY_COLOR_ARRAY_STRIDE"; case 0x845D: return "GL_SECONDARY_COLOR_ARRAY_POINTER"; case 0x845E: return "GL_SECONDARY_COLOR_ARRAY"; case 0x845F: return "GL_CURRENT_RASTER_SECONDARY_COLOR"; case 0x846D: return "GL_ALIASED_POINT_SIZE_RANGE"; case 0x846E: return "GL_ALIASED_LINE_WIDTH_RANGE"; case 0x850A: return "GL_MODELVIEW1_EXT"; case 0x850B: return "GL_CURRENT_VERTEX_WEIGHT_EXT"; case 0x850C: return "GL_VERTEX_WEIGHT_ARRAY_EXT"; case 0x850D: return "GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"; case 0x850E: return "GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"; case 0x850F: return "GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"; case 0x851A: return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"; case 0x851B: return "GL_PROXY_TEXTURE_CUBE_MAP"; case 0x851C: return "GL_MAX_CUBE_MAP_TEXTURE_SIZE"; case 0x851D: return "GL_VERTEX_ARRAY_RANGE_APPLE"; case 0x851E: return "GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"; case 0x851F: return "GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"; case 0x858A: return "GL_SRC2_ALPHA"; case 0x859A: return "GL_OPERAND2_ALPHA"; case 0x862E: return "GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"; case 0x862F: return "GL_MAX_PROGRAM_MATRICES_ARB"; case 0x864B: return "GL_PROGRAM_ERROR_POSITION_ARB"; case 0x864F: return "GL_DEPTH_CLAMP"; case 0x872A: return "GL_MODELVIEW10_ARB"; case 0x872B: return "GL_MODELVIEW11_ARB"; case 0x872C: return "GL_MODELVIEW12_ARB"; case 0x872D: return "GL_MODELVIEW13_ARB"; case 0x872E: return "GL_MODELVIEW14_ARB"; case 0x872F: return "GL_MODELVIEW15_ARB"; case 0x873A: return "GL_MODELVIEW26_ARB"; case 0x873B: return "GL_MODELVIEW27_ARB"; case 0x873C: return "GL_MODELVIEW28_ARB"; case 0x873D: return "GL_MODELVIEW29_ARB"; case 0x873E: return "GL_MODELVIEW30_ARB"; case 0x873F: return "GL_MODELVIEW31_ARB"; case 0x875A: return "GL_DEBUG_PRINT_MESA"; // case 0x875A: return "GL_TEXTURE_2D_STACK_MESAX"; case 0x875B: return "GL_DEBUG_ASSERT_MESA"; // case 0x875B: return "GL_PROXY_TEXTURE_1D_STACK_MESAX"; case 0x875C: return "GL_PROXY_TEXTURE_2D_STACK_MESAX"; case 0x875D: return "GL_TEXTURE_1D_STACK_BINDING_MESAX"; case 0x875E: return "GL_TEXTURE_2D_STACK_BINDING_MESAX"; case 0x878A: return "GL_OP_MAX_EXT"; case 0x878B: return "GL_OP_MIN_EXT"; case 0x878C: return "GL_OP_SET_GE_EXT"; case 0x878D: return "GL_OP_SET_LT_EXT"; case 0x878E: return "GL_OP_CLAMP_EXT"; case 0x878F: return "GL_OP_FLOOR_EXT"; case 0x879A: return "GL_OUTPUT_VERTEX_EXT"; case 0x879B: return "GL_OUTPUT_COLOR0_EXT"; case 0x879C: return "GL_OUTPUT_COLOR1_EXT"; case 0x879D: return "GL_OUTPUT_TEXTURE_COORD0_EXT"; case 0x879E: return "GL_OUTPUT_TEXTURE_COORD1_EXT"; case 0x879F: return "GL_OUTPUT_TEXTURE_COORD2_EXT"; case 0x880A: return "GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"; case 0x880B: return "GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"; case 0x880C: return "GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"; case 0x880D: return "GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"; case 0x880E: return "GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"; case 0x880F: return "GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"; case 0x881A: return "GL_RGBA16F"; case 0x881B: return "GL_RGB16F"; case 0x881C: return "GL_ALPHA16F_ARB"; case 0x881D: return "GL_INTENSITY16F_ARB"; case 0x881E: return "GL_LUMINANCE16F_ARB"; case 0x881F: return "GL_LUMINANCE_ALPHA16F_ARB"; case 0x882A: return "GL_DRAW_BUFFER5"; case 0x882B: return "GL_DRAW_BUFFER6"; case 0x882C: return "GL_DRAW_BUFFER7"; case 0x882D: return "GL_DRAW_BUFFER8"; case 0x882E: return "GL_DRAW_BUFFER9"; case 0x882F: return "GL_DRAW_BUFFER10"; case 0x883D: return "GL_BLEND_EQUATION_ALPHA"; case 0x884A: return "GL_TEXTURE_DEPTH_SIZE"; case 0x884B: return "GL_DEPTH_TEXTURE_MODE"; case 0x884C: return "GL_TEXTURE_COMPARE_MODE"; case 0x884D: return "GL_TEXTURE_COMPARE_FUNC"; case 0x884E: return "GL_COMPARE_REF_TO_TEXTURE"; case 0x884F: return "GL_TEXTURE_CUBE_MAP_SEAMLESS"; case 0x886A: return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"; case 0x886C: return "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"; case 0x886D: return "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"; case 0x887F: return "GL_GEOMETRY_SHADER_INVOCATIONS"; case 0x889A: return "GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"; case 0x889B: return "GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"; case 0x889C: return "GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"; case 0x889D: return "GL_FOG_COORD_ARRAY_BUFFER_BINDING"; case 0x889E: return "GL_WEIGHT_ARRAY_BUFFER_BINDING"; case 0x889F: return "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"; case 0x891A: return "GL_CLAMP_VERTEX_COLOR"; case 0x891B: return "GL_CLAMP_FRAGMENT_COLOR"; case 0x891C: return "GL_CLAMP_READ_COLOR"; case 0x891D: return "GL_FIXED_ONLY"; case 0x0900: return "GL_CW"; case 0x900A: return "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"; case 0x900B: return "GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"; case 0x900C: return "GL_SAMPLER_CUBE_MAP_ARRAY"; case 0x900D: return "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"; case 0x900E: return "GL_INT_SAMPLER_CUBE_MAP_ARRAY"; case 0x900F: return "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"; case 0x0901: return "GL_CCW"; case 0x901A: return "GL_LUMINANCE16_ALPHA16_SNORM"; case 0x901B: return "GL_INTENSITY16_SNORM"; case 0x904C: return "GL_IMAGE_1D_EXT"; case 0x904D: return "GL_IMAGE_2D_EXT"; case 0x904E: return "GL_IMAGE_3D_EXT"; case 0x904F: return "GL_IMAGE_2D_RECT_EXT"; case 0x905A: return "GL_INT_IMAGE_2D_RECT_EXT"; case 0x905B: return "GL_INT_IMAGE_CUBE_EXT"; case 0x905C: return "GL_INT_IMAGE_BUFFER_EXT"; case 0x905D: return "GL_INT_IMAGE_1D_ARRAY_EXT"; case 0x905E: return "GL_INT_IMAGE_2D_ARRAY_EXT"; case 0x905F: return "GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"; case 0x906A: return "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"; case 0x906B: return "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"; case 0x906C: return "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"; case 0x906D: return "GL_MAX_IMAGE_SAMPLES_EXT"; case 0x906E: return "GL_IMAGE_BINDING_FORMAT_EXT"; case 0x906F: return "GL_RGB10_A2UI"; case 0x910A: return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"; case 0x910B: return "GL_SAMPLER_2D_MULTISAMPLE_ARRAY"; case 0x910C: return "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"; case 0x910D: return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"; case 0x910E: return "GL_MAX_COLOR_TEXTURE_SAMPLES"; case 0x910F: return "GL_MAX_DEPTH_TEXTURE_SAMPLES"; case 0x911A: return "GL_ALREADY_SIGNALED"; case 0x911B: return "GL_TIMEOUT_EXPIRED"; case 0x911C: return "GL_CONDITION_SATISFIED"; case 0x911D: return "GL_WAIT_FAILED"; case 0x911F: return "GL_BUFFER_ACCESS_FLAGS"; case 0x914A: return "GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"; case 0x914B: return "GL_DEBUG_CATEGORY_DEPRECATION_AMD"; case 0x914C: return "GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"; case 0x914D: return "GL_DEBUG_CATEGORY_PERFORMANCE_AMD"; case 0x914E: return "GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"; case 0x914F: return "GL_DEBUG_CATEGORY_APPLICATION_AMD"; case 0x1000: return "GL_TEXTURE_WIDTH"; case 0x1001: return "GL_TEXTURE_HEIGHT"; case 0x1003: return "GL_TEXTURE_INTERNAL_FORMAT"; case 0x1004: return "GL_TEXTURE_BORDER_COLOR"; case 0x1005: return "GL_TEXTURE_BORDER"; case 0x1100: return "GL_DONT_CARE"; case 0x1101: return "GL_FASTEST"; case 0x1102: return "GL_NICEST"; case 0x1200: return "GL_AMBIENT"; case 0x1201: return "GL_DIFFUSE"; case 0x1202: return "GL_SPECULAR"; case 0x1203: return "GL_POSITION"; case 0x1204: return "GL_SPOT_DIRECTION"; case 0x1205: return "GL_SPOT_EXPONENT"; case 0x1206: return "GL_SPOT_CUTOFF"; case 0x1207: return "GL_CONSTANT_ATTENUATION"; case 0x1208: return "GL_LINEAR_ATTENUATION"; case 0x1209: return "GL_QUADRATIC_ATTENUATION"; case 0x1300: return "GL_COMPILE"; case 0x1301: return "GL_COMPILE_AND_EXECUTE"; case 0x1400: return "GL_BYTE"; case 0x1401: return "GL_UNSIGNED_BYTE"; case 0x1402: return "GL_SHORT"; case 0x1403: return "GL_UNSIGNED_SHORT"; case 0x1404: return "GL_INT"; case 0x1405: return "GL_UNSIGNED_INT"; case 0x1406: return "GL_FLOAT"; case 0x1407: return "GL_2_BYTES"; case 0x1408: return "GL_3_BYTES"; case 0x1409: return "GL_4_BYTES"; case 0x1500: return "GL_CLEAR"; case 0x1501: return "GL_AND"; case 0x1502: return "GL_AND_REVERSE"; case 0x1503: return "GL_COPY"; case 0x1504: return "GL_AND_INVERTED"; case 0x1505: return "GL_NOOP"; case 0x1506: return "GL_XOR"; case 0x1507: return "GL_OR"; case 0x1508: return "GL_NOR"; case 0x1509: return "GL_EQUIV"; case 0x1600: return "GL_EMISSION"; case 0x1601: return "GL_SHININESS"; case 0x1602: return "GL_AMBIENT_AND_DIFFUSE"; case 0x1603: return "GL_COLOR_INDEXES"; case 0x1700: return "GL_MODELVIEW"; case 0x1701: return "GL_PROJECTION"; case 0x1702: return "GL_TEXTURE"; case 0x1800: return "GL_COLOR"; case 0x1801: return "GL_DEPTH"; case 0x1802: return "GL_STENCIL"; case 0x1900: return "GL_COLOR_INDEX"; case 0x1901: return "GL_STENCIL_INDEX"; case 0x1902: return "GL_DEPTH_COMPONENT"; case 0x1903: return "GL_RED"; case 0x1904: return "GL_GREEN"; case 0x1905: return "GL_BLUE"; case 0x1906: return "GL_ALPHA"; case 0x1907: return "GL_RGB"; case 0x1908: return "GL_RGBA"; case 0x1909: return "GL_LUMINANCE"; case 0x2000: return "GL_S"; case 0x2001: return "GL_T"; case 0x2002: return "GL_R"; case 0x2003: return "GL_Q"; case 0x2100: return "GL_MODULATE"; case 0x2101: return "GL_DECAL"; case 0x2200: return "GL_TEXTURE_ENV_MODE"; case 0x2201: return "GL_TEXTURE_ENV_COLOR"; case 0x2300: return "GL_TEXTURE_ENV"; case 0x2400: return "GL_EYE_LINEAR"; case 0x2401: return "GL_OBJECT_LINEAR"; case 0x2402: return "GL_SPHERE_MAP"; case 0x2500: return "GL_TEXTURE_GEN_MODE"; case 0x2501: return "GL_OBJECT_PLANE"; case 0x2502: return "GL_EYE_PLANE"; case 0x2600: return "GL_NEAREST"; case 0x2601: return "GL_LINEAR"; case 0x2700: return "GL_NEAREST_MIPMAP_NEAREST"; case 0x2701: return "GL_LINEAR_MIPMAP_NEAREST"; case 0x2702: return "GL_NEAREST_MIPMAP_LINEAR"; case 0x2703: return "GL_LINEAR_MIPMAP_LINEAR"; case 0x2800: return "GL_TEXTURE_MAG_FILTER"; case 0x2801: return "GL_TEXTURE_MIN_FILTER"; case 0x2802: return "GL_TEXTURE_WRAP_S"; case 0x2803: return "GL_TEXTURE_WRAP_T"; case 0x2900: return "GL_CLAMP"; case 0x2901: return "GL_REPEAT"; case 0x3000: return "GL_CLIP_PLANE0"; case 0x3001: return "GL_CLIP_PLANE1"; case 0x3002: return "GL_CLIP_PLANE2"; case 0x3003: return "GL_CLIP_PLANE3"; case 0x3004: return "GL_CLIP_PLANE4"; case 0x3005: return "GL_CLIP_PLANE5"; case 0x3006: return "GL_CLIP_DISTANCE6"; case 0x3007: return "GL_CLIP_DISTANCE7"; case 0x4000: return "GL_LIGHT0"; case 0x4001: return "GL_LIGHT1"; case 0x4002: return "GL_LIGHT2"; case 0x4003: return "GL_LIGHT3"; case 0x4004: return "GL_LIGHT4"; case 0x4005: return "GL_LIGHT5"; case 0x4006: return "GL_LIGHT6"; case 0x4007: return "GL_LIGHT7"; case 0x8000: return "GL_ABGR_EXT"; case 0x8001: return "GL_CONSTANT_COLOR"; case 0x8002: return "GL_ONE_MINUS_CONSTANT_COLOR"; case 0x8003: return "GL_CONSTANT_ALPHA"; case 0x8004: return "GL_ONE_MINUS_CONSTANT_ALPHA"; case 0x8005: return "GL_BLEND_COLOR"; case 0x8006: return "GL_FUNC_ADD"; case 0x8007: return "GL_MIN"; case 0x8008: return "GL_MAX"; case 0x8009: return "GL_BLEND_EQUATION"; case 0x8010: return "GL_CONVOLUTION_1D"; case 0x8011: return "GL_CONVOLUTION_2D"; case 0x8012: return "GL_SEPARABLE_2D"; case 0x8013: return "GL_CONVOLUTION_BORDER_MODE"; case 0x8014: return "GL_CONVOLUTION_FILTER_SCALE"; case 0x8015: return "GL_CONVOLUTION_FILTER_BIAS"; case 0x8016: return "GL_REDUCE"; case 0x8017: return "GL_CONVOLUTION_FORMAT"; case 0x8018: return "GL_CONVOLUTION_WIDTH"; case 0x8019: return "GL_CONVOLUTION_HEIGHT"; case 0x8020: return "GL_POST_CONVOLUTION_RED_BIAS"; case 0x8021: return "GL_POST_CONVOLUTION_GREEN_BIAS"; case 0x8022: return "GL_POST_CONVOLUTION_BLUE_BIAS"; case 0x8023: return "GL_POST_CONVOLUTION_ALPHA_BIAS"; case 0x8024: return "GL_HISTOGRAM"; case 0x8025: return "GL_PROXY_HISTOGRAM"; case 0x8026: return "GL_HISTOGRAM_WIDTH"; case 0x8027: return "GL_HISTOGRAM_FORMAT"; case 0x8028: return "GL_HISTOGRAM_RED_SIZE"; case 0x8029: return "GL_HISTOGRAM_GREEN_SIZE"; case 0x8030: return "GL_MINMAX_SINK"; case 0x8031: return "GL_TABLE_TOO_LARGE"; case 0x8032: return "GL_UNSIGNED_BYTE_3_3_2"; case 0x8033: return "GL_UNSIGNED_SHORT_4_4_4_4"; case 0x8034: return "GL_UNSIGNED_SHORT_5_5_5_1"; case 0x8035: return "GL_UNSIGNED_INT_8_8_8_8"; case 0x8036: return "GL_UNSIGNED_INT_10_10_10_2"; case 0x8037: return "GL_POLYGON_OFFSET_EXT"; case 0x8038: return "GL_POLYGON_OFFSET_FACTOR"; case 0x8039: return "GL_POLYGON_OFFSET_BIAS_EXT"; case 0x8040: return "GL_LUMINANCE8"; case 0x8041: return "GL_LUMINANCE12"; case 0x8042: return "GL_LUMINANCE16"; case 0x8043: return "GL_LUMINANCE4_ALPHA4"; case 0x8044: return "GL_LUMINANCE6_ALPHA2"; case 0x8045: return "GL_LUMINANCE8_ALPHA8"; case 0x8046: return "GL_LUMINANCE12_ALPHA4"; case 0x8047: return "GL_LUMINANCE12_ALPHA12"; case 0x8048: return "GL_LUMINANCE16_ALPHA16"; case 0x8049: return "GL_INTENSITY"; case 0x8050: return "GL_RGB5"; case 0x8051: return "GL_RGB8"; case 0x8052: return "GL_RGB10"; case 0x8053: return "GL_RGB12"; case 0x8054: return "GL_RGB16"; case 0x8055: return "GL_RGBA2"; case 0x8056: return "GL_RGBA4"; case 0x8057: return "GL_RGB5_A1"; case 0x8058: return "GL_RGBA8"; case 0x8059: return "GL_RGB10_A2"; case 0x8060: return "GL_TEXTURE_LUMINANCE_SIZE"; case 0x8061: return "GL_TEXTURE_INTENSITY_SIZE"; case 0x8062: return "GL_REPLACE_EXT"; case 0x8063: return "GL_PROXY_TEXTURE_1D"; case 0x8064: return "GL_PROXY_TEXTURE_2D"; case 0x8065: return "GL_TEXTURE_TOO_LARGE_EXT"; case 0x8066: return "GL_TEXTURE_PRIORITY"; case 0x8067: return "GL_TEXTURE_RESIDENT"; case 0x8068: return "GL_TEXTURE_BINDING_1D"; case 0x8069: return "GL_TEXTURE_BINDING_2D"; case 0x8070: return "GL_PROXY_TEXTURE_3D"; case 0x8071: return "GL_TEXTURE_DEPTH"; case 0x8072: return "GL_TEXTURE_WRAP_R"; case 0x8073: return "GL_MAX_3D_TEXTURE_SIZE"; case 0x8074: return "GL_VERTEX_ARRAY"; case 0x8075: return "GL_NORMAL_ARRAY"; case 0x8076: return "GL_COLOR_ARRAY"; case 0x8077: return "GL_INDEX_ARRAY"; case 0x8078: return "GL_TEXTURE_COORD_ARRAY"; case 0x8079: return "GL_EDGE_FLAG_ARRAY"; case 0x8080: return "GL_NORMAL_ARRAY_COUNT_EXT"; case 0x8081: return "GL_COLOR_ARRAY_SIZE"; case 0x8082: return "GL_COLOR_ARRAY_TYPE"; case 0x8083: return "GL_COLOR_ARRAY_STRIDE"; case 0x8084: return "GL_COLOR_ARRAY_COUNT_EXT"; case 0x8085: return "GL_INDEX_ARRAY_TYPE"; case 0x8086: return "GL_INDEX_ARRAY_STRIDE"; case 0x8087: return "GL_INDEX_ARRAY_COUNT_EXT"; case 0x8088: return "GL_TEXTURE_COORD_ARRAY_SIZE"; case 0x8089: return "GL_TEXTURE_COORD_ARRAY_TYPE"; case 0x8090: return "GL_COLOR_ARRAY_POINTER"; case 0x8091: return "GL_INDEX_ARRAY_POINTER"; case 0x8092: return "GL_TEXTURE_COORD_ARRAY_POINTER"; case 0x8093: return "GL_EDGE_FLAG_ARRAY_POINTER"; case 0x8095: return "GL_DETAIL_TEXTURE_2D_SGIS"; case 0x8096: return "GL_DETAIL_TEXTURE_2D_BINDING_SGIS"; case 0x8097: return "GL_LINEAR_DETAIL_SGIS"; case 0x8098: return "GL_LINEAR_DETAIL_ALPHA_SGIS"; case 0x8099: return "GL_LINEAR_DETAIL_COLOR_SGIS"; case 0x8110: return "GL_DUAL_ALPHA4_SGIS"; case 0x8111: return "GL_DUAL_ALPHA8_SGIS"; case 0x8112: return "GL_DUAL_ALPHA12_SGIS"; case 0x8113: return "GL_DUAL_ALPHA16_SGIS"; case 0x8114: return "GL_DUAL_LUMINANCE4_SGIS"; case 0x8115: return "GL_DUAL_LUMINANCE8_SGIS"; case 0x8116: return "GL_DUAL_LUMINANCE12_SGIS"; case 0x8117: return "GL_DUAL_LUMINANCE16_SGIS"; case 0x8118: return "GL_DUAL_INTENSITY4_SGIS"; case 0x8119: return "GL_DUAL_INTENSITY8_SGIS"; case 0x8120: return "GL_QUAD_LUMINANCE4_SGIS"; case 0x8121: return "GL_QUAD_LUMINANCE8_SGIS"; case 0x8122: return "GL_QUAD_INTENSITY4_SGIS"; case 0x8123: return "GL_QUAD_INTENSITY8_SGIS"; case 0x8124: return "GL_DUAL_TEXTURE_SELECT_SGIS"; case 0x8125: return "GL_QUAD_TEXTURE_SELECT_SGIS"; case 0x8126: return "GL_POINT_SIZE_MIN"; case 0x8127: return "GL_POINT_SIZE_MAX"; case 0x8128: return "GL_POINT_FADE_THRESHOLD_SIZE"; case 0x8129: return "GL_POINT_DISTANCE_ATTENUATION"; case 0x8130: return "GL_PACK_SKIP_VOLUMES_SGIS"; case 0x8131: return "GL_PACK_IMAGE_DEPTH_SGIS"; case 0x8132: return "GL_UNPACK_SKIP_VOLUMES_SGIS"; case 0x8133: return "GL_UNPACK_IMAGE_DEPTH_SGIS"; case 0x8134: return "GL_TEXTURE_4D_SGIS"; case 0x8135: return "GL_PROXY_TEXTURE_4D_SGIS"; case 0x8136: return "GL_TEXTURE_4DSIZE_SGIS"; case 0x8137: return "GL_TEXTURE_WRAP_Q_SGIS"; case 0x8138: return "GL_MAX_4D_TEXTURE_SIZE_SGIS"; case 0x8146: return "GL_FILTER4_SGIS"; case 0x8147: return "GL_TEXTURE_FILTER4_SIZE_SGIS"; case 0x8150: return "GL_IGNORE_BORDER_HP"; case 0x8151: return "GL_CONSTANT_BORDER"; case 0x8153: return "GL_REPLICATE_BORDER"; case 0x8154: return "GL_CONVOLUTION_BORDER_COLOR"; case 0x8155: return "GL_IMAGE_SCALE_X_HP"; case 0x8156: return "GL_IMAGE_SCALE_Y_HP"; case 0x8157: return "GL_IMAGE_TRANSLATE_X_HP"; case 0x8158: return "GL_IMAGE_TRANSLATE_Y_HP"; case 0x8159: return "GL_IMAGE_ROTATE_ANGLE_HP"; case 0x8160: return "GL_AVERAGE_HP"; case 0x8161: return "GL_IMAGE_TRANSFORM_2D_HP"; case 0x8162: return "GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"; case 0x8163: return "GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"; case 0x8165: return "GL_OCCLUSION_TEST_HP"; case 0x8166: return "GL_OCCLUSION_TEST_RESULT_HP"; case 0x8167: return "GL_TEXTURE_LIGHTING_MODE_HP"; case 0x8168: return "GL_TEXTURE_POST_SPECULAR_HP"; case 0x8169: return "GL_TEXTURE_PRE_SPECULAR_HP"; case 0x8191: return "GL_GENERATE_MIPMAP"; case 0x8192: return "GL_GENERATE_MIPMAP_HINT"; case 0x8210: return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"; case 0x8211: return "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"; case 0x8212: return "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"; case 0x8213: return "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"; case 0x8214: return "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"; case 0x8215: return "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"; case 0x8216: return "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"; case 0x8217: return "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"; case 0x8218: return "GL_FRAMEBUFFER_DEFAULT"; case 0x8219: return "GL_FRAMEBUFFER_UNDEFINED"; case 0x8222: return "GL_INDEX"; case 0x8223: return "GL_DEPTH_BUFFER"; case 0x8224: return "GL_STENCIL_BUFFER"; case 0x8225: return "GL_COMPRESSED_RED"; case 0x8226: return "GL_COMPRESSED_RG"; case 0x8227: return "GL_RG"; case 0x8228: return "GL_RG_INTEGER"; case 0x8229: return "GL_R8"; case 0x8230: return "GL_RG32F"; case 0x8231: return "GL_R8I"; case 0x8232: return "GL_R8UI"; case 0x8233: return "GL_R16I"; case 0x8234: return "GL_R16UI"; case 0x8235: return "GL_R32I"; case 0x8236: return "GL_R32UI"; case 0x8237: return "GL_RG8I"; case 0x8238: return "GL_RG8UI"; case 0x8239: return "GL_RG16I"; case 0x8240: return "GL_SYNC_CL_EVENT_ARB"; case 0x8241: return "GL_SYNC_CL_EVENT_COMPLETE_ARB"; case 0x8242: return "GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"; case 0x8243: return "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"; case 0x8244: return "GL_DEBUG_CALLBACK_FUNCTION_ARB"; case 0x8245: return "GL_DEBUG_CALLBACK_USER_PARAM_ARB"; case 0x8246: return "GL_DEBUG_SOURCE_API_ARB"; case 0x8247: return "GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"; case 0x8248: return "GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"; case 0x8249: return "GL_DEBUG_SOURCE_THIRD_PARTY_ARB"; case 0x8250: return "GL_DEBUG_TYPE_PERFORMANCE_ARB"; case 0x8251: return "GL_DEBUG_TYPE_OTHER_ARB"; case 0x8252: return "GL_LOSE_CONTEXT_ON_RESET_ARB"; case 0x8253: return "GL_GUILTY_CONTEXT_RESET_ARB"; case 0x8254: return "GL_INNOCENT_CONTEXT_RESET_ARB"; case 0x8255: return "GL_UNKNOWN_CONTEXT_RESET_ARB"; case 0x8256: return "GL_RESET_NOTIFICATION_STRATEGY_ARB"; case 0x8257: return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT"; case 0x8258: return "GL_PROGRAM_SEPARABLE"; case 0x8259: return "GL_ACTIVE_PROGRAM"; case 0x8260: return "GL_UNDEFINED_VERTEX"; case 0x8261: return "GL_NO_RESET_NOTIFICATION_ARB"; case 0x8330: return "GL_PIXEL_TRANSFORM_2D_EXT"; case 0x8331: return "GL_PIXEL_MAG_FILTER_EXT"; case 0x8332: return "GL_PIXEL_MIN_FILTER_EXT"; case 0x8333: return "GL_PIXEL_CUBIC_WEIGHT_EXT"; case 0x8334: return "GL_CUBIC_EXT"; case 0x8335: return "GL_AVERAGE_EXT"; case 0x8336: return "GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"; case 0x8337: return "GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"; case 0x8338: return "GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"; case 0x8349: return "GL_FRAGMENT_MATERIAL_EXT"; case 0x8350: return "GL_TEXTURE_LIGHT_EXT"; case 0x8351: return "GL_TEXTURE_MATERIAL_FACE_EXT"; case 0x8352: return "GL_TEXTURE_MATERIAL_PARAMETER_EXT"; case 0x8353: return "GL_PIXEL_TEXTURE_SGIS"; case 0x8354: return "GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"; case 0x8355: return "GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"; case 0x8356: return "GL_PIXEL_GROUP_COLOR_SGIS"; case 0x8362: return "GL_UNSIGNED_BYTE_2_3_3_REV"; case 0x8363: return "GL_UNSIGNED_SHORT_5_6_5"; case 0x8364: return "GL_UNSIGNED_SHORT_5_6_5_REV"; case 0x8365: return "GL_UNSIGNED_SHORT_4_4_4_4_REV"; case 0x8366: return "GL_UNSIGNED_SHORT_1_5_5_5_REV"; case 0x8367: return "GL_UNSIGNED_INT_8_8_8_8_REV"; case 0x8368: return "GL_UNSIGNED_INT_2_10_10_10_REV"; case 0x8370: return "GL_MIRRORED_REPEAT"; case 0x8439: return "GL_TANGENT_ARRAY_EXT"; case 0x8440: return "GL_BINORMAL_ARRAY_TYPE_EXT"; case 0x8441: return "GL_BINORMAL_ARRAY_STRIDE_EXT"; case 0x8442: return "GL_TANGENT_ARRAY_POINTER_EXT"; case 0x8443: return "GL_BINORMAL_ARRAY_POINTER_EXT"; case 0x8444: return "GL_MAP1_TANGENT_EXT"; case 0x8445: return "GL_MAP2_TANGENT_EXT"; case 0x8446: return "GL_MAP1_BINORMAL_EXT"; case 0x8447: return "GL_MAP2_BINORMAL_EXT"; case 0x8450: return "GL_FOG_COORD_SRC"; case 0x8451: return "GL_FOG_COORD"; case 0x8452: return "GL_FRAGMENT_DEPTH"; case 0x8453: return "GL_CURRENT_FOG_COORD"; case 0x8454: return "GL_FOG_COORD_ARRAY_TYPE"; case 0x8455: return "GL_FOG_COORD_ARRAY_STRIDE"; case 0x8456: return "GL_FOG_COORD_ARRAY_POINTER"; case 0x8457: return "GL_FOG_COORD_ARRAY"; case 0x8458: return "GL_COLOR_SUM"; case 0x8459: return "GL_CURRENT_SECONDARY_COLOR"; case 0x8490: return "GL_SCREEN_COORDINATES_REND"; case 0x8491: return "GL_INVERTED_SCREEN_W_REND"; case 0x8500: return "GL_TEXTURE_FILTER_CONTROL"; case 0x8501: return "GL_TEXTURE_LOD_BIAS"; case 0x8502: return "GL_MODELVIEW1_STACK_DEPTH_EXT"; case 0x8506: return "GL_MODELVIEW1_MATRIX_EXT"; case 0x8507: return "GL_INCR_WRAP"; case 0x8508: return "GL_DECR_WRAP"; case 0x8509: return "GL_VERTEX_WEIGHTING_EXT"; case 0x8510: return "GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"; case 0x8511: return "GL_NORMAL_MAP"; case 0x8512: return "GL_REFLECTION_MAP"; case 0x8513: return "GL_TEXTURE_CUBE_MAP"; case 0x8514: return "GL_TEXTURE_BINDING_CUBE_MAP"; case 0x8515: return "GL_TEXTURE_CUBE_MAP_POSITIVE_X"; case 0x8516: return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X"; case 0x8517: return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y"; case 0x8518: return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"; case 0x8519: return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z"; case 0x8521: return "GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"; case 0x8560: return "GL_RED_MIN_CLAMP_INGR"; case 0x8561: return "GL_GREEN_MIN_CLAMP_INGR"; case 0x8562: return "GL_BLUE_MIN_CLAMP_INGR"; case 0x8563: return "GL_ALPHA_MIN_CLAMP_INGR"; case 0x8564: return "GL_RED_MAX_CLAMP_INGR"; case 0x8565: return "GL_GREEN_MAX_CLAMP_INGR"; case 0x8566: return "GL_BLUE_MAX_CLAMP_INGR"; case 0x8567: return "GL_ALPHA_MAX_CLAMP_INGR"; case 0x8568: return "GL_INTERLACE_READ_INGR"; case 0x8570: return "GL_COMBINE"; case 0x8571: return "GL_COMBINE_RGB"; case 0x8572: return "GL_COMBINE_ALPHA"; case 0x8573: return "GL_RGB_SCALE"; case 0x8574: return "GL_ADD_SIGNED"; case 0x8575: return "GL_INTERPOLATE"; case 0x8576: return "GL_CONSTANT"; case 0x8577: return "GL_PRIMARY_COLOR"; case 0x8578: return "GL_PREVIOUS"; case 0x8580: return "GL_SRC0_RGB"; case 0x8581: return "GL_SRC1_RGB"; case 0x8582: return "GL_SRC2_RGB"; case 0x8588: return "GL_SRC0_ALPHA"; case 0x8589: return "GL_SRC1_ALPHA"; case 0x8590: return "GL_OPERAND0_RGB"; case 0x8591: return "GL_OPERAND1_RGB"; case 0x8592: return "GL_OPERAND2_RGB"; case 0x8598: return "GL_OPERAND0_ALPHA"; case 0x8599: return "GL_OPERAND1_ALPHA"; case 0x8614: return "GL_QUAD_MESH_SUN"; case 0x8615: return "GL_TRIANGLE_MESH_SUN"; case 0x8620: return "GL_VERTEX_PROGRAM_ARB"; case 0x8622: return "GL_VERTEX_ATTRIB_ARRAY_ENABLED"; case 0x8623: return "GL_VERTEX_ATTRIB_ARRAY_SIZE"; case 0x8624: return "GL_VERTEX_ATTRIB_ARRAY_STRIDE"; case 0x8625: return "GL_VERTEX_ATTRIB_ARRAY_TYPE"; case 0x8626: return "GL_CURRENT_VERTEX_ATTRIB"; case 0x8627: return "GL_PROGRAM_LENGTH_ARB"; case 0x8628: return "GL_PROGRAM_STRING_ARB"; case 0x8640: return "GL_CURRENT_MATRIX_STACK_DEPTH_ARB"; case 0x8641: return "GL_CURRENT_MATRIX_ARB"; case 0x8642: return "GL_PROGRAM_POINT_SIZE"; case 0x8643: return "GL_VERTEX_PROGRAM_TWO_SIDE"; case 0x8645: return "GL_VERTEX_ATTRIB_ARRAY_POINTER"; case 0x8677: return "GL_PROGRAM_BINDING_ARB"; case 0x8722: return "GL_MODELVIEW2_ARB"; case 0x8723: return "GL_MODELVIEW3_ARB"; case 0x8724: return "GL_MODELVIEW4_ARB"; case 0x8725: return "GL_MODELVIEW5_ARB"; case 0x8726: return "GL_MODELVIEW6_ARB"; case 0x8727: return "GL_MODELVIEW7_ARB"; case 0x8728: return "GL_MODELVIEW8_ARB"; case 0x8729: return "GL_MODELVIEW9_ARB"; case 0x8730: return "GL_MODELVIEW16_ARB"; case 0x8731: return "GL_MODELVIEW17_ARB"; case 0x8732: return "GL_MODELVIEW18_ARB"; case 0x8733: return "GL_MODELVIEW19_ARB"; case 0x8734: return "GL_MODELVIEW20_ARB"; case 0x8735: return "GL_MODELVIEW21_ARB"; case 0x8736: return "GL_MODELVIEW22_ARB"; case 0x8737: return "GL_MODELVIEW23_ARB"; case 0x8738: return "GL_MODELVIEW24_ARB"; case 0x8739: return "GL_MODELVIEW25_ARB"; case 0x8740: return "GL_DOT3_RGB_EXT"; // case 0x8741: return "GL_DOT3_RGBA_EXT"; case 0x8741: return "GL_PROGRAM_BINARY_LENGTH"; case 0x8742: return "GL_MIRROR_CLAMP_EXT"; case 0x8743: return "GL_MIRROR_CLAMP_TO_EDGE_EXT"; case 0x8750: return "GL_DEPTH_STENCIL_MESA"; case 0x8751: return "GL_UNSIGNED_INT_24_8_MESA"; case 0x8752: return "GL_UNSIGNED_INT_8_24_REV_MESA"; case 0x8753: return "GL_UNSIGNED_SHORT_15_1_MESA"; case 0x8754: return "GL_UNSIGNED_SHORT_1_15_REV_MESA"; case 0x8757: return "GL_YCBCR_MESA"; case 0x8758: return "GL_PACK_INVERT_MESA"; case 0x8759: return "GL_DEBUG_OBJECT_MESA"; // case 0x8759: return "GL_TEXTURE_1D_STACK_MESAX"; case 0x8764: return "GL_BUFFER_SIZE"; case 0x8765: return "GL_BUFFER_USAGE"; case 0x8780: return "GL_VERTEX_SHADER_EXT"; case 0x8781: return "GL_VERTEX_SHADER_BINDING_EXT"; case 0x8782: return "GL_OP_INDEX_EXT"; case 0x8783: return "GL_OP_NEGATE_EXT"; case 0x8784: return "GL_OP_DOT3_EXT"; case 0x8785: return "GL_OP_DOT4_EXT"; case 0x8786: return "GL_OP_MUL_EXT"; case 0x8787: return "GL_OP_ADD_EXT"; case 0x8788: return "GL_OP_MADD_EXT"; case 0x8789: return "GL_OP_FRAC_EXT"; case 0x8790: return "GL_OP_ROUND_EXT"; case 0x8791: return "GL_OP_EXP_BASE_2_EXT"; case 0x8792: return "GL_OP_LOG_BASE_2_EXT"; case 0x8793: return "GL_OP_POWER_EXT"; case 0x8794: return "GL_OP_RECIP_EXT"; case 0x8795: return "GL_OP_RECIP_SQRT_EXT"; case 0x8796: return "GL_OP_SUB_EXT"; case 0x8797: return "GL_OP_CROSS_PRODUCT_EXT"; case 0x8798: return "GL_OP_MULTIPLY_MATRIX_EXT"; case 0x8799: return "GL_OP_MOV_EXT"; case 0x8800: return "GL_STENCIL_BACK_FUNC"; case 0x8801: return "GL_STENCIL_BACK_FAIL"; case 0x8802: return "GL_STENCIL_BACK_PASS_DEPTH_FAIL"; case 0x8803: return "GL_STENCIL_BACK_PASS_DEPTH_PASS"; case 0x8804: return "GL_FRAGMENT_PROGRAM_ARB"; case 0x8805: return "GL_PROGRAM_ALU_INSTRUCTIONS_ARB"; case 0x8806: return "GL_PROGRAM_TEX_INSTRUCTIONS_ARB"; case 0x8807: return "GL_PROGRAM_TEX_INDIRECTIONS_ARB"; case 0x8808: return "GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"; case 0x8809: return "GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"; case 0x8810: return "GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"; case 0x8814: return "GL_RGBA32F"; case 0x8815: return "GL_RGB32F"; case 0x8816: return "GL_ALPHA32F_ARB"; case 0x8817: return "GL_INTENSITY32F_ARB"; case 0x8818: return "GL_LUMINANCE32F_ARB"; case 0x8819: return "GL_LUMINANCE_ALPHA32F_ARB"; case 0x8820: return "GL_RGBA_FLOAT_MODE_ARB"; case 0x8824: return "GL_MAX_DRAW_BUFFERS"; case 0x8825: return "GL_DRAW_BUFFER0"; case 0x8826: return "GL_DRAW_BUFFER1"; case 0x8827: return "GL_DRAW_BUFFER2"; case 0x8828: return "GL_DRAW_BUFFER3"; case 0x8829: return "GL_DRAW_BUFFER4"; case 0x8830: return "GL_DRAW_BUFFER11"; case 0x8831: return "GL_DRAW_BUFFER12"; case 0x8832: return "GL_DRAW_BUFFER13"; case 0x8833: return "GL_DRAW_BUFFER14"; case 0x8834: return "GL_DRAW_BUFFER15"; case 0x8840: return "GL_MATRIX_PALETTE_ARB"; case 0x8841: return "GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"; case 0x8842: return "GL_MAX_PALETTE_MATRICES_ARB"; case 0x8843: return "GL_CURRENT_PALETTE_MATRIX_ARB"; case 0x8844: return "GL_MATRIX_INDEX_ARRAY_ARB"; case 0x8845: return "GL_CURRENT_MATRIX_INDEX_ARB"; case 0x8846: return "GL_MATRIX_INDEX_ARRAY_SIZE_ARB"; case 0x8847: return "GL_MATRIX_INDEX_ARRAY_TYPE_ARB"; case 0x8848: return "GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"; case 0x8849: return "GL_MATRIX_INDEX_ARRAY_POINTER_ARB"; case 0x8861: return "GL_POINT_SPRITE"; case 0x8862: return "GL_COORD_REPLACE"; case 0x8864: return "GL_QUERY_COUNTER_BITS"; case 0x8865: return "GL_CURRENT_QUERY"; case 0x8866: return "GL_QUERY_RESULT"; case 0x8867: return "GL_QUERY_RESULT_AVAILABLE"; case 0x8869: return "GL_MAX_VERTEX_ATTRIBS"; case 0x8871: return "GL_MAX_TEXTURE_COORDS"; case 0x8872: return "GL_MAX_TEXTURE_IMAGE_UNITS"; case 0x8874: return "GL_PROGRAM_ERROR_STRING_ARB"; case 0x8875: return "GL_PROGRAM_FORMAT_ASCII_ARB"; case 0x8876: return "GL_PROGRAM_FORMAT_ARB"; case 0x8890: return "GL_DEPTH_BOUNDS_TEST_EXT"; case 0x8891: return "GL_DEPTH_BOUNDS_EXT"; case 0x8892: return "GL_ARRAY_BUFFER"; case 0x8893: return "GL_ELEMENT_ARRAY_BUFFER"; case 0x8894: return "GL_ARRAY_BUFFER_BINDING"; case 0x8895: return "GL_ELEMENT_ARRAY_BUFFER_BINDING"; case 0x8896: return "GL_VERTEX_ARRAY_BUFFER_BINDING"; case 0x8897: return "GL_NORMAL_ARRAY_BUFFER_BINDING"; case 0x8898: return "GL_COLOR_ARRAY_BUFFER_BINDING"; case 0x8899: return "GL_INDEX_ARRAY_BUFFER_BINDING"; case 0x8904: return "GL_MIN_PROGRAM_TEXEL_OFFSET"; case 0x8905: return "GL_MAX_PROGRAM_TEXEL_OFFSET"; case 0x8910: return "GL_STENCIL_TEST_TWO_SIDE_EXT"; case 0x8911: return "GL_ACTIVE_STENCIL_FACE_EXT"; case 0x8912: return "GL_MIRROR_CLAMP_TO_BORDER_EXT"; case 0x8914: return "GL_SAMPLES_PASSED"; case 0x8916: return "GL_GEOMETRY_VERTICES_OUT"; case 0x8917: return "GL_GEOMETRY_INPUT_TYPE"; case 0x8918: return "GL_GEOMETRY_OUTPUT_TYPE"; case 0x8919: return "GL_SAMPLER_BINDING"; case 0x8980: return "GL_INTERLACE_OML"; case 0x8981: return "GL_INTERLACE_READ_OML"; case 0x8982: return "GL_FORMAT_SUBSAMPLE_24_24_OML"; case 0x8983: return "GL_FORMAT_SUBSAMPLE_244_244_OML"; case 0x8984: return "GL_PACK_RESAMPLE_OML"; case 0x8985: return "GL_UNPACK_RESAMPLE_OML"; case 0x8986: return "GL_RESAMPLE_REPLICATE_OML"; case 0x8987: return "GL_RESAMPLE_ZERO_FILL_OML"; case 0x8988: return "GL_RESAMPLE_AVERAGE_OML"; case 0x8989: return "GL_RESAMPLE_DECIMATE_OML"; case 0x9001: return "GL_SAMPLER_BUFFER_AMD"; case 0x9002: return "GL_INT_SAMPLER_BUFFER_AMD"; case 0x9003: return "GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"; case 0x9004: return "GL_TESSELLATION_MODE_AMD"; case 0x9005: return "GL_TESSELLATION_FACTOR_AMD"; case 0x9006: return "GL_DISCRETE_AMD"; case 0x9007: return "GL_CONTINUOUS_AMD"; case 0x9009: return "GL_TEXTURE_CUBE_MAP_ARRAY"; case 0x9010: return "GL_ALPHA_SNORM"; case 0x9011: return "GL_LUMINANCE_SNORM"; case 0x9012: return "GL_LUMINANCE_ALPHA_SNORM"; case 0x9013: return "GL_INTENSITY_SNORM"; case 0x9014: return "GL_ALPHA8_SNORM"; case 0x9015: return "GL_LUMINANCE8_SNORM"; case 0x9016: return "GL_LUMINANCE8_ALPHA8_SNORM"; case 0x9017: return "GL_INTENSITY8_SNORM"; case 0x9018: return "GL_ALPHA16_SNORM"; case 0x9019: return "GL_LUMINANCE16_SNORM"; case 0x9050: return "GL_IMAGE_CUBE_EXT"; case 0x9051: return "GL_IMAGE_BUFFER_EXT"; case 0x9052: return "GL_IMAGE_1D_ARRAY_EXT"; case 0x9053: return "GL_IMAGE_2D_ARRAY_EXT"; case 0x9054: return "GL_IMAGE_CUBE_MAP_ARRAY_EXT"; case 0x9055: return "GL_IMAGE_2D_MULTISAMPLE_EXT"; case 0x9056: return "GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"; case 0x9057: return "GL_INT_IMAGE_1D_EXT"; case 0x9058: return "GL_INT_IMAGE_2D_EXT"; case 0x9059: return "GL_INT_IMAGE_3D_EXT"; case 0x9060: return "GL_INT_IMAGE_2D_MULTISAMPLE_EXT"; case 0x9061: return "GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"; case 0x9062: return "GL_UNSIGNED_INT_IMAGE_1D_EXT"; case 0x9063: return "GL_UNSIGNED_INT_IMAGE_2D_EXT"; case 0x9064: return "GL_UNSIGNED_INT_IMAGE_3D_EXT"; case 0x9065: return "GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"; case 0x9066: return "GL_UNSIGNED_INT_IMAGE_CUBE_EXT"; case 0x9067: return "GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"; case 0x9068: return "GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"; case 0x9069: return "GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"; case 0x9100: return "GL_TEXTURE_2D_MULTISAMPLE"; case 0x9101: return "GL_PROXY_TEXTURE_2D_MULTISAMPLE"; case 0x9102: return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY"; case 0x9103: return "GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"; case 0x9104: return "GL_TEXTURE_BINDING_2D_MULTISAMPLE"; case 0x9105: return "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"; case 0x9106: return "GL_TEXTURE_SAMPLES"; case 0x9107: return "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"; case 0x9108: return "GL_SAMPLER_2D_MULTISAMPLE"; case 0x9109: return "GL_INT_SAMPLER_2D_MULTISAMPLE"; case 0x9110: return "GL_MAX_INTEGER_SAMPLES"; case 0x9111: return "GL_MAX_SERVER_WAIT_TIMEOUT"; case 0x9112: return "GL_OBJECT_TYPE"; case 0x9113: return "GL_SYNC_CONDITION"; case 0x9114: return "GL_SYNC_STATUS"; case 0x9115: return "GL_SYNC_FLAGS"; case 0x9116: return "GL_SYNC_FENCE"; case 0x9117: return "GL_SYNC_GPU_COMMANDS_COMPLETE"; case 0x9118: return "GL_UNSIGNALED"; case 0x9119: return "GL_SIGNALED"; case 0x9120: return "GL_BUFFER_MAP_LENGTH"; case 0x9121: return "GL_BUFFER_MAP_OFFSET"; case 0x9122: return "GL_MAX_VERTEX_OUTPUT_COMPONENTS"; case 0x9123: return "GL_MAX_GEOMETRY_INPUT_COMPONENTS"; case 0x9124: return "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"; case 0x9125: return "GL_MAX_FRAGMENT_INPUT_COMPONENTS"; case 0x9126: return "GL_CONTEXT_PROFILE_MASK"; case 0x9143: return "GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"; case 0x9144: return "GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"; case 0x9145: return "GL_DEBUG_LOGGED_MESSAGES_ARB"; case 0x9146: return "GL_DEBUG_SEVERITY_HIGH_ARB"; case 0x9147: return "GL_DEBUG_SEVERITY_MEDIUM_ARB"; case 0x9148: return "GL_DEBUG_SEVERITY_LOW_ARB"; case 0x9149: return "GL_DEBUG_CATEGORY_API_ERROR_AMD"; case 0x9150: return "GL_DEBUG_CATEGORY_OTHER_AMD"; case 0x9151: return "GL_DATA_BUFFER_AMD"; case 0x9152: return "GL_PERFORMANCE_MONITOR_AMD"; case 0x9153: return "GL_QUERY_OBJECT_AMD"; case 0x9154: return "GL_VERTEX_ARRAY_OBJECT_AMD"; case 0x9155: return "GL_SAMPLER_OBJECT_AMD"; } return NULL; } |
Added jni/glshim/src/util/gl_str.h.
> > > > > > > > | 1 2 3 4 5 6 7 8 | #include <GL/gl.h> char *gl_bits_glPushAttrib(int value); char *gl_bits_glPushClientAttrib(int value); char *gl_bits_glCreateShader(int value); const char *gl_str(int value); const char *gl_str_glMap(int value); const char *gl_str_primitive(int value); |
Added jni/glshim/src/util/khash.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 | /* The MIT License Copyright (c) 2008, 2009, 2011 by Attractive Chaos <attractor@live.co.uk> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* An example: #include "khash.h" KHASH_MAP_INIT_INT(32, char) int main() { int ret, is_missing; khiter_t k; khash_t(32) *h = kh_init(32); k = kh_put(32, h, 5, &ret); kh_value(h, k) = 10; k = kh_get(32, h, 10); is_missing = (k == kh_end(h)); k = kh_get(32, h, 5); kh_del(32, h, k); for (k = kh_begin(h); k != kh_end(h); ++k) if (kh_exist(h, k)) kh_value(h, k) = 1; kh_destroy(32, h); return 0; } */ /* 2013-05-02 (0.2.8): * Use quadratic probing. When the capacity is power of 2, stepping function i*(i+1)/2 guarantees to traverse each bucket. It is better than double hashing on cache performance and is more robust than linear probing. In theory, double hashing should be more robust than quadratic probing. However, my implementation is probably not for large hash tables, because the second hash function is closely tied to the first hash function, which reduce the effectiveness of double hashing. Reference: http://research.cs.vt.edu/AVresearch/hashing/quadratic.php 2011-12-29 (0.2.7): * Minor code clean up; no actual effect. 2011-09-16 (0.2.6): * The capacity is a power of 2. This seems to dramatically improve the speed for simple keys. Thank Zilong Tan for the suggestion. Reference: - http://code.google.com/p/ulib/ - http://nothings.org/computer/judy/ * Allow to optionally use linear probing which usually has better performance for random input. Double hashing is still the default as it is more robust to certain non-random input. * Added Wang's integer hash function (not used by default). This hash function is more robust to certain non-random input. 2011-02-14 (0.2.5): * Allow to declare global functions. 2009-09-26 (0.2.4): * Improve portability 2008-09-19 (0.2.3): * Corrected the example * Improved interfaces 2008-09-11 (0.2.2): * Improved speed a little in kh_put() 2008-09-10 (0.2.1): * Added kh_clear() * Fixed a compiling error 2008-09-02 (0.2.0): * Changed to token concatenation which increases flexibility. 2008-08-31 (0.1.2): * Fixed a bug in kh_get(), which has not been tested previously. 2008-08-31 (0.1.1): * Added destructor */ #ifndef __AC_KHASH_H #define __AC_KHASH_H /*! @header Generic hash table library. */ #define AC_VERSION_KHASH_H "0.2.8" #include <stdlib.h> #include <string.h> #include <limits.h> /* compiler specific configuration */ #if UINT_MAX == 0xffffffffu typedef unsigned int khint32_t; #elif ULONG_MAX == 0xffffffffu typedef unsigned long khint32_t; #endif #if ULONG_MAX == ULLONG_MAX typedef unsigned long khint64_t; #else typedef unsigned long long khint64_t; #endif #ifdef _MSC_VER #define kh_inline __inline #else #define kh_inline inline #endif typedef khint32_t khint_t; typedef khint_t khiter_t; #define __ac_isempty(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&2) #define __ac_isdel(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&1) #define __ac_iseither(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&3) #define __ac_set_isdel_false(flag, i) (flag[i>>4]&=~(1ul<<((i&0xfU)<<1))) #define __ac_set_isempty_false(flag, i) (flag[i>>4]&=~(2ul<<((i&0xfU)<<1))) #define __ac_set_isboth_false(flag, i) (flag[i>>4]&=~(3ul<<((i&0xfU)<<1))) #define __ac_set_isdel_true(flag, i) (flag[i>>4]|=1ul<<((i&0xfU)<<1)) #define __ac_fsize(m) ((m) < 16? 1 : (m)>>4) #ifndef kroundup32 #define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) #endif #ifndef kcalloc #define kcalloc(N,Z) calloc(N,Z) #endif #ifndef kmalloc #define kmalloc(Z) malloc(Z) #endif #ifndef krealloc #define krealloc(P,Z) realloc(P,Z) #endif #ifndef kfree #define kfree(P) free(P) #endif static const double __ac_HASH_UPPER = 0.77; #define __KHASH_TYPE(name, khkey_t, khval_t) \ typedef struct { \ khint_t n_buckets, size, n_occupied, upper_bound; \ khint32_t *flags; \ khkey_t *keys; \ khval_t *vals; \ } kh_##name##_t; #define __KHASH_PROTOTYPES(name, khkey_t, khval_t) \ extern kh_##name##_t *kh_init_##name(void); \ extern void kh_destroy_##name(kh_##name##_t *h); \ extern void kh_clear_##name(kh_##name##_t *h); \ extern khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key); \ extern int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets); \ extern khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret); \ extern void kh_del_##name(kh_##name##_t *h, khint_t x); #define __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ SCOPE kh_##name##_t *kh_init_##name(void) { \ return (kh_##name##_t*)kcalloc(1, sizeof(kh_##name##_t)); \ } \ SCOPE void kh_destroy_##name(kh_##name##_t *h) \ { \ if (h) { \ kfree((void *)h->keys); kfree(h->flags); \ kfree((void *)h->vals); \ kfree(h); \ } \ } \ SCOPE void kh_clear_##name(kh_##name##_t *h) \ { \ if (h && h->flags) { \ memset(h->flags, 0xaa, __ac_fsize(h->n_buckets) * sizeof(khint32_t)); \ h->size = h->n_occupied = 0; \ } \ } \ SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ { \ if (h->n_buckets) { \ khint_t k, i, last, mask, step = 0; \ mask = h->n_buckets - 1; \ k = __hash_func(key); i = k & mask; \ last = i; \ while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ i = (i + (++step)) & mask; \ if (i == last) return h->n_buckets; \ } \ return __ac_iseither(h->flags, i)? h->n_buckets : i; \ } else return 0; \ } \ SCOPE int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ { /* This function uses 0.25*n_buckets bytes of working space instead of [sizeof(key_t+val_t)+.25]*n_buckets. */ \ khint32_t *new_flags = 0; \ khint_t j = 1; \ { \ kroundup32(new_n_buckets); \ if (new_n_buckets < 4) new_n_buckets = 4; \ if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) j = 0; /* requested size is too small */ \ else { /* hash table size to be changed (shrink or expand); rehash */ \ new_flags = (khint32_t*)kmalloc(__ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ if (!new_flags) return -1; \ memset(new_flags, 0xaa, __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \ if (h->n_buckets < new_n_buckets) { /* expand */ \ khkey_t *new_keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ if (!new_keys) return -1; \ h->keys = new_keys; \ if (kh_is_map) { \ khval_t *new_vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ if (!new_vals) return -1; \ h->vals = new_vals; \ } \ } /* otherwise shrink */ \ } \ } \ if (j) { /* rehashing is needed */ \ for (j = 0; j != h->n_buckets; ++j) { \ if (__ac_iseither(h->flags, j) == 0) { \ khkey_t key = h->keys[j]; \ khval_t val; \ khint_t new_mask; \ new_mask = new_n_buckets - 1; \ if (kh_is_map) val = h->vals[j]; \ __ac_set_isdel_true(h->flags, j); \ while (1) { /* kick-out process; sort of like in Cuckoo hashing */ \ khint_t k, i, step = 0; \ k = __hash_func(key); \ i = k & new_mask; \ while (!__ac_isempty(new_flags, i)) i = (i + (++step)) & new_mask; \ __ac_set_isempty_false(new_flags, i); \ if (i < h->n_buckets && __ac_iseither(h->flags, i) == 0) { /* kick out the existing element */ \ { khkey_t tmp = h->keys[i]; h->keys[i] = key; key = tmp; } \ if (kh_is_map) { khval_t tmp = h->vals[i]; h->vals[i] = val; val = tmp; } \ __ac_set_isdel_true(h->flags, i); /* mark it as deleted in the old hash table */ \ } else { /* write the element and jump out of the loop */ \ h->keys[i] = key; \ if (kh_is_map) h->vals[i] = val; \ break; \ } \ } \ } \ } \ if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ h->keys = (khkey_t*)krealloc((void *)h->keys, new_n_buckets * sizeof(khkey_t)); \ if (kh_is_map) h->vals = (khval_t*)krealloc((void *)h->vals, new_n_buckets * sizeof(khval_t)); \ } \ kfree(h->flags); /* free the working space */ \ h->flags = new_flags; \ h->n_buckets = new_n_buckets; \ h->n_occupied = h->size; \ h->upper_bound = (khint_t)(h->n_buckets * __ac_HASH_UPPER + 0.5); \ } \ return 0; \ } \ SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ { \ khint_t x; \ if (h->n_occupied >= h->upper_bound) { /* update the hash table */ \ if (h->n_buckets > (h->size<<1)) { \ if (kh_resize_##name(h, h->n_buckets - 1) < 0) { /* clear "deleted" elements */ \ *ret = -1; return h->n_buckets; \ } \ } else if (kh_resize_##name(h, h->n_buckets + 1) < 0) { /* expand the hash table */ \ *ret = -1; return h->n_buckets; \ } \ } /* TODO: to implement automatically shrinking; resize() already support shrinking */ \ { \ khint_t k, i, site, last, mask = h->n_buckets - 1, step = 0; \ x = site = h->n_buckets; k = __hash_func(key); i = k & mask; \ if (__ac_isempty(h->flags, i)) x = i; /* for speed up */ \ else { \ last = i; \ while (!__ac_isempty(h->flags, i) && (__ac_isdel(h->flags, i) || !__hash_equal(h->keys[i], key))) { \ if (__ac_isdel(h->flags, i)) site = i; \ i = (i + (++step)) & mask; \ if (i == last) { x = site; break; } \ } \ if (x == h->n_buckets) { \ if (__ac_isempty(h->flags, i) && site != h->n_buckets) x = site; \ else x = i; \ } \ } \ } \ if (__ac_isempty(h->flags, x)) { /* not present at all */ \ h->keys[x] = key; \ __ac_set_isboth_false(h->flags, x); \ ++h->size; ++h->n_occupied; \ *ret = 1; \ } else if (__ac_isdel(h->flags, x)) { /* deleted */ \ h->keys[x] = key; \ __ac_set_isboth_false(h->flags, x); \ ++h->size; \ *ret = 2; \ } else *ret = 0; /* Don't touch h->keys[x] if present and not deleted */ \ return x; \ } \ SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ { \ if (x != h->n_buckets && !__ac_iseither(h->flags, x)) { \ __ac_set_isdel_true(h->flags, x); \ --h->size; \ } \ } #define KHASH_DECLARE(name, khkey_t, khval_t) \ __KHASH_TYPE(name, khkey_t, khval_t) \ __KHASH_PROTOTYPES(name, khkey_t, khval_t) #define KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ __KHASH_TYPE(name, khkey_t, khval_t) \ __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) #define KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ KHASH_INIT2(name, static kh_inline, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) /* --- BEGIN OF HASH FUNCTIONS --- */ /*! @function @abstract Integer hash function @param key The integer [khint32_t] @return The hash value [khint_t] */ #define kh_int_hash_func(key) (khint32_t)(key) /*! @function @abstract Integer comparison function */ #define kh_int_hash_equal(a, b) ((a) == (b)) /*! @function @abstract 64-bit integer hash function @param key The integer [khint64_t] @return The hash value [khint_t] */ #define kh_int64_hash_func(key) (khint32_t)((key)>>33^(key)^(key)<<11) /*! @function @abstract 64-bit integer comparison function */ #define kh_int64_hash_equal(a, b) ((a) == (b)) /*! @function @abstract const char* hash function @param s Pointer to a null terminated string @return The hash value */ static kh_inline khint_t __ac_X31_hash_string(const char *s) { khint_t h = (khint_t)*s; if (h) for (++s ; *s; ++s) h = (h << 5) - h + (khint_t)*s; return h; } /*! @function @abstract Another interface to const char* hash function @param key Pointer to a null terminated string [const char*] @return The hash value [khint_t] */ #define kh_str_hash_func(key) __ac_X31_hash_string(key) /*! @function @abstract Const char* comparison function */ #define kh_str_hash_equal(a, b) (strcmp(a, b) == 0) static kh_inline khint_t __ac_Wang_hash(khint_t key) { key += ~(key << 15); key ^= (key >> 10); key += (key << 3); key ^= (key >> 6); key += ~(key << 11); key ^= (key >> 16); return key; } #define kh_int_hash_func2(k) __ac_Wang_hash((khint_t)key) /* --- END OF HASH FUNCTIONS --- */ /* Other convenient macros... */ /*! @abstract Type of the hash table. @param name Name of the hash table [symbol] */ #define khash_t(name) kh_##name##_t /*! @function @abstract Initiate a hash table. @param name Name of the hash table [symbol] @return Pointer to the hash table [khash_t(name)*] */ #define kh_init(name) kh_init_##name() /*! @function @abstract Destroy a hash table. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] */ #define kh_destroy(name, h) kh_destroy_##name(h) /*! @function @abstract Reset a hash table without deallocating memory. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] */ #define kh_clear(name, h) kh_clear_##name(h) /*! @function @abstract Resize a hash table. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] @param s New size [khint_t] */ #define kh_resize(name, h, s) kh_resize_##name(h, s) /*! @function @abstract Insert a key to the hash table. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] @param k Key [type of keys] @param r Extra return code: 0 if the key is present in the hash table; 1 if the bucket is empty (never used); 2 if the element in the bucket has been deleted [int*] @return Iterator to the inserted element [khint_t] */ #define kh_put(name, h, k, r) kh_put_##name(h, k, r) /*! @function @abstract Retrieve a key from the hash table. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] @param k Key [type of keys] @return Iterator to the found element, or kh_end(h) if the element is absent [khint_t] */ #define kh_get(name, h, k) kh_get_##name(h, k) /*! @function @abstract Remove a key from the hash table. @param name Name of the hash table [symbol] @param h Pointer to the hash table [khash_t(name)*] @param k Iterator to the element to be deleted [khint_t] */ #define kh_del(name, h, k) kh_del_##name(h, k) /*! @function @abstract Test whether a bucket contains data. @param h Pointer to the hash table [khash_t(name)*] @param x Iterator to the bucket [khint_t] @return 1 if containing data; 0 otherwise [int] */ #define kh_exist(h, x) (!__ac_iseither((h)->flags, (x))) /*! @function @abstract Get key given an iterator @param h Pointer to the hash table [khash_t(name)*] @param x Iterator to the bucket [khint_t] @return Key [type of keys] */ #define kh_key(h, x) ((h)->keys[x]) /*! @function @abstract Get value given an iterator @param h Pointer to the hash table [khash_t(name)*] @param x Iterator to the bucket [khint_t] @return Value [type of values] @discussion For hash sets, calling this results in segfault. */ #define kh_val(h, x) ((h)->vals[x]) /*! @function @abstract Alias of kh_val() */ #define kh_value(h, x) ((h)->vals[x]) /*! @function @abstract Get the start iterator @param h Pointer to the hash table [khash_t(name)*] @return The start iterator [khint_t] */ #define kh_begin(h) (khint_t)(0) /*! @function @abstract Get the end iterator @param h Pointer to the hash table [khash_t(name)*] @return The end iterator [khint_t] */ #define kh_end(h) ((h)->n_buckets) /*! @function @abstract Get the number of elements in the hash table @param h Pointer to the hash table [khash_t(name)*] @return Number of elements in the hash table [khint_t] */ #define kh_size(h) ((h)->size) /*! @function @abstract Get the number of buckets in the hash table @param h Pointer to the hash table [khash_t(name)*] @return Number of buckets in the hash table [khint_t] */ #define kh_n_buckets(h) ((h)->n_buckets) /*! @function @abstract Iterate over the entries in the hash table @param h Pointer to the hash table [khash_t(name)*] @param kvar Variable to which key will be assigned @param vvar Variable to which value will be assigned @param code Block of code to execute */ #define kh_foreach(h, kvar, vvar, code) { khint_t __i; \ for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ if (!kh_exist(h,__i)) continue; \ (kvar) = kh_key(h,__i); \ (vvar) = kh_val(h,__i); \ code; \ } } /*! @function @abstract Iterate over the values in the hash table @param h Pointer to the hash table [khash_t(name)*] @param vvar Variable to which value will be assigned @param code Block of code to execute */ #define kh_foreach_value(h, vvar, code) { khint_t __i; \ for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ if (!kh_exist(h,__i)) continue; \ (vvar) = kh_val(h,__i); \ code; \ } } /* More conenient interfaces */ /*! @function @abstract Instantiate a hash set containing integer keys @param name Name of the hash table [symbol] */ #define KHASH_SET_INIT_INT(name) \ KHASH_INIT(name, khint32_t, char, 0, kh_int_hash_func, kh_int_hash_equal) /*! @function @abstract Instantiate a hash map containing integer keys @param name Name of the hash table [symbol] @param khval_t Type of values [type] */ #define KHASH_MAP_INIT_INT(name, khval_t) \ KHASH_INIT(name, khint32_t, khval_t, 1, kh_int_hash_func, kh_int_hash_equal) /*! @function @abstract Instantiate a hash map containing 64-bit integer keys @param name Name of the hash table [symbol] */ #define KHASH_SET_INIT_INT64(name) \ KHASH_INIT(name, khint64_t, char, 0, kh_int64_hash_func, kh_int64_hash_equal) /*! @function @abstract Instantiate a hash map containing 64-bit integer keys @param name Name of the hash table [symbol] @param khval_t Type of values [type] */ #define KHASH_MAP_INIT_INT64(name, khval_t) \ KHASH_INIT(name, khint64_t, khval_t, 1, kh_int64_hash_func, kh_int64_hash_equal) typedef const char *kh_cstr_t; /*! @function @abstract Instantiate a hash map containing const char* keys @param name Name of the hash table [symbol] */ #define KHASH_SET_INIT_STR(name) \ KHASH_INIT(name, kh_cstr_t, char, 0, kh_str_hash_func, kh_str_hash_equal) /*! @function @abstract Instantiate a hash map containing const char* keys @param name Name of the hash table [symbol] @param khval_t Type of values [type] */ #define KHASH_MAP_INIT_STR(name, khval_t) \ KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal) #endif /* __AC_KHASH_H */ |
Added jni/glshim/src/util/math/eval.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 | /* * Mesa 3-D graphics library * Version: 3.5 * * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* * eval.c was written by * Bernd Barsuhn (bdbarsuh@cip.informatik.uni-erlangen.de) and * Volker Weiss (vrweiss@cip.informatik.uni-erlangen.de). * * My original implementation of evaluators was simplistic and didn't * compute surface normal vectors properly. Bernd and Volker applied * used more sophisticated methods to get better results. * * Thanks guys! */ #include "eval.h" static GLboolean init_done = false; static GLfloat inv_tab[MAX_EVAL_ORDER]; /* * Horner scheme for Bezier curves * * Bezier curves can be computed via a Horner scheme. * Horner is numerically less stable than the de Casteljau * algorithm, but it is faster. For curves of degree n * the complexity of Horner is O(n) and de Casteljau is O(n^2). * Since stability is not important for displaying curve * points I decided to use the Horner scheme. * * A cubic Bezier curve with control points b0, b1, b2, b3 can be * written as * * (([3] [3] ) [3] ) [3] * c(t) = (([0]*s*b0 + [1]*t*b1)*s + [2]*t^2*b2)*s + [3]*t^2*b3 * * [n] * where s=1-t and the binomial coefficients [i]. These can * be computed iteratively using the identity: * * [n] [n ] [n] * [i] = (n-i+1)/i * [i-1] and [0] = 1 */ void _math_horner_bezier_curve(const GLfloat * cp, GLfloat * out, GLfloat t, GLuint dim, GLuint order) { if (! init_done) _math_init_eval(); GLfloat s, powert, bincoeff; GLuint i, k; if (order >= 2) { bincoeff = (GLfloat) (order - 1); s = 1.0F - t; for (k = 0; k < dim; k++) out[k] = s * cp[k] + bincoeff * t * cp[dim + k]; for (i = 2, cp += 2 * dim, powert = t * t; i < order; i++, powert *= t, cp += dim) { bincoeff *= (GLfloat) (order - i); bincoeff *= inv_tab[i]; for (k = 0; k < dim; k++) out[k] = s * out[k] + bincoeff * powert * cp[k]; } } else { /* order=1 -> constant curve */ for (k = 0; k < dim; k++) out[k] = cp[k]; } } /* * Tensor product Bezier surfaces * * Again the Horner scheme is used to compute a point on a * TP Bezier surface. First a control polygon for a curve * on the surface in one parameter direction is computed, * then the point on the curve for the other parameter * direction is evaluated. * * To store the curve control polygon additional storage * for max(uorder,vorder) points is needed in the * control net cn. */ void _math_horner_bezier_surf(GLfloat * cn, GLfloat * out, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder) { if (! init_done) _math_init_eval(); GLfloat *cp = cn + uorder * vorder * dim; GLuint i, uinc = vorder * dim; if (vorder > uorder) { if (uorder >= 2) { GLfloat s, poweru, bincoeff; GLuint j, k; /* Compute the control polygon for the surface-curve in u-direction */ for (j = 0; j < vorder; j++) { GLfloat *ucp = &cn[j * dim]; /* Each control point is the point for parameter u on a */ /* curve defined by the control polygons in u-direction */ bincoeff = (GLfloat) (uorder - 1); s = 1.0F - u; for (k = 0; k < dim; k++) cp[j * dim + k] = s * ucp[k] + bincoeff * u * ucp[uinc + k]; for (i = 2, ucp += 2 * uinc, poweru = u * u; i < uorder; i++, poweru *= u, ucp += uinc) { bincoeff *= (GLfloat) (uorder - i); bincoeff *= inv_tab[i]; for (k = 0; k < dim; k++) cp[j * dim + k] = s * cp[j * dim + k] + bincoeff * poweru * ucp[k]; } } /* Evaluate curve point in v */ _math_horner_bezier_curve(cp, out, v, dim, vorder); } else /* uorder=1 -> cn defines a curve in v */ _math_horner_bezier_curve(cn, out, v, dim, vorder); } else { /* vorder <= uorder */ if (vorder > 1) { GLuint i; /* Compute the control polygon for the surface-curve in u-direction */ for (i = 0; i < uorder; i++, cn += uinc) { /* For constant i all cn[i][j] (j=0..vorder) are located */ /* on consecutive memory locations, so we can use */ /* horner_bezier_curve to compute the control points */ _math_horner_bezier_curve(cn, &cp[i * dim], v, dim, vorder); } /* Evaluate curve point in u */ _math_horner_bezier_curve(cp, out, u, dim, uorder); } else /* vorder=1 -> cn defines a curve in u */ _math_horner_bezier_curve(cn, out, u, dim, uorder); } } /* * The direct de Casteljau algorithm is used when a point on the * surface and the tangent directions spanning the tangent plane * should be computed (this is needed to compute normals to the * surface). In this case the de Casteljau algorithm approach is * nicer because a point and the partial derivatives can be computed * at the same time. To get the correct tangent length du and dv * must be multiplied with the (u2-u1)/uorder-1 and (v2-v1)/vorder-1. * Since only the directions are needed, this scaling step is omitted. * * De Casteljau needs additional storage for uorder*vorder * values in the control net cn. */ void _math_de_casteljau_surf(GLfloat * cn, GLfloat * out, GLfloat * du, GLfloat * dv, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder) { GLfloat *dcn = cn + uorder * vorder * dim; GLfloat us = 1.0F - u, vs = 1.0F - v; GLuint h, i, j, k; GLuint minorder = uorder < vorder ? uorder : vorder; GLuint uinc = vorder * dim; GLuint dcuinc = vorder; /* Each component is evaluated separately to save buffer space */ /* This does not drasticaly decrease the performance of the */ /* algorithm. If additional storage for (uorder-1)*(vorder-1) */ /* points would be available, the components could be accessed */ /* in the innermost loop which could lead to less cache misses. */ #define CN(I,J,K) cn[(I)*uinc+(J)*dim+(K)] #define DCN(I, J) dcn[(I)*dcuinc+(J)] if (minorder < 3) { if (uorder == vorder) { for (k = 0; k < dim; k++) { /* Derivative direction in u */ du[k] = vs * (CN(1, 0, k) - CN(0, 0, k)) + v * (CN(1, 1, k) - CN(0, 1, k)); /* Derivative direction in v */ dv[k] = us * (CN(0, 1, k) - CN(0, 0, k)) + u * (CN(1, 1, k) - CN(1, 0, k)); /* bilinear de Casteljau step */ out[k] = us * (vs * CN(0, 0, k) + v * CN(0, 1, k)) + u * (vs * CN(1, 0, k) + v * CN(1, 1, k)); } } else if (minorder == uorder) { for (k = 0; k < dim; k++) { /* bilinear de Casteljau step */ DCN(1, 0) = CN(1, 0, k) - CN(0, 0, k); DCN(0, 0) = us * CN(0, 0, k) + u * CN(1, 0, k); for (j = 0; j < vorder - 1; j++) { /* for the derivative in u */ DCN(1, j + 1) = CN(1, j + 1, k) - CN(0, j + 1, k); DCN(1, j) = vs * DCN(1, j) + v * DCN(1, j + 1); /* for the `point' */ DCN(0, j + 1) = us * CN(0, j + 1, k) + u * CN(1, j + 1, k); DCN(0, j) = vs * DCN(0, j) + v * DCN(0, j + 1); } /* remaining linear de Casteljau steps until the second last step */ for (h = minorder; h < vorder - 1; h++) for (j = 0; j < vorder - h; j++) { /* for the derivative in u */ DCN(1, j) = vs * DCN(1, j) + v * DCN(1, j + 1); /* for the `point' */ DCN(0, j) = vs * DCN(0, j) + v * DCN(0, j + 1); } /* derivative direction in v */ dv[k] = DCN(0, 1) - DCN(0, 0); /* derivative direction in u */ du[k] = vs * DCN(1, 0) + v * DCN(1, 1); /* last linear de Casteljau step */ out[k] = vs * DCN(0, 0) + v * DCN(0, 1); } } else { /* minorder == vorder */ for (k = 0; k < dim; k++) { /* bilinear de Casteljau step */ DCN(0, 1) = CN(0, 1, k) - CN(0, 0, k); DCN(0, 0) = vs * CN(0, 0, k) + v * CN(0, 1, k); for (i = 0; i < uorder - 1; i++) { /* for the derivative in v */ DCN(i + 1, 1) = CN(i + 1, 1, k) - CN(i + 1, 0, k); DCN(i, 1) = us * DCN(i, 1) + u * DCN(i + 1, 1); /* for the `point' */ DCN(i + 1, 0) = vs * CN(i + 1, 0, k) + v * CN(i + 1, 1, k); DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); } /* remaining linear de Casteljau steps until the second last step */ for (h = minorder; h < uorder - 1; h++) for (i = 0; i < uorder - h; i++) { /* for the derivative in v */ DCN(i, 1) = us * DCN(i, 1) + u * DCN(i + 1, 1); /* for the `point' */ DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); } /* derivative direction in u */ du[k] = DCN(1, 0) - DCN(0, 0); /* derivative direction in v */ dv[k] = us * DCN(0, 1) + u * DCN(1, 1); /* last linear de Casteljau step */ out[k] = us * DCN(0, 0) + u * DCN(1, 0); } } } else if (uorder == vorder) { for (k = 0; k < dim; k++) { /* first bilinear de Casteljau step */ for (i = 0; i < uorder - 1; i++) { DCN(i, 0) = us * CN(i, 0, k) + u * CN(i + 1, 0, k); for (j = 0; j < vorder - 1; j++) { DCN(i, j + 1) = us * CN(i, j + 1, k) + u * CN(i + 1, j + 1, k); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } /* remaining bilinear de Casteljau steps until the second last step */ for (h = 2; h < minorder - 1; h++) { for (i = 0; i < uorder - h; i++) { DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); for (j = 0; j < vorder - h; j++) { DCN(i, j + 1) = us * DCN(i, j + 1) + u * DCN(i + 1, j + 1); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } } /* derivative direction in u */ du[k] = vs * (DCN(1, 0) - DCN(0, 0)) + v * (DCN(1, 1) - DCN(0, 1)); /* derivative direction in v */ dv[k] = us * (DCN(0, 1) - DCN(0, 0)) + u * (DCN(1, 1) - DCN(1, 0)); /* last bilinear de Casteljau step */ out[k] = us * (vs * DCN(0, 0) + v * DCN(0, 1)) + u * (vs * DCN(1, 0) + v * DCN(1, 1)); } } else if (minorder == uorder) { for (k = 0; k < dim; k++) { /* first bilinear de Casteljau step */ for (i = 0; i < uorder - 1; i++) { DCN(i, 0) = us * CN(i, 0, k) + u * CN(i + 1, 0, k); for (j = 0; j < vorder - 1; j++) { DCN(i, j + 1) = us * CN(i, j + 1, k) + u * CN(i + 1, j + 1, k); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } /* remaining bilinear de Casteljau steps until the second last step */ for (h = 2; h < minorder - 1; h++) { for (i = 0; i < uorder - h; i++) { DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); for (j = 0; j < vorder - h; j++) { DCN(i, j + 1) = us * DCN(i, j + 1) + u * DCN(i + 1, j + 1); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } } /* last bilinear de Casteljau step */ DCN(2, 0) = DCN(1, 0) - DCN(0, 0); DCN(0, 0) = us * DCN(0, 0) + u * DCN(1, 0); for (j = 0; j < vorder - 1; j++) { /* for the derivative in u */ DCN(2, j + 1) = DCN(1, j + 1) - DCN(0, j + 1); DCN(2, j) = vs * DCN(2, j) + v * DCN(2, j + 1); /* for the `point' */ DCN(0, j + 1) = us * DCN(0, j + 1) + u * DCN(1, j + 1); DCN(0, j) = vs * DCN(0, j) + v * DCN(0, j + 1); } /* remaining linear de Casteljau steps until the second last step */ for (h = minorder; h < vorder - 1; h++) { for (j = 0; j < vorder - h; j++) { /* for the derivative in u */ DCN(2, j) = vs * DCN(2, j) + v * DCN(2, j + 1); /* for the `point' */ DCN(0, j) = vs * DCN(0, j) + v * DCN(0, j + 1); } } /* derivative direction in v */ dv[k] = DCN(0, 1) - DCN(0, 0); /* derivative direction in u */ du[k] = vs * DCN(2, 0) + v * DCN(2, 1); /* last linear de Casteljau step */ out[k] = vs * DCN(0, 0) + v * DCN(0, 1); } } else { /* minorder == vorder */ for (k = 0; k < dim; k++) { /* first bilinear de Casteljau step */ for (i = 0; i < uorder - 1; i++) { DCN(i, 0) = us * CN(i, 0, k) + u * CN(i + 1, 0, k); for (j = 0; j < vorder - 1; j++) { DCN(i, j + 1) = us * CN(i, j + 1, k) + u * CN(i + 1, j + 1, k); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } /* remaining bilinear de Casteljau steps until the second last step */ for (h = 2; h < minorder - 1; h++) { for (i = 0; i < uorder - h; i++) { DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); for (j = 0; j < vorder - h; j++) { DCN(i, j + 1) = us * DCN(i, j + 1) + u * DCN(i + 1, j + 1); DCN(i, j) = vs * DCN(i, j) + v * DCN(i, j + 1); } } } /* last bilinear de Casteljau step */ DCN(0, 2) = DCN(0, 1) - DCN(0, 0); DCN(0, 0) = vs * DCN(0, 0) + v * DCN(0, 1); for (i = 0; i < uorder - 1; i++) { /* for the derivative in v */ DCN(i + 1, 2) = DCN(i + 1, 1) - DCN(i + 1, 0); DCN(i, 2) = us * DCN(i, 2) + u * DCN(i + 1, 2); /* for the `point' */ DCN(i + 1, 0) = vs * DCN(i + 1, 0) + v * DCN(i + 1, 1); DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); } /* remaining linear de Casteljau steps until the second last step */ for (h = minorder; h < uorder - 1; h++) { for (i = 0; i < uorder - h; i++) { /* for the derivative in v */ DCN(i, 2) = us * DCN(i, 2) + u * DCN(i + 1, 2); /* for the `point' */ DCN(i, 0) = us * DCN(i, 0) + u * DCN(i + 1, 0); } } /* derivative direction in u */ du[k] = DCN(1, 0) - DCN(0, 0); /* derivative direction in v */ dv[k] = us * DCN(0, 2) + u * DCN(1, 2); /* last linear de Casteljau step */ out[k] = us * DCN(0, 0) + u * DCN(1, 0); } } #undef DCN #undef CN } /* * Do one-time initialization for evaluators. */ void _math_init_eval() { GLuint i; /* KW: precompute 1/x for useful x. */ for (i = 1; i < MAX_EVAL_ORDER; i++) inv_tab[i] = 1.0F / i; init_done = true; } |
Added jni/glshim/src/util/math/eval.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | /* * Mesa 3-D graphics library * Version: 3.5 * * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef _M_EVAL_H #define _M_EVAL_H #include "../../gl/gl.h" void _math_init_eval( void ); /* * Horner scheme for Bezier curves * * Bezier curves can be computed via a Horner scheme. * Horner is numerically less stable than the de Casteljau * algorithm, but it is faster. For curves of degree n * the complexity of Horner is O(n) and de Casteljau is O(n^2). * Since stability is not important for displaying curve * points I decided to use the Horner scheme. * * A cubic Bezier curve with control points b0, b1, b2, b3 can be * written as * * (([3] [3] ) [3] ) [3] * c(t) = (([0]*s*b0 + [1]*t*b1)*s + [2]*t^2*b2)*s + [3]*t^2*b3 * * [n] * where s=1-t and the binomial coefficients [i]. These can * be computed iteratively using the identity: * * [n] [n ] [n] * [i] = (n-i+1)/i * [i-1] and [0] = 1 */ void _math_horner_bezier_curve(const GLfloat *cp, GLfloat *out, GLfloat t, GLuint dim, GLuint order); /* * Tensor product Bezier surfaces * * Again the Horner scheme is used to compute a point on a * TP Bezier surface. First a control polygon for a curve * on the surface in one parameter direction is computed, * then the point on the curve for the other parameter * direction is evaluated. * * To store the curve control polygon additional storage * for max(uorder,vorder) points is needed in the * control net cn. */ void _math_horner_bezier_surf(GLfloat *cn, GLfloat *out, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder); /* * The direct de Casteljau algorithm is used when a point on the * surface and the tangent directions spanning the tangent plane * should be computed (this is needed to compute normals to the * surface). In this case the de Casteljau algorithm approach is * nicer because a point and the partial derivatives can be computed * at the same time. To get the correct tangent length du and dv * must be multiplied with the (u2-u1)/uorder-1 and (v2-v1)/vorder-1. * Since only the directions are needed, this scaling step is omitted. * * De Casteljau needs additional storage for uorder*vorder * values in the control net cn. */ void _math_de_casteljau_surf(GLfloat *cn, GLfloat *out, GLfloat *du, GLfloat *dv, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder); #endif |
Added jni/glshim/src/util/tack.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | #include <limits.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "tack.h" #ifndef MAX # define MAX(a, b) (((a) > (b)) ? (a) : (b)) #endif #define TACK_DEFAULT_SIZE 8 static bool tack_pop_bad(tack_t *stack) { return (stack == NULL || stack->len <= 0); } static bool tack_shift_bad(tack_t *stack) { return (stack == NULL || stack->pos >= stack->len); } static bool tack_grow(tack_t *stack, int idx) { if (stack->data == NULL) { stack->cap = TACK_DEFAULT_SIZE; stack->data = malloc(sizeof(void *) * stack->cap); if (stack->data != NULL) { return true; } } else if (MAX(stack->len, idx) >= stack->cap) { if (stack->cap > INT_MAX >> 1) { stack->cap = INT_MAX; if (stack->len == INT_MAX) { return false; } } else { stack->cap = MAX(stack->cap * 2, stack->len + idx); } void **new = realloc(stack->data, sizeof(void *) * stack->cap); if (new != NULL) { stack->data = new; return true; } } else { return true; } fprintf(stderr, "warning: tack_grow() to %d failed\n", stack->cap); return false; } void tack_clear(tack_t *stack) { free(stack->data); stack->data = NULL; stack->cap = 0; stack->len = 0; } int tack_len(tack_t *stack) { return stack->len; } void **tack_raw(tack_t *stack) { return stack->data; } void tack_push(tack_t *stack, void *data) { if (tack_grow(stack, 0)) { stack->data[stack->len++] = data; } } void *tack_pop(tack_t *stack) { if (tack_pop_bad(stack)) return NULL; return stack->data[--stack->len]; } void *tack_peek(tack_t *stack) { if (tack_pop_bad(stack)) return NULL; return stack->data[stack->len - 1]; } void *tack_peek_n(tack_t *stack, int idx) { if (tack_pop_bad(stack)) return NULL; idx = stack->len - 1 - idx; if (idx < 0 || idx > stack->len - 1) return NULL; return stack->data[idx]; } void *tack_get(tack_t *stack, int idx) { if (stack == NULL || idx < 0 || idx >= stack->len) return NULL; return stack->data[idx]; } void tack_set(tack_t *stack, int idx, void *data) { if (tack_grow(stack, idx)) { int len = MAX(stack->len, idx + 1); for (int i = stack->len; i < len; i++) { stack->data[i] = NULL; } stack->data[idx] = data; stack->len = MAX(stack->len, idx + 1); } } void *tack_cur(tack_t *stack) { if (tack_shift_bad(stack)) return NULL; return stack->data[stack->pos]; } void *tack_shift(tack_t *stack) { if (tack_shift_bad(stack)) return NULL; return stack->data[stack->pos++]; } char *tack_str_join(tack_t *stack, const char *sep) { if (stack->len == 0) { return NULL; } size_t sep_len = strlen(sep); size_t len = 0; char * const*array = (char **)stack->data; // a length-encoded string library would be really nice here for (int i = 0; i < stack->len; i++) { if (array[i] != NULL) { len += strlen(array[i]); if (i < stack->len - 1) { len += sep_len; } } } len -= sep_len; char *out = malloc(len * sizeof(char) + 1); out[len] = '\0'; char *pos = out; for (int i = 0; i < stack->len; i++) { if (array[i] != NULL) { int slen = strlen(array[i]); memcpy(pos, array[i], slen); pos += slen; if (i < stack->len - 1) { memcpy(pos, sep, sep_len); pos += sep_len; } } } return out; } |
Added jni/glshim/src/util/tack.h.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #ifndef TACK_H #define TACK_H typedef struct { void **data; int len, cap, pos; } tack_t; extern char *tack_str_join(tack_t *stack, const char *sep); extern int tack_len(tack_t *stack); extern void **tack_raw(tack_t *stack); extern void *tack_cur(tack_t *stack); extern void *tack_first(tack_t *stack); extern void *tack_get(tack_t *stack, int idx); extern void *tack_peek(tack_t *stack); extern void *tack_peek_n(tack_t *stack, int idx); extern void *tack_pop(tack_t *stack); extern void *tack_shift(tack_t *stack); extern void tack_clear(tack_t *stack); extern void tack_push(tack_t *stack, void *data); extern void tack_set(tack_t *stack, int idx, void *data); #endif |
Added jni/glshim/src/util/vectorial/LICENSE.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Copyright 2010 Mikko Lehtonen. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Added jni/glshim/src/util/vectorial/config.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_CONFIG_H #define VECTORIAL_CONFIG_H #ifndef VECTORIAL_FORCED #if defined(__SSE__) || (_M_IX86_FP > 0) || (_M_X64 > 0) #define VECTORIAL_SSE #elif defined(__ARM_NEON__) #define VECTORIAL_NEON // Don't use gnu extension for arm, buggy with some gccs with armv6 and -Os, // Also doesn't seem perform as well #elif defined(__GNUC__) && !defined(__arm__) #define VECTORIAL_GNU #else #define VECTORIAL_SCALAR #endif #endif #ifdef VECTORIAL_SCALAR #define VECTORIAL_SIMD_TYPE "scalar" #endif #ifdef VECTORIAL_SSE #define VECTORIAL_SIMD_TYPE "sse" #endif #ifdef VECTORIAL_NEON #define VECTORIAL_SIMD_TYPE "neon" #endif #ifdef VECTORIAL_GNU #define VECTORIAL_SIMD_TYPE "gnu" #endif #if defined(VECTORIAL_FORCED) && !defined(VECTORIAL_SIMD_TYPE) #error VECTORIAL_FORCED set but no simd-type found, try f.ex. VECTORIAL_SCALAR #endif #define vectorial_inline static inline #if defined(__GNUC__) #if defined(__cplusplus) #define vectorial_restrict __restrict #endif #define simd4f_aligned16 __attribute__ ((aligned (16))) #elif defined(_WIN32) #define vectorial_restrict #define simd4f_aligned16 __declspec(align(16)) #else #define vectorial_restrict restrict #define simd4f_aligned16 #endif // #define vectorial_restrict #ifdef __GNUC__ #define vectorial_pure __attribute__((pure)) #else #define vectorial_pure #endif #ifdef _WIN32 #if defined(min) || defined(max) #pragma message ( "set NOMINMAX as preprocessor macro, undefining min/max " ) #undef min #undef max #endif #endif #ifdef __cplusplus // Hack around msvc badness #define SIMD_PARAM(t, p) const t& p #else #define SIMD_PARAM(t, p) t p #endif #define VECTORIAL_PI 3.14159265f #define VECTORIAL_HALFPI 1.57079633f #endif |
Added jni/glshim/src/util/vectorial/mat4f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_MAT4F_H #define VECTORIAL_MAT4F_H #ifndef VECTORIAL_SIMD4X4F_H #include "vectorial/simd4x4f.h" #endif #ifndef VECTORIAL_VEC4F_H #include "vectorial/vec4f.h" #endif namespace vectorial { class mat4f { public: simd4x4f value; inline mat4f() {} inline mat4f(const mat4f& m) : value(m.value) {} inline mat4f(const simd4x4f& v) : value(v) {} inline mat4f(const vec4f& v0, const vec4f& v1, const vec4f& v2, const vec4f& v3) : value(simd4x4f_create(v0.value, v1.value, v2.value, v3.value)) {} explicit inline mat4f(const float *ary) { simd4x4f_uload(&value, ary); } inline void load(const float *ary) { value.x = simd4f_uload4(ary); value.y = simd4f_uload4(ary+4); value.z = simd4f_uload4(ary+8); value.w = simd4f_uload4(ary+12); } inline void store(float *ary) const { simd4f_ustore4(value.x, ary); simd4f_ustore4(value.y, ary+4); simd4f_ustore4(value.z, ary+8); simd4f_ustore4(value.w, ary+12); } static mat4f identity() { mat4f m; simd4x4f_identity(&m.value); return m; } static mat4f perspective(float fovy, float aspect, float znear, float zfar) { simd4x4f m; simd4x4f_perspective(&m, fovy, aspect, znear, zfar); return m; } static mat4f ortho(float left, float right, float bottom, float top, float znear, float zfar) { simd4x4f m; simd4x4f_ortho(&m, left, right, bottom, top, znear, zfar); return m; } static mat4f lookAt(const vec3f& eye, const vec3f& center, const vec3f& up) { simd4x4f m; simd4x4f_lookat(&m, eye.value, center.value, up.value); return m; } static mat4f translation(const vec3f& pos) { simd4x4f m; simd4x4f_translation(&m, pos.x(), pos.y(), pos.z()); return m; } static mat4f axisRotation(float angle, const vec3f& axis) { simd4x4f m; simd4x4f_axis_rotation(&m, angle, axis.value); return m; } static mat4f scale(float scale) { return simd4x4f_create( simd4f_create(scale,0,0,0), simd4f_create(0,scale,0,0), simd4f_create(0,0,scale,0), simd4f_create(0,0,0,1) ); } static mat4f scale(const vec3f& scale) { return simd4x4f_create( simd4f_create(scale.x(),0,0,0), simd4f_create(0,scale.y(),0,0), simd4f_create(0,0,scale.z(),0), simd4f_create(0,0,0,1) ); } }; vectorial_inline mat4f operator*(const mat4f& lhs, const mat4f& rhs) { mat4f ret; simd4x4f_matrix_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline mat4f operator*=(mat4f& lhs, const mat4f& rhs) { const simd4x4f tmp = lhs.value; simd4x4f_matrix_mul(&tmp, &rhs.value, &lhs.value); return lhs; } vectorial_inline vec4f operator*(const mat4f& lhs, const vec4f& rhs) { vec4f ret; simd4x4f_matrix_vector_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline vec3f transformVector(const mat4f& lhs, const vec3f& rhs) { vec3f ret; simd4x4f_matrix_vector3_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline vec4f transformVector(const mat4f& lhs, const vec4f& rhs) { vec4f ret; simd4x4f_matrix_vector_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline vec3f transformPoint(const mat4f& lhs, const vec3f& rhs) { vec3f ret; simd4x4f_matrix_point3_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline vec3f orthoInverseTransformPoint(const mat4f& lhs, const vec3f& rhs) { vec3f ret; simd4x4f_inv_ortho_matrix_point3_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline vec3f orthoInverseTransformVector(const mat4f& lhs, const vec3f& rhs) { vec3f ret; simd4x4f_inv_ortho_matrix_vector3_mul(&lhs.value, &rhs.value, &ret.value); return ret; } vectorial_inline mat4f transpose(const mat4f& m) { mat4f ret; simd4x4f_transpose(&m.value, &ret.value); return ret; } vectorial_inline mat4f inverse(const mat4f& m) { mat4f ret; simd4x4f_inverse(&m.value, &ret.value); return ret; } } #ifdef VECTORIAL_OSTREAM //#include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const vectorial::mat4f& v) { os << "[ "; os << simd4f_get_x(v.value.x) << ", "; os << simd4f_get_x(v.value.y) << ", "; os << simd4f_get_x(v.value.z) << ", "; os << simd4f_get_x(v.value.w) << " ; "; os << simd4f_get_y(v.value.x) << ", "; os << simd4f_get_y(v.value.y) << ", "; os << simd4f_get_y(v.value.z) << ", "; os << simd4f_get_y(v.value.w) << " ; "; os << simd4f_get_z(v.value.x) << ", "; os << simd4f_get_z(v.value.y) << ", "; os << simd4f_get_z(v.value.z) << ", "; os << simd4f_get_z(v.value.w) << " ; "; os << simd4f_get_w(v.value.x) << ", "; os << simd4f_get_w(v.value.y) << ", "; os << simd4f_get_w(v.value.z) << ", "; os << simd4f_get_w(v.value.w) << " ]"; return os; } #endif #endif |
Added jni/glshim/src/util/vectorial/simd4f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_H #define VECTORIAL_SIMD4F_H #ifndef VECTORIAL_CONFIG_H #include "vectorial/config.h" #endif #ifdef VECTORIAL_SCALAR #include "simd4f_scalar.h" #elif defined(VECTORIAL_SSE) #include "simd4f_sse.h" #elif defined(VECTORIAL_GNU) #include "simd4f_gnu.h" #elif defined(VECTORIAL_NEON) #include "simd4f_neon.h" #else #error No implementation defined #endif #include "simd4f_common.h" #ifdef __cplusplus #ifdef VECTORIAL_OSTREAM #include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const simd4f& v) { os << "simd4f(" << simd4f_get_x(v) << ", " << simd4f_get_y(v) << ", " << simd4f_get_z(v) << ", " << simd4f_get_w(v) << ")"; return os; } #endif #endif #endif |
Added jni/glshim/src/util/vectorial/simd4f_common.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_COMMON_H #define VECTORIAL_SIMD4F_COMMON_H vectorial_inline simd4f simd4f_sum(simd4f v) { const simd4f s1 = simd4f_add(simd4f_splat_x(v), simd4f_splat_y(v)); const simd4f s2 = simd4f_add(s1, simd4f_splat_z(v)); const simd4f s3 = simd4f_add(s2, simd4f_splat_w(v)); return s3; } vectorial_inline simd4f simd4f_dot4(simd4f lhs, simd4f rhs) { return simd4f_sum( simd4f_mul(lhs, rhs) ); } vectorial_inline simd4f simd4f_dot3(simd4f lhs, simd4f rhs) { const simd4f m = simd4f_mul(lhs, rhs); const simd4f s1 = simd4f_add(simd4f_splat_x(m), simd4f_splat_y(m)); const simd4f s2 = simd4f_add(s1, simd4f_splat_z(m)); return s2; } vectorial_inline simd4f simd4f_dot2(simd4f lhs, simd4f rhs) { const simd4f m = simd4f_mul(lhs, rhs); const simd4f s1 = simd4f_add(simd4f_splat_x(m), simd4f_splat_y(m)); return s1; } vectorial_inline simd4f simd4f_length4(simd4f v) { return simd4f_sqrt( simd4f_dot4(v,v) ); } vectorial_inline simd4f simd4f_length3(simd4f v) { return simd4f_sqrt( simd4f_dot3(v,v) ); } vectorial_inline simd4f simd4f_length2(simd4f v) { return simd4f_sqrt( simd4f_dot2(v,v) ); } vectorial_inline simd4f simd4f_length4_squared(simd4f v) { return simd4f_dot4(v,v); } vectorial_inline simd4f simd4f_length3_squared(simd4f v) { return simd4f_dot3(v,v); } vectorial_inline simd4f simd4f_length2_squared(simd4f v) { return simd4f_dot2(v,v); } vectorial_inline simd4f simd4f_normalize4(simd4f a) { simd4f invlen = simd4f_rsqrt( simd4f_dot4(a,a) ); return simd4f_mul(a, invlen); } vectorial_inline simd4f simd4f_normalize3(simd4f a) { simd4f invlen = simd4f_rsqrt( simd4f_dot3(a,a) ); return simd4f_mul(a, invlen); } vectorial_inline simd4f simd4f_normalize2(simd4f a) { simd4f invlen = simd4f_rsqrt( simd4f_dot2(a,a) ); return simd4f_mul(a, invlen); } #endif |
Added jni/glshim/src/util/vectorial/simd4f_gnu.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_GNU_H #define VECTORIAL_SIMD4F_GNU_H #include <math.h> #include <string.h> // memcpy #ifdef __cplusplus extern "C" { #endif typedef float simd4f __attribute__ ((vector_size (16))); typedef union { simd4f s ; float f[4]; } _simd4f_union; vectorial_inline float simd4f_get_x(simd4f s) { _simd4f_union u={s}; return u.f[0]; } vectorial_inline float simd4f_get_y(simd4f s) { _simd4f_union u={s}; return u.f[1]; } vectorial_inline float simd4f_get_z(simd4f s) { _simd4f_union u={s}; return u.f[2]; } vectorial_inline float simd4f_get_w(simd4f s) { _simd4f_union u={s}; return u.f[3]; } vectorial_inline simd4f simd4f_create(float x, float y, float z, float w) { simd4f s = { x, y, z, w }; return s; } vectorial_inline simd4f simd4f_zero() { return simd4f_create(0.0f, 0.0f, 0.0f, 0.0f); } vectorial_inline simd4f simd4f_uload4(const float *ary) { simd4f s = { ary[0], ary[1], ary[2], ary[3] }; return s; } vectorial_inline simd4f simd4f_uload3(const float *ary) { simd4f s = { ary[0], ary[1], ary[2], 0 }; return s; } vectorial_inline simd4f simd4f_uload2(const float *ary) { simd4f s = { ary[0], ary[1], 0, 0 }; return s; } vectorial_inline void simd4f_ustore4(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 4); } vectorial_inline void simd4f_ustore3(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 3); } vectorial_inline void simd4f_ustore2(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 2); } vectorial_inline simd4f simd4f_splat(float v) { simd4f s = { v, v, v, v }; return s; } vectorial_inline simd4f simd4f_splat_x(simd4f v) { float s = simd4f_get_x(v); simd4f ret = { s, s, s, s }; return ret; } vectorial_inline simd4f simd4f_splat_y(simd4f v) { float s = simd4f_get_y(v); simd4f ret = { s, s, s, s }; return ret; } vectorial_inline simd4f simd4f_splat_z(simd4f v) { float s = simd4f_get_z(v); simd4f ret = { s, s, s, s }; return ret; } vectorial_inline simd4f simd4f_splat_w(simd4f v) { float s = simd4f_get_w(v); simd4f ret = { s, s, s, s }; return ret; } vectorial_inline simd4f simd4f_reciprocal(simd4f v) { return simd4f_splat(1.0f) / v; } vectorial_inline simd4f simd4f_sqrt(simd4f v) { simd4f ret = { sqrtf(simd4f_get_x(v)), sqrtf(simd4f_get_y(v)), sqrtf(simd4f_get_z(v)), sqrtf(simd4f_get_w(v)) }; return ret; } vectorial_inline simd4f simd4f_rsqrt(simd4f v) { return simd4f_splat(1.0f) / simd4f_sqrt(v); } vectorial_inline simd4f simd4f_add(simd4f lhs, simd4f rhs) { simd4f ret = lhs + rhs; return ret; } vectorial_inline simd4f simd4f_sub(simd4f lhs, simd4f rhs) { simd4f ret = lhs - rhs; return ret; } vectorial_inline simd4f simd4f_mul(simd4f lhs, simd4f rhs) { simd4f ret = lhs * rhs; return ret; } vectorial_inline simd4f simd4f_div(simd4f lhs, simd4f rhs) { simd4f ret = lhs / rhs; return ret; } vectorial_inline simd4f simd4f_madd(simd4f m1, simd4f m2, simd4f a) { return simd4f_add( simd4f_mul(m1, m2), a ); } vectorial_inline simd4f simd4f_cross3(simd4f l, simd4f r) { _simd4f_union lhs = {l}; _simd4f_union rhs = {r}; return simd4f_create( lhs.f[1] * rhs.f[2] - lhs.f[2] * rhs.f[1], lhs.f[2] * rhs.f[0] - lhs.f[0] * rhs.f[2], lhs.f[0] * rhs.f[1] - lhs.f[1] * rhs.f[0], 0); } vectorial_inline simd4f simd4f_shuffle_wxyz(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[3], u.f[0], u.f[1], u.f[2]); } vectorial_inline simd4f simd4f_shuffle_zwxy(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[2], u.f[3], u.f[0], u.f[1]); } vectorial_inline simd4f simd4f_shuffle_yzwx(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[1], u.f[2], u.f[3], u.f[0]); } vectorial_inline simd4f simd4f_zero_w(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[0], u.f[1], u.f[2], 0.0f); } vectorial_inline simd4f simd4f_zero_zw(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[0], u.f[1], 0.0f, 0.0f); } vectorial_inline simd4f simd4f_merge_high(simd4f abcd, simd4f xyzw) { _simd4f_union u1 = {abcd}; _simd4f_union u2 = {xyzw}; return simd4f_create(u1.f[2], u1.f[3], u2.f[2], u2.f[3]); } vectorial_inline simd4f simd4f_flip_sign_0101(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[0], -u.f[1], u.f[2], -u.f[3]); } vectorial_inline simd4f simd4f_flip_sign_1010(simd4f s) { _simd4f_union u = {s}; return simd4f_create(-u.f[0], u.f[1], -u.f[2], u.f[3]); } vectorial_inline simd4f simd4f_min(simd4f a, simd4f b) { _simd4f_union ua = {a}; _simd4f_union ub = {b}; return simd4f_create( ua.f[0] < ub.f[0] ? ua.f[0] : ub.f[0], ua.f[1] < ub.f[1] ? ua.f[1] : ub.f[1], ua.f[2] < ub.f[2] ? ua.f[2] : ub.f[2], ua.f[3] < ub.f[3] ? ua.f[3] : ub.f[3] ); } vectorial_inline simd4f simd4f_max(simd4f a, simd4f b) { _simd4f_union ua = {a}; _simd4f_union ub = {b}; return simd4f_create( ua.f[0] > ub.f[0] ? ua.f[0] : ub.f[0], ua.f[1] > ub.f[1] ? ua.f[1] : ub.f[1], ua.f[2] > ub.f[2] ? ua.f[2] : ub.f[2], ua.f[3] > ub.f[3] ? ua.f[3] : ub.f[3] ); } #ifdef __cplusplus } #endif #endif |
Added jni/glshim/src/util/vectorial/simd4f_neon.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_NEON_H #define VECTORIAL_SIMD4F_NEON_H #include <arm_neon.h> #ifdef __cplusplus extern "C" { #endif typedef float32x4_t simd4f; typedef union { simd4f s ; float f[4]; } _simd4f_union; vectorial_inline simd4f simd4f_create(float x, float y, float z, float w) { const float32_t d[4] = { x,y,z,w }; simd4f s = vld1q_f32(d); return s; } vectorial_inline simd4f simd4f_zero() { return vdupq_n_f32(0.0f); } vectorial_inline simd4f simd4f_uload4(const float *ary) { const float32_t* ary32 = (const float32_t*)ary; simd4f s = vld1q_f32(ary32); return s; } vectorial_inline simd4f simd4f_uload3(const float *ary) { simd4f s = simd4f_create(ary[0], ary[1], ary[2], 0); return s; } vectorial_inline simd4f simd4f_uload2(const float *ary) { const float32_t* ary32 = (const float32_t*)ary; float32x2_t low = vld1_f32(ary32); const float32_t zero = 0; float32x2_t high = vld1_dup_f32(&zero); // { 0,0 } but stupid warnings from llvm-gcc return vcombine_f32(low, high); } vectorial_inline void simd4f_ustore4(const simd4f val, float *ary) { vst1q_f32( (float32_t*)ary, val); } vectorial_inline void simd4f_ustore3(const simd4f val, float *ary) { _simd4f_union u = { val }; ary[0] = u.f[0]; ary[1] = u.f[1]; ary[2] = u.f[2]; } vectorial_inline void simd4f_ustore2(const simd4f val, float *ary) { const float32x2_t low = vget_low_f32(val); vst1_f32( (float32_t*)ary, low); } vectorial_inline simd4f simd4f_splat(float v) { simd4f s = vdupq_n_f32(v); return s; } // todo: or is simd4f_splat(simd4f_get_x(v)) better? vectorial_inline simd4f simd4f_splat_x(simd4f v) { float32x2_t o = vget_low_f32(v); simd4f ret = vdupq_lane_f32(o, 0); return ret; } vectorial_inline simd4f simd4f_splat_y(simd4f v) { float32x2_t o = vget_low_f32(v); simd4f ret = vdupq_lane_f32(o, 1); return ret; } vectorial_inline simd4f simd4f_splat_z(simd4f v) { float32x2_t o = vget_high_f32(v); simd4f ret = vdupq_lane_f32(o, 0); return ret; } vectorial_inline simd4f simd4f_splat_w(simd4f v) { float32x2_t o = vget_high_f32(v); simd4f ret = vdupq_lane_f32(o, 1); return ret; } vectorial_inline simd4f simd4f_reciprocal(simd4f v) { simd4f estimate = vrecpeq_f32(v); estimate = vmulq_f32(vrecpsq_f32(estimate, v), estimate); estimate = vmulq_f32(vrecpsq_f32(estimate, v), estimate); return estimate; } vectorial_inline simd4f simd4f_rsqrt(simd4f v) { simd4f estimate = vrsqrteq_f32(v); simd4f estimate2 = vmulq_f32(estimate, v); estimate = vmulq_f32(estimate, vrsqrtsq_f32(estimate2, estimate)); estimate2 = vmulq_f32(estimate, v); estimate = vmulq_f32(estimate, vrsqrtsq_f32(estimate2, estimate)); estimate2 = vmulq_f32(estimate, v); estimate = vmulq_f32(estimate, vrsqrtsq_f32(estimate2, estimate)); return estimate; } vectorial_inline simd4f simd4f_sqrt(simd4f v) { return vreinterpretq_f32_u32(vandq_u32( vtstq_u32(vreinterpretq_u32_f32(v), vreinterpretq_u32_f32(v)), vreinterpretq_u32_f32( simd4f_reciprocal(simd4f_rsqrt(v))) ) ); } // arithmetics vectorial_inline simd4f simd4f_add(simd4f lhs, simd4f rhs) { simd4f ret = vaddq_f32(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_sub(simd4f lhs, simd4f rhs) { simd4f ret = vsubq_f32(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_mul(simd4f lhs, simd4f rhs) { simd4f ret = vmulq_f32(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_div(simd4f lhs, simd4f rhs) { simd4f recip = simd4f_reciprocal( rhs ); simd4f ret = vmulq_f32(lhs, recip); return ret; } vectorial_inline simd4f simd4f_madd(simd4f m1, simd4f m2, simd4f a) { return vmlaq_f32( a, m1, m2 ); } vectorial_inline float simd4f_get_x(simd4f s) { return vgetq_lane_f32(s, 0); } vectorial_inline float simd4f_get_y(simd4f s) { return vgetq_lane_f32(s, 1); } vectorial_inline float simd4f_get_z(simd4f s) { return vgetq_lane_f32(s, 2); } vectorial_inline float simd4f_get_w(simd4f s) { return vgetq_lane_f32(s, 3); } vectorial_inline simd4f simd4f_cross3(simd4f lhs, simd4f rhs) { const simd4f lyzx = simd4f_create(simd4f_get_y(lhs), simd4f_get_z(lhs), simd4f_get_x(lhs), simd4f_get_w(lhs)); const simd4f lzxy = simd4f_create(simd4f_get_z(lhs), simd4f_get_x(lhs), simd4f_get_y(lhs), simd4f_get_w(lhs)); const simd4f ryzx = simd4f_create(simd4f_get_y(rhs), simd4f_get_z(rhs), simd4f_get_x(rhs), simd4f_get_w(rhs)); const simd4f rzxy = simd4f_create(simd4f_get_z(rhs), simd4f_get_x(rhs), simd4f_get_y(rhs), simd4f_get_w(rhs)); return vmlsq_f32(vmulq_f32(lyzx, rzxy), lzxy, ryzx); } vectorial_inline simd4f simd4f_shuffle_wxyz(simd4f s) { _simd4f_union u = {s}; return simd4f_create( u.f[3], u.f[0], u.f[1], u.f[2]); } vectorial_inline simd4f simd4f_shuffle_zwxy(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[2], u.f[3], u.f[0], u.f[1]); } vectorial_inline simd4f simd4f_shuffle_yzwx(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[1], u.f[2], u.f[3], u.f[0]); } vectorial_inline simd4f simd4f_zero_w(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[0], u.f[1], u.f[2], 0.0f); } vectorial_inline simd4f simd4f_zero_zw(simd4f s) { _simd4f_union u = {s}; return simd4f_create(u.f[0], u.f[1], 0.0f, 0.0f); } vectorial_inline simd4f simd4f_merge_high(simd4f xyzw, simd4f abcd) { _simd4f_union u1 = {xyzw}; _simd4f_union u2 = {abcd}; return simd4f_create(u1.f[2], u1.f[3], u2.f[2], u2.f[3]); } vectorial_inline simd4f simd4f_flip_sign_0101(simd4f s) { const unsigned int upnpn[4] = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 }; const uint32x4_t pnpn = vld1q_u32( upnpn ); return vreinterpretq_f32_u32( veorq_u32( vreinterpretq_u32_f32(s), pnpn ) ); } vectorial_inline simd4f simd4f_flip_sign_1010(simd4f s) { const unsigned int unpnp[4] = { 0x80000000, 0x00000000, 0x80000000, 0x00000000 }; const uint32x4_t npnp = vld1q_u32( unpnp ); return vreinterpretq_f32_u32( veorq_u32( vreinterpretq_u32_f32(s), npnp ) ); } vectorial_inline simd4f simd4f_min(simd4f a, simd4f b) { return vminq_f32( a, b ); } vectorial_inline simd4f simd4f_max(simd4f a, simd4f b) { return vmaxq_f32( a, b ); } #ifdef __cplusplus } #endif #endif |
Added jni/glshim/src/util/vectorial/simd4f_scalar.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_SCALAR_H #define VECTORIAL_SIMD4F_SCALAR_H #include <math.h> #include <string.h> // memcpy #ifdef __cplusplus extern "C" { #endif typedef struct { float x; float y; float z; float w; } simd4f; vectorial_inline simd4f simd4f_create(float x, float y, float z, float w) { simd4f s = { x, y, z, w }; return s; } vectorial_inline simd4f simd4f_zero() { return simd4f_create(0.0f, 0.0f, 0.0f, 0.0f); } vectorial_inline simd4f simd4f_uload4(const float *ary) { simd4f s = { ary[0], ary[1], ary[2], ary[3] }; return s; } vectorial_inline simd4f simd4f_uload3(const float *ary) { simd4f s = { ary[0], ary[1], ary[2], 0 }; return s; } vectorial_inline simd4f simd4f_uload2(const float *ary) { simd4f s = { ary[0], ary[1], 0, 0 }; return s; } vectorial_inline void simd4f_ustore4(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 4); } vectorial_inline void simd4f_ustore3(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 3); } vectorial_inline void simd4f_ustore2(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 2); } // utilities vectorial_inline simd4f simd4f_splat(float v) { simd4f s = { v, v, v, v }; return s; } vectorial_inline simd4f simd4f_splat_x(simd4f v) { simd4f s = { v.x, v.x, v.x, v.x }; return s; } vectorial_inline simd4f simd4f_splat_y(simd4f v) { simd4f s = { v.y, v.y, v.y, v.y }; return s; } vectorial_inline simd4f simd4f_splat_z(simd4f v) { simd4f s = { v.z, v.z, v.z, v.z }; return s; } vectorial_inline simd4f simd4f_splat_w(simd4f v) { simd4f s = { v.w, v.w, v.w, v.w }; return s; } vectorial_inline simd4f simd4f_reciprocal(simd4f v) { simd4f s = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; return s; } vectorial_inline simd4f simd4f_sqrt(simd4f v) { simd4f s = { sqrtf(v.x), sqrtf(v.y), sqrtf(v.z), sqrtf(v.w) }; return s; } vectorial_inline simd4f simd4f_rsqrt(simd4f v) { simd4f s = { 1.0f/sqrtf(v.x), 1.0f/sqrtf(v.y), 1.0f/sqrtf(v.z), 1.0f/sqrtf(v.w) }; return s; } // arithmetic vectorial_inline simd4f simd4f_add(simd4f lhs, simd4f rhs) { simd4f ret = { lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z, lhs.w + rhs.w }; return ret; } vectorial_inline simd4f simd4f_sub(simd4f lhs, simd4f rhs) { simd4f ret = { lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z, lhs.w - rhs.w }; return ret; } vectorial_inline simd4f simd4f_mul(simd4f lhs, simd4f rhs) { simd4f ret = { lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z, lhs.w * rhs.w }; return ret; } vectorial_inline simd4f simd4f_div(simd4f lhs, simd4f rhs) { simd4f ret = { lhs.x / rhs.x, lhs.y / rhs.y, lhs.z / rhs.z, lhs.w / rhs.w }; return ret; } vectorial_inline simd4f simd4f_madd(simd4f m1, simd4f m2, simd4f a) { return simd4f_add( simd4f_mul(m1, m2), a ); } vectorial_inline simd4f simd4f_cross3(simd4f lhs, simd4f rhs) { return simd4f_create( lhs.y * rhs.z - lhs.z * rhs.y, lhs.z * rhs.x - lhs.x * rhs.z, lhs.x * rhs.y - lhs.y * rhs.x, 0); } vectorial_inline float simd4f_get_x(simd4f s) { return s.x; } vectorial_inline float simd4f_get_y(simd4f s) { return s.y; } vectorial_inline float simd4f_get_z(simd4f s) { return s.z; } vectorial_inline float simd4f_get_w(simd4f s) { return s.w; } vectorial_inline simd4f simd4f_shuffle_wxyz(simd4f s) { return simd4f_create(s.w, s.x, s.y, s.z); } vectorial_inline simd4f simd4f_shuffle_zwxy(simd4f s) { return simd4f_create(s.z, s.w, s.x, s.y); } vectorial_inline simd4f simd4f_shuffle_yzwx(simd4f s) { return simd4f_create(s.y, s.z, s.w, s.x); } vectorial_inline simd4f simd4f_zero_w(simd4f s) { return simd4f_create(s.x, s.y, s.z, 0.0f); } vectorial_inline simd4f simd4f_zero_zw(simd4f s) { return simd4f_create(s.x, s.y, 0.0f, 0.0f); } vectorial_inline simd4f simd4f_merge_high(simd4f abcd, simd4f xyzw) { return simd4f_create(abcd.z, abcd.w, xyzw.z, xyzw.w); } vectorial_inline simd4f simd4f_flip_sign_0101(simd4f s) { return simd4f_create(s.x, -s.y, s.z, -s.w); } vectorial_inline simd4f simd4f_flip_sign_1010(simd4f s) { return simd4f_create(-s.x, s.y, -s.z, s.w); } vectorial_inline simd4f simd4f_min(simd4f a, simd4f b) { return simd4f_create( a.x < b.x ? a.x : b.x, a.y < b.y ? a.y : b.y, a.z < b.z ? a.z : b.z, a.w < b.w ? a.w : b.w ); } vectorial_inline simd4f simd4f_max(simd4f a, simd4f b) { return simd4f_create( a.x > b.x ? a.x : b.x, a.y > b.y ? a.y : b.y, a.z > b.z ? a.z : b.z, a.w > b.w ? a.w : b.w ); } #ifdef __cplusplus } #endif #endif |
Added jni/glshim/src/util/vectorial/simd4f_sse.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4F_SSE_H #define VECTORIAL_SIMD4F_SSE_H #include <xmmintrin.h> #include <string.h> // memcpy #ifdef __cplusplus extern "C" { #endif typedef __m128 simd4f; typedef union { simd4f s ; float f[4]; unsigned int ui[4]; } _simd4f_union; // creating vectorial_inline simd4f simd4f_create(float x, float y, float z, float w) { simd4f s = { x, y, z, w }; return s; } vectorial_inline simd4f simd4f_zero() { return _mm_setzero_ps(); } vectorial_inline simd4f simd4f_uload4(const float *ary) { simd4f s = _mm_loadu_ps(ary); return s; } vectorial_inline simd4f simd4f_uload3(const float *ary) { simd4f s = simd4f_create(ary[0], ary[1], ary[2], 0); return s; } vectorial_inline simd4f simd4f_uload2(const float *ary) { simd4f s = simd4f_create(ary[0], ary[1], 0, 0); return s; } vectorial_inline void simd4f_ustore4(const simd4f val, float *ary) { _mm_storeu_ps(ary, val); } vectorial_inline void simd4f_ustore3(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 3); } vectorial_inline void simd4f_ustore2(const simd4f val, float *ary) { memcpy(ary, &val, sizeof(float) * 2); } // utilites vectorial_inline simd4f simd4f_splat(float v) { simd4f s = _mm_set1_ps(v); return s; } vectorial_inline simd4f simd4f_splat_x(simd4f v) { simd4f s = _mm_shuffle_ps(v, v, _MM_SHUFFLE(0,0,0,0)); return s; } vectorial_inline simd4f simd4f_splat_y(simd4f v) { simd4f s = _mm_shuffle_ps(v, v, _MM_SHUFFLE(1,1,1,1)); return s; } vectorial_inline simd4f simd4f_splat_z(simd4f v) { simd4f s = _mm_shuffle_ps(v, v, _MM_SHUFFLE(2,2,2,2)); return s; } vectorial_inline simd4f simd4f_splat_w(simd4f v) { simd4f s = _mm_shuffle_ps(v, v, _MM_SHUFFLE(3,3,3,3)); return s; } // arithmetic vectorial_inline simd4f simd4f_add(simd4f lhs, simd4f rhs) { simd4f ret = _mm_add_ps(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_sub(simd4f lhs, simd4f rhs) { simd4f ret = _mm_sub_ps(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_mul(simd4f lhs, simd4f rhs) { simd4f ret = _mm_mul_ps(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_div(simd4f lhs, simd4f rhs) { simd4f ret = _mm_div_ps(lhs, rhs); return ret; } vectorial_inline simd4f simd4f_madd(simd4f m1, simd4f m2, simd4f a) { return simd4f_add( simd4f_mul(m1, m2), a ); } vectorial_inline simd4f simd4f_reciprocal(simd4f v) { simd4f s = _mm_rcp_ps(v); const simd4f two = simd4f_create(2.0f, 2.0f, 2.0f, 2.0f); s = simd4f_mul(s, simd4f_sub(two, simd4f_mul(v, s))); return s; } vectorial_inline simd4f simd4f_sqrt(simd4f v) { simd4f s = _mm_sqrt_ps(v); return s; } vectorial_inline simd4f simd4f_rsqrt(simd4f v) { simd4f s = _mm_rsqrt_ps(v); const simd4f half = simd4f_create(0.5f, 0.5f, 0.5f, 0.5f); const simd4f three = simd4f_create(3.0f, 3.0f, 3.0f, 3.0f); s = simd4f_mul(simd4f_mul(s, half), simd4f_sub(three, simd4f_mul(s, simd4f_mul(v,s)))); return s; } vectorial_inline simd4f simd4f_cross3(simd4f lhs, simd4f rhs) { const simd4f lyzx = _mm_shuffle_ps(lhs, lhs, _MM_SHUFFLE(3,0,2,1)); const simd4f lzxy = _mm_shuffle_ps(lhs, lhs, _MM_SHUFFLE(3,1,0,2)); const simd4f ryzx = _mm_shuffle_ps(rhs, rhs, _MM_SHUFFLE(3,0,2,1)); const simd4f rzxy = _mm_shuffle_ps(rhs, rhs, _MM_SHUFFLE(3,1,0,2)); return _mm_sub_ps(_mm_mul_ps(lyzx, rzxy), _mm_mul_ps(lzxy, ryzx)); } vectorial_inline float simd4f_get_x(simd4f s) { _simd4f_union u={s}; return u.f[0]; } vectorial_inline float simd4f_get_y(simd4f s) { _simd4f_union u={s}; return u.f[1]; } vectorial_inline float simd4f_get_z(simd4f s) { _simd4f_union u={s}; return u.f[2]; } vectorial_inline float simd4f_get_w(simd4f s) { _simd4f_union u={s}; return u.f[3]; } vectorial_inline simd4f simd4f_shuffle_wxyz(simd4f s) { return _mm_shuffle_ps(s,s, _MM_SHUFFLE(2,1,0,3) ); } vectorial_inline simd4f simd4f_shuffle_zwxy(simd4f s) { return _mm_shuffle_ps(s,s, _MM_SHUFFLE(1,0,3,2) ); } vectorial_inline simd4f simd4f_shuffle_yzwx(simd4f s) { return _mm_shuffle_ps(s,s, _MM_SHUFFLE(0,3,2,1) ); } vectorial_inline simd4f simd4f_zero_w(simd4f s) { simd4f r = _mm_unpackhi_ps(s, _mm_setzero_ps()); return _mm_movelh_ps(s, r); } vectorial_inline simd4f simd4f_zero_zw(simd4f s) { return _mm_movelh_ps(s, _mm_setzero_ps()); } vectorial_inline simd4f simd4f_merge_high(simd4f xyzw, simd4f abcd) { return _mm_movehl_ps(abcd, xyzw); } typedef simd4f_aligned16 union { unsigned int ui[4]; float f[4]; } _simd4f_uif; vectorial_inline simd4f simd4f_flip_sign_0101(simd4f s) { const _simd4f_uif upnpn = { { 0x00000000, 0x80000000, 0x00000000, 0x80000000 } }; return _mm_xor_ps( s, _mm_load_ps(upnpn.f) ); } vectorial_inline simd4f simd4f_flip_sign_1010(simd4f s) { const _simd4f_uif unpnp = { { 0x80000000, 0x00000000, 0x80000000, 0x00000000 } }; return _mm_xor_ps( s, _mm_load_ps(unpnp.f) ); } vectorial_inline simd4f simd4f_min(simd4f a, simd4f b) { return _mm_min_ps( a, b ); } vectorial_inline simd4f simd4f_max(simd4f a, simd4f b) { return _mm_max_ps( a, b ); } #ifdef __cplusplus } #endif #endif |
Added jni/glshim/src/util/vectorial/simd4x4f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4X4F_H #define VECTORIAL_SIMD4X4F_H #include "simd4f.h" #include <math.h> /* Note, x,y,z,w are conceptually columns with matrix math. */ typedef struct { simd4f x,y,z,w; } simd4x4f; vectorial_inline simd4x4f simd4x4f_create(simd4f x, simd4f y, simd4f z, SIMD_PARAM(simd4f, w)) { simd4x4f s = { x, y, z, w }; return s; } vectorial_inline void simd4x4f_identity(simd4x4f* m) { *m = simd4x4f_create( simd4f_create(1.0f, 0.0f, 0.0f, 0.0f), simd4f_create(0.0f, 1.0f, 0.0f, 0.0f), simd4f_create(0.0f, 0.0f, 1.0f, 0.0f), simd4f_create(0.0f, 0.0f, 0.0f, 1.0f)); } vectorial_inline void simd4x4f_uload(simd4x4f* m, const float *f) { m->x = simd4f_uload4(f + 0); m->y = simd4f_uload4(f + 4); m->z = simd4f_uload4(f + 8); m->w = simd4f_uload4(f + 12); } vectorial_inline void simd4x4f_ustore(simd4x4f* m, float *f) { simd4f_ustore4(m->x, f + 0); simd4f_ustore4(m->y, f + 4); simd4f_ustore4(m->z, f + 8); simd4f_ustore4(m->w, f + 12); } #ifdef VECTORIAL_SCALAR #include "simd4x4f_scalar.h" #elif defined(VECTORIAL_SSE) #include "simd4x4f_sse.h" #elif defined(VECTORIAL_GNU) #include "simd4x4f_gnu.h" #elif defined(VECTORIAL_NEON) #include "simd4x4f_neon.h" #else #error No implementation defined #endif vectorial_inline void simd4x4f_sum(const simd4x4f* a, simd4f* out) { simd4f t; t = simd4f_add(a->x, a->y); t = simd4f_add(t, a->z); t = simd4f_add(t, a->w); *out = t; } vectorial_inline void simd4x4f_matrix_vector_mul(const simd4x4f* a, const simd4f * b, simd4f* out) { const simd4f x = a->x; const simd4f y = a->y; const simd4f z = a->z; const simd4f w = a->w; const simd4f v = *b; const simd4f vx = simd4f_splat_x(v); const simd4f vy = simd4f_splat_y(v); const simd4f vz = simd4f_splat_z(v); const simd4f vw = simd4f_splat_w(v); #if 0 // In a hasty benchmark, this actually performed worse on neon // TODO: revisit and conditionalize accordingly *out = simd4f_madd(x, vx, simd4f_madd(y, vy, simd4f_madd(z, vz, simd4f_mul(w, vw) ) ) ); #else *out = simd4f_add(simd4f_mul(x, vx), simd4f_add(simd4f_mul(y, vy), simd4f_add(simd4f_mul(z, vz), simd4f_mul(w, vw) ) ) ); #endif } vectorial_inline void simd4x4f_matrix_vector3_mul(const simd4x4f* a, const simd4f * b, simd4f* out) { #if 0 *out = simd4f_madd( a->x, simd4f_splat_x(*b), simd4f_madd( a->y, simd4f_splat_y(*b), simd4f_mul(a->z, simd4f_splat_z(*b)) ) ); #else *out = simd4f_add( simd4f_mul(a->x, simd4f_splat_x(*b)), simd4f_add( simd4f_mul(a->y, simd4f_splat_y(*b)), simd4f_mul(a->z, simd4f_splat_z(*b)) ) ); #endif } vectorial_inline void simd4x4f_matrix_point3_mul(const simd4x4f* a, const simd4f * b, simd4f* out) { #if 0 *out = simd4f_madd( a->x, simd4f_splat_x(*b), simd4f_madd( a->y, simd4f_splat_y(*b), simd4f_madd( a->z, simd4f_splat_z(*b), a->w ) ) ); #else *out = simd4f_add( simd4f_mul(a->x, simd4f_splat_x(*b)), simd4f_add( simd4f_mul(a->y, simd4f_splat_y(*b)), simd4f_add( simd4f_mul(a->z, simd4f_splat_z(*b)), a->w ) ) ); #endif } vectorial_inline void simd4x4f_inv_ortho_matrix_point3_mul(const simd4x4f* a, const simd4f * b, simd4f* out) { simd4f translation = simd4f_sub(*b, a->w); simd4x4f transpose = *a; transpose.w = simd4f_create(0,0,0,0); simd4x4f_transpose_inplace(&transpose); simd4x4f_matrix_point3_mul(&transpose, &translation, out); } vectorial_inline void simd4x4f_inv_ortho_matrix_vector3_mul(const simd4x4f* a, const simd4f * b, simd4f* out) { simd4f translation = *b; simd4x4f transpose = *a; transpose.w = simd4f_create(0,0,0,0); simd4x4f_transpose_inplace(&transpose); simd4x4f_matrix_vector3_mul(&transpose, &translation, out); } vectorial_inline void simd4x4f_matrix_mul(const simd4x4f* a, const simd4x4f* b, simd4x4f* out) { simd4x4f_matrix_vector_mul(a, &b->x, &out->x); simd4x4f_matrix_vector_mul(a, &b->y, &out->y); simd4x4f_matrix_vector_mul(a, &b->z, &out->z); simd4x4f_matrix_vector_mul(a, &b->w, &out->w); } vectorial_inline void simd4x4f_perspective(simd4x4f *m, float fovy_radians, float aspect, float znear, float zfar) { float deltaz = zfar - znear; float cotangent = tanf( VECTORIAL_HALFPI - fovy_radians * 0.5f ); float a = cotangent / aspect; float b = cotangent; float c = -(zfar + znear) / deltaz; float d = -2 * znear * zfar / deltaz; m->x = simd4f_create( a, 0, 0, 0); m->y = simd4f_create( 0, b, 0, 0); m->z = simd4f_create( 0, 0, c, -1); m->w = simd4f_create( 0, 0, d, 0); } vectorial_inline void simd4x4f_ortho(simd4x4f *m, float left, float right, float bottom, float top, float znear, float zfar) { float deltax = right - left; float deltay = top - bottom; float deltaz = zfar - znear; float a = 2.0f / deltax; float b = -(right + left) / deltax; float c = 2.0f / deltay; float d = -(top + bottom) / deltay; float e = -2.0f / deltaz; float f = -(zfar + znear) / deltaz; m->x = simd4f_create( a, 0, 0, 0); m->y = simd4f_create( 0, c, 0, 0); m->z = simd4f_create( 0, 0, e, 0); m->w = simd4f_create( b, d, f, 1); } vectorial_inline void simd4x4f_frustum(simd4x4f *m, float left, float right, float bottom, float top, float znear, float zfar) { float x = (2 * znear) / (right - left); float y = (2 * znear) / (top - bottom); float A = (right + left) / (right - left); float B = (top + bottom) / (top - bottom); float C = -(zfar + znear) / (zfar - znear); float D = -(2 * zfar * znear) / (zfar - znear); m->x = simd4f_create( x, 0, 0, 0); m->y = simd4f_create( 0, y, 0, 0); m->z = simd4f_create( A, B, C, -1); m->w = simd4f_create( 0, 0, D, 0); } vectorial_inline void simd4x4f_lookat(simd4x4f *m, simd4f eye, simd4f center, simd4f up) { simd4f zaxis = simd4f_normalize3( simd4f_sub(center, eye) ); simd4f xaxis = simd4f_normalize3( simd4f_cross3( zaxis, up ) ); simd4f yaxis = simd4f_cross3(xaxis, zaxis); zaxis = simd4f_sub( simd4f_zero(), zaxis); float x = -simd4f_get_x( simd4f_dot3(xaxis, eye) ); float y = -simd4f_get_x( simd4f_dot3(yaxis, eye) ); float z = -simd4f_get_x( simd4f_dot3(zaxis, eye) ); m->x = xaxis; m->y = yaxis; m->z = zaxis; m->w = simd4f_create( 0,0,0, 1); simd4x4f_transpose_inplace(m); m->w = simd4f_create( x,y,z,1); } vectorial_inline void simd4x4f_scaling(simd4x4f* m, float x, float y, float z) { *m = simd4x4f_create( simd4f_create( x, 0.0f, 0.0f, 0.0f), simd4f_create(0.0f, y, 0.0f, 0.0f), simd4f_create(0.0f, 0.0f, z, 0.0f), simd4f_create(0.0f, 0.0f, 0.0f, 1.0f)); } vectorial_inline void simd4x4f_translation(simd4x4f* m, float x, float y, float z) { *m = simd4x4f_create( simd4f_create(1.0f, 0.0f, 0.0f, 0.0f), simd4f_create(0.0f, 1.0f, 0.0f, 0.0f), simd4f_create(0.0f, 0.0f, 1.0f, 0.0f), simd4f_create( x, y, z, 1.0f)); } vectorial_inline void simd4x4f_axis_rotation(simd4x4f* m, float radians, simd4f axis) { radians = -radians; axis = simd4f_normalize3(axis); const float sine = sinf(radians); const float cosine = cosf(radians); const float x = simd4f_get_x(axis); const float y = simd4f_get_y(axis); const float z = simd4f_get_z(axis); const float ab = x * y * (1 - cosine); const float bc = y * z * (1 - cosine); const float ca = z * x * (1 - cosine); const float tx = x * x; const float ty = y * y; const float tz = z * z; const simd4f i = simd4f_create( tx + cosine * (1 - tx), ab - z * sine, ca + y * sine, 0); const simd4f j = simd4f_create( ab + z * sine, ty + cosine * (1 - ty), bc - x * sine, 0); const simd4f k = simd4f_create( ca - y * sine, bc + x * sine, tz + cosine * (1 - tz), 0); *m = simd4x4f_create( i,j,k, simd4f_create(0, 0, 0, 1) ); } vectorial_inline void simd4x4f_add(simd4x4f* a, simd4x4f* b, simd4x4f* out) { out->x = simd4f_add(a->x, b->x); out->y = simd4f_add(a->y, b->y); out->z = simd4f_add(a->z, b->z); out->w = simd4f_add(a->w, b->w); } vectorial_inline void simd4x4f_sub(simd4x4f* a, simd4x4f* b, simd4x4f* out) { out->x = simd4f_sub(a->x, b->x); out->y = simd4f_sub(a->y, b->y); out->z = simd4f_sub(a->z, b->z); out->w = simd4f_sub(a->w, b->w); } vectorial_inline void simd4x4f_mul(simd4x4f* a, simd4x4f* b, simd4x4f* out) { out->x = simd4f_mul(a->x, b->x); out->y = simd4f_mul(a->y, b->y); out->z = simd4f_mul(a->z, b->z); out->w = simd4f_mul(a->w, b->w); } vectorial_inline void simd4x4f_div(simd4x4f* a, simd4x4f* b, simd4x4f* out) { out->x = simd4f_div(a->x, b->x); out->y = simd4f_div(a->y, b->y); out->z = simd4f_div(a->z, b->z); out->w = simd4f_div(a->w, b->w); } vectorial_inline void simd4x4f_inverse(const simd4x4f* a, simd4x4f* out) { const simd4f c0 = a->x; const simd4f c1 = a->y; const simd4f c2 = a->z; const simd4f c3 = a->w; const simd4f c0_wxyz = simd4f_shuffle_wxyz(c0); const simd4f c0_zwxy = simd4f_shuffle_zwxy(c0); const simd4f c0_yzwx = simd4f_shuffle_yzwx(c0); const simd4f c1_wxyz = simd4f_shuffle_wxyz(c1); const simd4f c1_zwxy = simd4f_shuffle_zwxy(c1); const simd4f c1_yzwx = simd4f_shuffle_yzwx(c1); const simd4f c2_wxyz = simd4f_shuffle_wxyz(c2); const simd4f c2_zwxy = simd4f_shuffle_zwxy(c2); const simd4f c2_yzwx = simd4f_shuffle_yzwx(c2); const simd4f c3_wxyz = simd4f_shuffle_wxyz(c3); const simd4f c3_zwxy = simd4f_shuffle_zwxy(c3); const simd4f c3_yzwx = simd4f_shuffle_yzwx(c3); const simd4f c0_wxyz_x_c1 = simd4f_mul(c0_wxyz, c1); const simd4f c0_wxyz_x_c1_yzwx = simd4f_mul(c0_wxyz, c1_yzwx); const simd4f c0_wxyz_x_c1_zwxy = simd4f_mul(c0_wxyz, c1_zwxy); const simd4f c2_wxyz_x_c3 = simd4f_mul(c2_wxyz, c3); const simd4f c2_wxyz_x_c3_yzwx = simd4f_mul(c2_wxyz, c3_yzwx); const simd4f c2_wxyz_x_c3_zwxy = simd4f_mul(c2_wxyz, c3_zwxy); const simd4f ar1 = simd4f_sub( simd4f_shuffle_wxyz(c2_wxyz_x_c3_zwxy), simd4f_shuffle_zwxy(c2_wxyz_x_c3) ); const simd4f ar2 = simd4f_sub( simd4f_shuffle_zwxy(c2_wxyz_x_c3_yzwx), c2_wxyz_x_c3_yzwx ); const simd4f ar3 = simd4f_sub( c2_wxyz_x_c3_zwxy, simd4f_shuffle_wxyz(c2_wxyz_x_c3) ); const simd4f br1 = simd4f_sub( simd4f_shuffle_wxyz(c0_wxyz_x_c1_zwxy), simd4f_shuffle_zwxy(c0_wxyz_x_c1) ); const simd4f br2 = simd4f_sub( simd4f_shuffle_zwxy(c0_wxyz_x_c1_yzwx), c0_wxyz_x_c1_yzwx ); const simd4f br3 = simd4f_sub( c0_wxyz_x_c1_zwxy, simd4f_shuffle_wxyz(c0_wxyz_x_c1) ); const simd4f c0_sum = simd4f_madd(c0_yzwx, ar3, simd4f_madd(c0_zwxy, ar2, simd4f_mul(c0_wxyz, ar1))); const simd4f c1_sum = simd4f_madd(c1_wxyz, ar1, simd4f_madd(c1_zwxy, ar2, simd4f_mul(c1_yzwx, ar3))); const simd4f c2_sum = simd4f_madd(c2_yzwx, br3, simd4f_madd(c2_zwxy, br2, simd4f_mul(c2_wxyz, br1))); const simd4f c3_sum = simd4f_madd(c3_yzwx, br3, simd4f_madd(c3_zwxy, br2, simd4f_mul(c3_wxyz, br1))); const simd4f d0 = simd4f_mul(c1_sum, c0); const simd4f d1 = simd4f_add(d0, simd4f_merge_high(d0, d0)); const simd4f det = simd4f_sub(d1, simd4f_splat_y(d1)); const simd4f invdet = simd4f_splat_x( simd4f_div(simd4f_splat(1.0f), det) ); const simd4f o0 = simd4f_mul( simd4f_flip_sign_0101(c1_sum), invdet ); const simd4f o1 = simd4f_mul( simd4f_flip_sign_1010(c0_sum), invdet ); const simd4f o2 = simd4f_mul( simd4f_flip_sign_0101(c3_sum), invdet ); const simd4f o3 = simd4f_mul( simd4f_flip_sign_1010(c2_sum), invdet ); const simd4x4f mt = simd4x4f_create(o0, o1, o2, o3); simd4x4f_transpose( &mt, out); } #ifdef __cplusplus #ifdef VECTORIAL_OSTREAM #include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const simd4x4f& v) { os << "simd4x4f(simd4f(" << simd4f_get_x(v.x) << ", " << simd4f_get_y(v.x) << ", " << simd4f_get_z(v.x) << ", " << simd4f_get_w(v.x) << "),\n" << " simd4f(" << simd4f_get_x(v.y) << ", " << simd4f_get_y(v.y) << ", " << simd4f_get_z(v.y) << ", " << simd4f_get_w(v.y) << "),\n" << " simd4f(" << simd4f_get_x(v.z) << ", " << simd4f_get_y(v.z) << ", " << simd4f_get_z(v.z) << ", " << simd4f_get_w(v.z) << "),\n" << " simd4f(" << simd4f_get_x(v.w) << ", " << simd4f_get_y(v.w) << ", " << simd4f_get_z(v.w) << ", " << simd4f_get_w(v.w) << "))"; return os; } #endif #endif #endif |
Added jni/glshim/src/util/vectorial/simd4x4f_gnu.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4X4F_GNU_H #define VECTORIAL_SIMD4X4F_GNU_H vectorial_inline void simd4x4f_transpose_inplace(simd4x4f* s) { const _simd4f_union sx = { s->x }; const _simd4f_union sy = { s->y }; const _simd4f_union sz = { s->z }; const _simd4f_union sw = { s->w }; const simd4f dx = { sx.f[0], sy.f[0], sz.f[0], sw.f[0] }; const simd4f dy = { sx.f[1], sy.f[1], sz.f[1], sw.f[1] }; const simd4f dz = { sx.f[2], sy.f[2], sz.f[2], sw.f[2] }; const simd4f dw = { sx.f[3], sy.f[3], sz.f[3], sw.f[3] }; s->x = dx; s->y = dy; s->z = dz; s->w = dw; } vectorial_inline void simd4x4f_transpose(const simd4x4f *s, simd4x4f *out) { *out=*s; simd4x4f_transpose_inplace(out); } #endif |
Added jni/glshim/src/util/vectorial/simd4x4f_neon.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4X4F_NEON_H #define VECTORIAL_SIMD4X4F_NEON_H vectorial_inline void simd4x4f_transpose_inplace(simd4x4f* s) { const _simd4f_union sx = { s->x }; const _simd4f_union sy = { s->y }; const _simd4f_union sz = { s->z }; const _simd4f_union sw = { s->w }; const simd4f dx = simd4f_create( sx.f[0], sy.f[0], sz.f[0], sw.f[0] ); const simd4f dy = simd4f_create( sx.f[1], sy.f[1], sz.f[1], sw.f[1] ); const simd4f dz = simd4f_create( sx.f[2], sy.f[2], sz.f[2], sw.f[2] ); const simd4f dw = simd4f_create( sx.f[3], sy.f[3], sz.f[3], sw.f[3] ); s->x = dx; s->y = dy; s->z = dz; s->w = dw; } vectorial_inline void simd4x4f_transpose(const simd4x4f *s, simd4x4f *out) { *out=*s; simd4x4f_transpose_inplace(out); } #endif |
Added jni/glshim/src/util/vectorial/simd4x4f_scalar.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4X4F_SCALAR_H #define VECTORIAL_SIMD4X4F_SCALAR_H vectorial_inline void simd4x4f_transpose_inplace(simd4x4f *s) { simd4x4f d=*s; s->x.x = d.x.x; s->x.y = d.y.x; s->x.z = d.z.x; s->x.w = d.w.x; s->y.x = d.x.y; s->y.y = d.y.y; s->y.z = d.z.y; s->y.w = d.w.y; s->z.x = d.x.z; s->z.y = d.y.z; s->z.z = d.z.z; s->z.w = d.w.z; s->w.x = d.x.w; s->w.y = d.y.w; s->w.z = d.z.w; s->w.w = d.w.w; } vectorial_inline void simd4x4f_transpose(const simd4x4f *s, simd4x4f *out) { *out=*s; simd4x4f_transpose_inplace(out); } #endif |
Added jni/glshim/src/util/vectorial/simd4x4f_sse.h.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_SIMD4X4F_SSE_H #define VECTORIAL_SIMD4X4F_SSE_H vectorial_inline void simd4x4f_transpose_inplace(simd4x4f *s) { _MM_TRANSPOSE4_PS(s->x, s->y, s->z, s->w); } vectorial_inline void simd4x4f_transpose(const simd4x4f *s, simd4x4f *out) { *out=*s; simd4x4f_transpose_inplace(out); } #endif |
Added jni/glshim/src/util/vectorial/vec2f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_VEC2F_H #ifndef VECTORIAL_SIMD4F_H #include "vectorial/simd4f.h" #endif namespace vectorial { class vec4f; class vec3f; class vec2f { public: simd4f value; inline vec2f() {} inline vec2f(const vec2f& v) : value(v.value) {} inline vec2f(const simd4f& v) : value(v) {} explicit inline vec2f(float xy) : value( simd4f_splat(xy) ) {} inline vec2f(float x, float y) : value( simd4f_create(x,y,0,0) ) {} explicit inline vec2f(const float *ary) : value( simd4f_uload2(ary) ) { } inline float x() const { return simd4f_get_x(value); } inline float y() const { return simd4f_get_y(value); } inline void load(const float *ary) { value = simd4f_uload2(ary); } inline void store(float *ary) const { simd4f_ustore2(value, ary); } enum { elements = 2 }; static vec2f zero() { return vec2f(simd4f_zero()); } static vec2f one() { return vec2f(1.0f); } static vec2f xAxis() { return vec2f(1.0f, 0.0f); } static vec2f yAxis() { return vec2f(0.0f, 1.0f); } inline vec4f xyzw(float z, float w) const; inline vec4f xy00() const; inline vec4f xy01() const; inline vec3f xyz(float z) const; inline vec3f xy0() const; inline vec2f xy() const; }; vectorial_inline vec2f operator-(const vec2f& lhs) { return vec2f( simd4f_sub(simd4f_zero(), lhs.value) ); } vectorial_inline vec2f operator+(const vec2f& lhs, const vec2f& rhs) { return vec2f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec2f operator-(const vec2f& lhs, const vec2f& rhs) { return vec2f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec2f operator*(const vec2f& lhs, const vec2f& rhs) { return vec2f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec2f operator/(const vec2f& lhs, const vec2f& rhs) { return vec2f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec2f operator+=(vec2f& lhs, const vec2f& rhs) { return lhs = vec2f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec2f operator-=(vec2f& lhs, const vec2f& rhs) { return lhs = vec2f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec2f operator*=(vec2f& lhs, const vec2f& rhs) { return lhs = vec2f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec2f operator/=(vec2f& lhs, const vec2f& rhs) { return lhs = vec2f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec2f operator+(const vec2f& lhs, float rhs) { return vec2f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator-(const vec2f& lhs, float rhs) { return vec2f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator*(const vec2f& lhs, float rhs) { return vec2f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator/(const vec2f& lhs, float rhs) { return vec2f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator+(float lhs, const vec2f& rhs) { return vec2f( simd4f_add(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec2f operator-(float lhs, const vec2f& rhs) { return vec2f( simd4f_sub(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec2f operator*(float lhs, const vec2f& rhs) { return vec2f( simd4f_mul(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec2f operator/(float lhs, const vec2f& rhs) { return vec2f( simd4f_div(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec2f operator+=(vec2f& lhs, float rhs) { return lhs = vec2f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator-=(vec2f& lhs, float rhs) { return lhs = vec2f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator*=(vec2f& lhs, float rhs) { return lhs = vec2f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec2f operator/=(vec2f& lhs, float rhs) { return lhs = vec2f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline float dot(const vec2f& lhs, const vec2f& rhs) { return simd4f_get_x( simd4f_dot2(lhs.value, rhs.value) ); } vectorial_inline float length(const vec2f& v) { return simd4f_get_x( simd4f_length2(v.value) ); } vectorial_inline float length_squared(const vec2f& v) { return simd4f_get_x( simd4f_length2_squared(v.value) ); } vectorial_inline vec2f normalize(const vec2f& v) { return vec2f( simd4f_normalize2(v.value) ); } vectorial_inline vec2f min(const vec2f& a, const vec2f& b) { return vec2f( simd4f_min(a.value, b.value) ); } vectorial_inline vec2f max(const vec2f& a, const vec2f& b) { return vec2f( simd4f_max(a.value, b.value) ); } } namespace std { inline ::vectorial::vec2f min(const ::vectorial::vec2f& a, const ::vectorial::vec2f& b) { return ::vectorial::min(a,b); } inline ::vectorial::vec2f max(const ::vectorial::vec2f& a, const ::vectorial::vec2f& b) { return ::vectorial::max(a,b); } } #ifdef VECTORIAL_OSTREAM #include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const vectorial::vec2f& v) { os << "[ " << v.x() << ", " << v.y() << " ]"; return os; } #endif #endif |
Added jni/glshim/src/util/vectorial/vec3f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_VEC3F_H #ifndef VECTORIAL_SIMD4F_H #include "vectorial/simd4f.h" #endif namespace vectorial { class vec4f; class vec2f; class vec3f { public: simd4f value; inline vec3f() {} inline vec3f(const vec3f& v) : value(v.value) {} inline vec3f(const simd4f& v) : value(v) {} explicit inline vec3f(float xyz) : value( simd4f_splat(xyz) ) {} inline vec3f(float x, float y, float z) : value( simd4f_create(x,y,z,0) ) {} explicit inline vec3f(const float *ary) : value( simd4f_uload3(ary) ) { } inline float x() const { return simd4f_get_x(value); } inline float y() const { return simd4f_get_y(value); } inline float z() const { return simd4f_get_z(value); } inline void load(const float *ary) { value = simd4f_uload3(ary); } inline void store(float *ary) const { simd4f_ustore3(value, ary); } enum { elements = 3 }; static vec3f zero() { return vec3f(simd4f_zero()); } static vec3f one() { return vec3f(1.0f); } static vec3f xAxis() { return vec3f(1.0f, 0.0f, 0.0f); } static vec3f yAxis() { return vec3f(0.0f, 1.0f, 0.0f); } static vec3f zAxis() { return vec3f(0.0f, 0.0f, 1.0f); } inline vec4f xyz0() const; inline vec4f xyz1() const; inline vec4f xyzw(float w) const; inline vec3f xyz() const; inline vec3f xy0() const; inline vec2f xy() const; }; vectorial_inline vec3f operator-(const vec3f& lhs) { return vec3f( simd4f_sub(simd4f_zero(), lhs.value) ); } vectorial_inline vec3f operator+(const vec3f& lhs, const vec3f& rhs) { return vec3f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec3f operator-(const vec3f& lhs, const vec3f& rhs) { return vec3f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec3f operator*(const vec3f& lhs, const vec3f& rhs) { return vec3f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec3f operator/(const vec3f& lhs, const vec3f& rhs) { return vec3f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec3f operator+=(vec3f& lhs, const vec3f& rhs) { return lhs = vec3f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec3f operator-=(vec3f& lhs, const vec3f& rhs) { return lhs = vec3f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec3f operator*=(vec3f& lhs, const vec3f& rhs) { return lhs = vec3f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec3f operator/=(vec3f& lhs, const vec3f& rhs) { return lhs = vec3f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec3f operator+(const vec3f& lhs, float rhs) { return vec3f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator-(const vec3f& lhs, float rhs) { return vec3f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator*(const vec3f& lhs, float rhs) { return vec3f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator/(const vec3f& lhs, float rhs) { return vec3f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator+(float lhs, const vec3f& rhs) { return vec3f( simd4f_add(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec3f operator-(float lhs, const vec3f& rhs) { return vec3f( simd4f_sub(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec3f operator*(float lhs, const vec3f& rhs) { return vec3f( simd4f_mul(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec3f operator/(float lhs, const vec3f& rhs) { return vec3f( simd4f_div(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec3f operator+=(vec3f& lhs, float rhs) { return lhs = vec3f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator-=(vec3f& lhs, float rhs) { return lhs = vec3f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator*=(vec3f& lhs, float rhs) { return lhs = vec3f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec3f operator/=(vec3f& lhs, float rhs) { return lhs = vec3f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline float dot(const vec3f& lhs, const vec3f& rhs) { return simd4f_get_x( simd4f_dot3(lhs.value, rhs.value) ); } vectorial_inline vec3f cross(const vec3f& lhs, const vec3f& rhs) { return simd4f_cross3(lhs.value, rhs.value); } vectorial_inline float length(const vec3f& v) { return simd4f_get_x( simd4f_length3(v.value) ); } vectorial_inline float length_squared(const vec3f& v) { return simd4f_get_x( simd4f_length3_squared(v.value) ); } vectorial_inline vec3f normalize(const vec3f& v) { return vec3f( simd4f_normalize3(v.value) ); } vectorial_inline vec3f min(const vec3f& a, const vec3f& b) { return vec3f( simd4f_min(a.value, b.value) ); } vectorial_inline vec3f max(const vec3f& a, const vec3f& b) { return vec3f( simd4f_max(a.value, b.value) ); } } namespace std { inline ::vectorial::vec3f min(const ::vectorial::vec3f& a, const ::vectorial::vec3f& b) { return ::vectorial::min(a,b); } inline ::vectorial::vec3f max(const ::vectorial::vec3f& a, const ::vectorial::vec3f& b) { return ::vectorial::max(a,b); } } #ifdef VECTORIAL_OSTREAM #include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const vectorial::vec3f& v) { os << "[ " << v.x() << ", " << v.y() << ", " << v.z() << " ]"; return os; } #endif #endif |
Added jni/glshim/src/util/vectorial/vec4f.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_VEC4F_H #define VECTORIAL_VEC4F_H #ifndef VECTORIAL_SIMD4F_H #include "vectorial/simd4f.h" #endif namespace vectorial { class vec3f; class vec2f; class vec4f { public: simd4f value; inline vec4f() {} inline vec4f(const vec4f& v) : value(v.value) {} inline vec4f(const simd4f& v) : value(v) {} explicit inline vec4f(float xyzw) : value( simd4f_splat(xyzw) ) {} inline vec4f(float x, float y, float z, float w) : value( simd4f_create(x,y,z,w) ) {} explicit inline vec4f(const float *ary) : value( simd4f_uload4(ary) ) { } inline float x() const { return simd4f_get_x(value); } inline float y() const { return simd4f_get_y(value); } inline float z() const { return simd4f_get_z(value); } inline float w() const { return simd4f_get_w(value); } inline void load(const float *ary) { value = simd4f_uload4(ary); } inline void store(float *ary) const { simd4f_ustore4(value, ary); } enum { elements = 4 }; static vec4f zero() { return vec4f(simd4f_zero()); } static vec4f one() { return vec4f(1.0f); } static vec4f xAxis() { return vec4f(1.0f, 0.0f, 0.0f, 0.0f); } static vec4f yAxis() { return vec4f(0.0f, 1.0f, 0.0f, 0.0f); } static vec4f zAxis() { return vec4f(0.0f, 0.0f, 1.0f, 0.0f); } static vec4f wAxis() { return vec4f(0.0f, 0.0f, 0.0f, 1.0f); } inline vec3f xyz() const; inline vec2f xy() const; }; vectorial_inline vec4f operator-(const vec4f& lhs) { return vec4f( simd4f_sub(simd4f_zero(), lhs.value) ); } vectorial_inline vec4f operator+(const vec4f& lhs, const vec4f& rhs) { return vec4f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec4f operator-(const vec4f& lhs, const vec4f& rhs) { return vec4f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec4f operator*(const vec4f& lhs, const vec4f& rhs) { return vec4f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec4f operator/(const vec4f& lhs, const vec4f& rhs) { return vec4f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec4f operator+=(vec4f& lhs, const vec4f& rhs) { return lhs = vec4f( simd4f_add(lhs.value, rhs.value) ); } vectorial_inline vec4f operator-=(vec4f& lhs, const vec4f& rhs) { return lhs = vec4f( simd4f_sub(lhs.value, rhs.value) ); } vectorial_inline vec4f operator*=(vec4f& lhs, const vec4f& rhs) { return lhs = vec4f( simd4f_mul(lhs.value, rhs.value) ); } vectorial_inline vec4f operator/=(vec4f& lhs, const vec4f& rhs) { return lhs = vec4f( simd4f_div(lhs.value, rhs.value) ); } vectorial_inline vec4f operator+(const vec4f& lhs, float rhs) { return vec4f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator-(const vec4f& lhs, float rhs) { return vec4f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator*(const vec4f& lhs, float rhs) { return vec4f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator/(const vec4f& lhs, float rhs) { return vec4f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator+(float lhs, const vec4f& rhs) { return vec4f( simd4f_add(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec4f operator-(float lhs, const vec4f& rhs) { return vec4f( simd4f_sub(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec4f operator*(float lhs, const vec4f& rhs) { return vec4f( simd4f_mul(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec4f operator/(float lhs, const vec4f& rhs) { return vec4f( simd4f_div(simd4f_splat(lhs), rhs.value) ); } vectorial_inline vec4f operator+=(vec4f& lhs, float rhs) { return lhs = vec4f( simd4f_add(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator-=(vec4f& lhs, float rhs) { return lhs = vec4f( simd4f_sub(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator*=(vec4f& lhs, float rhs) { return lhs = vec4f( simd4f_mul(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline vec4f operator/=(vec4f& lhs, float rhs) { return lhs = vec4f( simd4f_div(lhs.value, simd4f_splat(rhs)) ); } vectorial_inline float dot(const vec4f& lhs, const vec4f& rhs) { return simd4f_get_x( simd4f_dot4(lhs.value, rhs.value) ); } vectorial_inline float length(const vec4f& v) { return simd4f_get_x( simd4f_length4(v.value) ); } vectorial_inline float length_squared(const vec4f& v) { return simd4f_get_x( simd4f_length4_squared(v.value) ); } vectorial_inline vec4f normalize(const vec4f& v) { return vec4f( simd4f_normalize4(v.value) ); } vectorial_inline vec4f min(const vec4f& a, const vec4f& b) { return vec4f( simd4f_min(a.value, b.value) ); } vectorial_inline vec4f max(const vec4f& a, const vec4f& b) { return vec4f( simd4f_max(a.value, b.value) ); } } namespace std { inline ::vectorial::vec4f min(const ::vectorial::vec4f& a, const ::vectorial::vec4f& b) { return ::vectorial::min(a,b); } inline ::vectorial::vec4f max(const ::vectorial::vec4f& a, const ::vectorial::vec4f& b) { return ::vectorial::max(a,b); } } #ifdef VECTORIAL_OSTREAM #include <ostream> vectorial_inline std::ostream& operator<<(std::ostream& os, const vectorial::vec4f& v) { os << "[ " << v.x() << ", " << v.y() << ", " << v.z() << ", " << v.w() << " ]"; return os; } #endif #endif |
Added jni/glshim/src/util/vectorial/vec_convert.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_VEC_CONVERT_H #define VECTORIAL_VEC_CONVERT_H namespace vectorial { inline vec3f vec4f::xyz() const { return vec3f(value); } inline vec2f vec4f::xy() const { return vec2f(value); } inline vec4f vec3f::xyz0() const { return vec4f(simd4f_zero_w(value)); } inline vec4f vec3f::xyz1() const { return xyz0() + vec4f(0.0f, 0.0f, 0.0f, 1.0f); } inline vec4f vec3f::xyzw(float w) const { return xyz0() + vec4f(0.0f, 0.0f, 0.0f, w); } inline vec3f vec3f::xyz() const { return vec3f(value); } inline vec3f vec3f::xy0() const { return vec3f(value) * vec3f(1.0f, 1.0f, 0.0f); } inline vec2f vec3f::xy() const { return vec2f(value); } inline vec4f vec2f::xy00() const { return vec4f(simd4f_zero_zw(value)); } inline vec4f vec2f::xy01() const { return xy00() + vec4f(0.0f, 0.0f, 0.0f, 1.0f); } inline vec4f vec2f::xyzw(float z, float w) const { return xy00() + vec4f(0.0f, 0.0f, z, w); } inline vec3f vec2f::xy0() const { return vec3f(simd4f_zero_zw(value)); } inline vec2f vec2f::xy() const { return vec2f(value); } } #endif |
Added jni/glshim/src/util/vectorial/vectorial.h.
> > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* Vectorial Copyright (c) 2010 Mikko Lehtonen Licensed under the terms of the two-clause BSD License (see LICENSE) */ #ifndef VECTORIAL_VECTORIAL_H #define VECTORIAL_VECTORIAL_H #include "vectorial/vec2f.h" #include "vectorial/vec3f.h" #include "vectorial/vec4f.h" #include "vectorial/vec_convert.h" #include "vectorial/mat4f.h" #endif |
Added jni/glshim/test/requirements.txt.
> > | 1 2 | Jinja2 blessings |
Added jni/glshim/test/run.
> > > > | 1 2 3 4 | #!/bin/bash -u cd $(dirname "$0") python util/run.py --project="$(pwd)/.." --base "$(pwd)/tests" "$@" |
Added jni/glshim/test/tests/array/skip.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | int main() { #define STRIDE 0, 0, 0, 0, 0, 0, 0, 0, 0 GLfloat vert[] = { 0, 0, 0, STRIDE, 1, 1, 1, STRIDE, 2, 2, 2, STRIDE, 3, 3, 3, STRIDE, 4, 4, 4, STRIDE, 5, 5, 5, STRIDE, }; glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 12 * sizeof(GLfloat), vert); glDrawArrays(GL_QUADS, 2, 4); GLfloat vert_out[] = { 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, }; GLushort indices[] = {0, 1, 3, 1, 2, 3}; test_glEnableClientState(GL_VERTEX_ARRAY); test_glVertexPointer(3, GL_FLOAT, 12 * 4, vert); test_glVertexPointer(3, GL_FLOAT, 0, vert_out); test_glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices); mock_return; } |
Added jni/glshim/test/tests/block/quads.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | int main() { glBegin(GL_QUADS); glColor4f(0, 0.1, 0.2, 0.3); glTexCoord2f(0.4, 0.5); glVertex3f(0, 1, 2); glVertex3f(3, 4, 5); glVertex3f(6, 7, 8); glVertex3f(9, 10, 11); glEnd(); GLfloat verts[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, }; GLfloat color[] = { 0, 0.1, 0.2, 0.3, 0, 0.1, 0.2, 0.3, 0, 0.1, 0.2, 0.3, 0, 0.1, 0.2, 0.3, }; GLfloat tex[] = { 0.4, 0.5, 0.4, 0.5, 0.4, 0.5, 0.4, 0.5, }; GLushort indices[] = { 0, 1, 3, 1, 2, 3, }; // TODO: out of order glEnableClientState? test_glColor4f(0.0, 0.1, 0.2, 0.3); test_glEnableClientState(GL_VERTEX_ARRAY); test_glVertexPointer(3, GL_FLOAT, 0, verts); test_glEnableClientState(GL_COLOR_ARRAY); test_glColorPointer(4, GL_FLOAT, 0, color); test_glEnableClientState(GL_TEXTURE_COORD_ARRAY); test_glTexCoordPointer(2, GL_FLOAT, 0, tex); test_glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices); test_glDisableClientState(GL_VERTEX_ARRAY); test_glDisableClientState(GL_COLOR_ARRAY); test_glDisableClientState(GL_TEXTURE_COORD_ARRAY); mock_return; } |
Added jni/glshim/test/tests/block/rect.c.
> > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | int main() { for (int i = 0; i < 3; i++) { glRectf(0, 0, 1, 1); test_glEnableClientState(GL_VERTEX_ARRAY); // TODO: pointers are skipped in verification GLfloat verts[] = { 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, }; test_glVertexPointer(3, GL_FLOAT, 0, verts); test_glDrawArrays(GL_TRIANGLE_FAN, 0, 4); test_glDisableClientState(GL_VERTEX_ARRAY); } mock_return; } |
Added jni/glshim/test/tests/block/tri.c.
> > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | int main() { glBegin(GL_TRIANGLES); glVertex3f(0, 1, 2); glVertex3f(3, 4, 5); glVertex3f(6, 7, 8); glEnd(); test_glEnableClientState(GL_VERTEX_ARRAY); GLfloat verts[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, }; test_glVertexPointer(3, GL_FLOAT, 0, verts); test_glDrawArrays(GL_TRIANGLES, 0, 3); test_glDisableClientState(GL_VERTEX_ARRAY); mock_return; } |
Added jni/glshim/test/tests/list/nested.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | int main() { GLuint list = glGenLists(3); glNewList(list, GL_COMPILE); glRectf(0, 0, 1, 1); glEndList(); glNewList(list + 1, GL_COMPILE); glCallList(list); glEndList(); glNewList(list + 2, GL_COMPILE); glCallList(list + 1); glEndList(); glCallList(list + 2); GLfloat verts[] = { 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, }; test_glEnableClientState(GL_VERTEX_ARRAY); test_glVertexPointer(3, GL_FLOAT, 0, verts); test_glDrawArrays(6, 0, 4); test_glDisableClientState(GL_VERTEX_ARRAY); mock_return; } |
Added jni/glshim/test/tests/list/new.c.
> > > > > > | 1 2 3 4 5 6 | int main() { int list = glGenLists(1); glNewList(list, GL_COMPILE); mock_assert(state.list.active, "glNewList failed\n"); mock_return; } |
Added jni/glshim/test/tests/meta/test.py.
> > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import os import sys def walk(base): for root, _, files in os.walk(base): for name in files: yield os.path.join(root, name) if __name__ == '__main__': failed = False for name in walk('tests'): if name.endswith('.c'): with open(name, 'r') as f: data = f.read() if not 'mock_return;' in data: print 'ERROR: "{}" has no mock_return;'.format(name) failed = True if failed: sys.exit(1) |
Added jni/glshim/test/tests/render/feedback.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include "tack.h" int main() { GLfloat buffer[4096]; glFeedbackBuffer(4096, GL_2D, buffer); glRenderMode(GL_FEEDBACK); glPassThrough(7); glRectf(0, 0, 1, 1); int size = glRenderMode(GL_RENDER); assert(size == 15); GLfloat *pos = buffer; #define _(val) assert(*pos++ == val) _(GL_PASS_THROUGH_TOKEN); _(7.0f); _(GL_POLYGON_TOKEN); _(3.0f); _(1.0f); _(0.0f); _(1.0f); _(1.0f); _(0.0f); _(0.0f); _(GL_POLYGON_TOKEN); _(3.0f); _(1.0f); _(1.0f); _(0.0f); _(1.0f); _(0.0f); _(0.0f); mock_return; } |
Added jni/glshim/test/tests/state/default.c.
> > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #define check(name, ...) { \ GLfloat tmp[] = __VA_ARGS__; \ assert(memcmp(state.name, tmp, sizeof(tmp)) == 0);} int main() { check(current.color, {1.0f, 1.0f, 1.0f, 1.0f}); check(current.normal, {0.0f, 0.0f, 1.0f}); for (int i = 0; i < MAX_TEX; i++) { check(current.tex[i], {0, 0}); texgen_state_t *t = &state.texgen[i]; assert(t->R == GL_EYE_LINEAR); assert(t->Q == GL_EYE_LINEAR); assert(t->S == GL_EYE_LINEAR); assert(t->T == GL_EYE_LINEAR); } mock_return; } |
Added jni/glshim/test/tests/util/gl_str.c.
> > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 | #include "gl_str.h" int main() { #define check(func, name) assert(strcmp(func(name), #name) == 0); check(gl_str_primitive, GL_QUADS); check(gl_str, GL_FLOAT); check(gl_bits_glPushClientAttrib, GL_CLIENT_ALL_ATTRIB_BITS); check(gl_bits_glPushAttrib, GL_CURRENT_BIT | GL_POINT_BIT); mock_return; } |
Added jni/glshim/test/tests/util/tack.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | int main() { tack_t stack = {0}; tack_push(&stack, 1); assert(tack_peek(&stack) == 1); assert(tack_len(&stack) == 1); tack_push(&stack, 2); tack_push(&stack, 3); assert(tack_get(&stack, 0) == 1); assert(tack_peek(&stack) == 3); assert(tack_pop(&stack) == 3); assert(tack_peek(&stack) == 2); tack_clear(&stack); assert(tack_len(&stack) == 0); for (int i = 0; i < 10000; i++) { tack_push(&stack, i); assert(tack_peek(&stack) == i); } for (int i = 0; i < 10000; i++) { assert(tack_shift(&stack) == i); } tack_clear(&stack); tack_set(&stack, 1, "test"); assert(tack_get(&stack, 0) == NULL); assert(strcmp(tack_get(&stack, 1), "test") == 0); mock_return; } |
Added jni/glshim/test/util/mock.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 | #include "mock.h" #include <stdio.h> #include "tack.h" static tack_t mock = {0}; const char *mock_name(int func) { switch (func) { case glActiveTexture_INDEX: return "glActiveTexture"; case glAlphaFunc_INDEX: return "glAlphaFunc"; case glAlphaFuncx_INDEX: return "glAlphaFuncx"; case glBindBuffer_INDEX: return "glBindBuffer"; case glBindTexture_INDEX: return "glBindTexture"; case glBlendColorOES_INDEX: return "glBlendColorOES"; case glBlendEquationOES_INDEX: return "glBlendEquationOES"; case glBlendEquationSeparateOES_INDEX: return "glBlendEquationSeparateOES"; case glBlendFunc_INDEX: return "glBlendFunc"; case glBlendFuncSeparateOES_INDEX: return "glBlendFuncSeparateOES"; case glBufferData_INDEX: return "glBufferData"; case glBufferSubData_INDEX: return "glBufferSubData"; case glClear_INDEX: return "glClear"; case glClearColor_INDEX: return "glClearColor"; case glClearColorx_INDEX: return "glClearColorx"; case glClearDepthf_INDEX: return "glClearDepthf"; case glClearDepthx_INDEX: return "glClearDepthx"; case glClearStencil_INDEX: return "glClearStencil"; case glClientActiveTexture_INDEX: return "glClientActiveTexture"; case glClipPlanef_INDEX: return "glClipPlanef"; case glClipPlanex_INDEX: return "glClipPlanex"; case glColor4f_INDEX: return "glColor4f"; case glColor4ub_INDEX: return "glColor4ub"; case glColor4x_INDEX: return "glColor4x"; case glColorMask_INDEX: return "glColorMask"; case glColorPointer_INDEX: return "glColorPointer"; case glCompressedTexImage2D_INDEX: return "glCompressedTexImage2D"; case glCompressedTexSubImage2D_INDEX: return "glCompressedTexSubImage2D"; case glCopyTexImage2D_INDEX: return "glCopyTexImage2D"; case glCopyTexSubImage2D_INDEX: return "glCopyTexSubImage2D"; case glCullFace_INDEX: return "glCullFace"; case glDeleteBuffers_INDEX: return "glDeleteBuffers"; case glDeleteTextures_INDEX: return "glDeleteTextures"; case glDepthFunc_INDEX: return "glDepthFunc"; case glDepthMask_INDEX: return "glDepthMask"; case glDepthRangef_INDEX: return "glDepthRangef"; case glDepthRangex_INDEX: return "glDepthRangex"; case glDisable_INDEX: return "glDisable"; case glDisableClientState_INDEX: return "glDisableClientState"; case glDrawArrays_INDEX: return "glDrawArrays"; case glDrawElements_INDEX: return "glDrawElements"; case glEnable_INDEX: return "glEnable"; case glEnableClientState_INDEX: return "glEnableClientState"; case glFinish_INDEX: return "glFinish"; case glFlush_INDEX: return "glFlush"; case glFogf_INDEX: return "glFogf"; case glFogfv_INDEX: return "glFogfv"; case glFogx_INDEX: return "glFogx"; case glFogxv_INDEX: return "glFogxv"; case glFrontFace_INDEX: return "glFrontFace"; case glFrustumf_INDEX: return "glFrustumf"; case glFrustumx_INDEX: return "glFrustumx"; case glGenBuffers_INDEX: return "glGenBuffers"; case glGenTextures_INDEX: return "glGenTextures"; case glGetBooleanv_INDEX: return "glGetBooleanv"; case glGetBufferParameteriv_INDEX: return "glGetBufferParameteriv"; case glGetClipPlanef_INDEX: return "glGetClipPlanef"; case glGetClipPlanex_INDEX: return "glGetClipPlanex"; case glGetError_INDEX: return "glGetError"; case glGetFixedv_INDEX: return "glGetFixedv"; case glGetFloatv_INDEX: return "glGetFloatv"; case glGetIntegerv_INDEX: return "glGetIntegerv"; case glGetLightfv_INDEX: return "glGetLightfv"; case glGetLightxv_INDEX: return "glGetLightxv"; case glGetMaterialfv_INDEX: return "glGetMaterialfv"; case glGetMaterialxv_INDEX: return "glGetMaterialxv"; case glGetPointerv_INDEX: return "glGetPointerv"; case glGetString_INDEX: return "glGetString"; case glGetTexEnvfv_INDEX: return "glGetTexEnvfv"; case glGetTexEnviv_INDEX: return "glGetTexEnviv"; case glGetTexEnvxv_INDEX: return "glGetTexEnvxv"; case glGetTexParameterfv_INDEX: return "glGetTexParameterfv"; case glGetTexParameteriv_INDEX: return "glGetTexParameteriv"; case glGetTexParameterxv_INDEX: return "glGetTexParameterxv"; case glHint_INDEX: return "glHint"; case glIsBuffer_INDEX: return "glIsBuffer"; case glIsEnabled_INDEX: return "glIsEnabled"; case glIsTexture_INDEX: return "glIsTexture"; case glLightModelf_INDEX: return "glLightModelf"; case glLightModelfv_INDEX: return "glLightModelfv"; case glLightModelx_INDEX: return "glLightModelx"; case glLightModelxv_INDEX: return "glLightModelxv"; case glLightf_INDEX: return "glLightf"; case glLightfv_INDEX: return "glLightfv"; case glLightx_INDEX: return "glLightx"; case glLightxv_INDEX: return "glLightxv"; case glLineWidth_INDEX: return "glLineWidth"; case glLineWidthx_INDEX: return "glLineWidthx"; case glLoadIdentity_INDEX: return "glLoadIdentity"; case glLoadMatrixf_INDEX: return "glLoadMatrixf"; case glLoadMatrixx_INDEX: return "glLoadMatrixx"; case glLogicOp_INDEX: return "glLogicOp"; case glMaterialf_INDEX: return "glMaterialf"; case glMaterialfv_INDEX: return "glMaterialfv"; case glMaterialx_INDEX: return "glMaterialx"; case glMaterialxv_INDEX: return "glMaterialxv"; case glMatrixMode_INDEX: return "glMatrixMode"; case glMultMatrixf_INDEX: return "glMultMatrixf"; case glMultMatrixx_INDEX: return "glMultMatrixx"; case glMultiTexCoord4f_INDEX: return "glMultiTexCoord4f"; case glMultiTexCoord4x_INDEX: return "glMultiTexCoord4x"; case glNormal3f_INDEX: return "glNormal3f"; case glNormal3x_INDEX: return "glNormal3x"; case glNormalPointer_INDEX: return "glNormalPointer"; case glOrthof_INDEX: return "glOrthof"; case glOrthox_INDEX: return "glOrthox"; case glPixelStorei_INDEX: return "glPixelStorei"; case glPointParameterf_INDEX: return "glPointParameterf"; case glPointParameterfv_INDEX: return "glPointParameterfv"; case glPointParameterx_INDEX: return "glPointParameterx"; case glPointParameterxv_INDEX: return "glPointParameterxv"; case glPointSize_INDEX: return "glPointSize"; case glPointSizePointerOES_INDEX: return "glPointSizePointerOES"; case glPointSizex_INDEX: return "glPointSizex"; case glPolygonOffset_INDEX: return "glPolygonOffset"; case glPolygonOffsetx_INDEX: return "glPolygonOffsetx"; case glPopMatrix_INDEX: return "glPopMatrix"; case glPushMatrix_INDEX: return "glPushMatrix"; case glReadPixels_INDEX: return "glReadPixels"; case glRotatef_INDEX: return "glRotatef"; case glRotatex_INDEX: return "glRotatex"; case glSampleCoverage_INDEX: return "glSampleCoverage"; case glSampleCoveragex_INDEX: return "glSampleCoveragex"; case glScalef_INDEX: return "glScalef"; case glScalex_INDEX: return "glScalex"; case glScissor_INDEX: return "glScissor"; case glShadeModel_INDEX: return "glShadeModel"; case glStencilFunc_INDEX: return "glStencilFunc"; case glStencilMask_INDEX: return "glStencilMask"; case glStencilOp_INDEX: return "glStencilOp"; case glTexCoordPointer_INDEX: return "glTexCoordPointer"; case glTexEnvf_INDEX: return "glTexEnvf"; case glTexEnvfv_INDEX: return "glTexEnvfv"; case glTexEnvi_INDEX: return "glTexEnvi"; case glTexEnviv_INDEX: return "glTexEnviv"; case glTexEnvx_INDEX: return "glTexEnvx"; case glTexEnvxv_INDEX: return "glTexEnvxv"; case glTexImage2D_INDEX: return "glTexImage2D"; case glTexParameterf_INDEX: return "glTexParameterf"; case glTexParameterfv_INDEX: return "glTexParameterfv"; case glTexParameteri_INDEX: return "glTexParameteri"; case glTexParameteriv_INDEX: return "glTexParameteriv"; case glTexParameterx_INDEX: return "glTexParameterx"; case glTexParameterxv_INDEX: return "glTexParameterxv"; case glTexSubImage2D_INDEX: return "glTexSubImage2D"; case glTranslatef_INDEX: return "glTranslatef"; case glTranslatex_INDEX: return "glTranslatex"; case glVertexPointer_INDEX: return "glVertexPointer"; case glViewport_INDEX: return "glViewport"; } } void mock_print(const indexed_call_t *packed) { if (packed == NULL) { printf("NULL()\n"); return; } switch (packed->func) { case glActiveTexture_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glActiveTexture(0x%04X);\n", args.a1); break; } case glAlphaFunc_INDEX: { INDEXED_void_GLenum_GLclampf *unpacked = (INDEXED_void_GLenum_GLclampf *)packed; ARGS_void_GLenum_GLclampf args = unpacked->args; printf("glAlphaFunc(0x%04X, %p);\n", args.a1, args.a2); break; } case glAlphaFuncx_INDEX: { INDEXED_void_GLenum_GLclampx *unpacked = (INDEXED_void_GLenum_GLclampx *)packed; ARGS_void_GLenum_GLclampx args = unpacked->args; printf("glAlphaFuncx(0x%04X, %p);\n", args.a1, args.a2); break; } case glBindBuffer_INDEX: { INDEXED_void_GLenum_GLuint *unpacked = (INDEXED_void_GLenum_GLuint *)packed; ARGS_void_GLenum_GLuint args = unpacked->args; printf("glBindBuffer(0x%04X, %u);\n", args.a1, args.a2); break; } case glBindTexture_INDEX: { INDEXED_void_GLenum_GLuint *unpacked = (INDEXED_void_GLenum_GLuint *)packed; ARGS_void_GLenum_GLuint args = unpacked->args; printf("glBindTexture(0x%04X, %u);\n", args.a1, args.a2); break; } case glBlendColorOES_INDEX: { INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf *unpacked = (INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args = unpacked->args; printf("glBlendColorOES(%p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glBlendEquationOES_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glBlendEquationOES(0x%04X);\n", args.a1); break; } case glBlendEquationSeparateOES_INDEX: { INDEXED_void_GLenum_GLenum *unpacked = (INDEXED_void_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum args = unpacked->args; printf("glBlendEquationSeparateOES(0x%04X, 0x%04X);\n", args.a1, args.a2); break; } case glBlendFunc_INDEX: { INDEXED_void_GLenum_GLenum *unpacked = (INDEXED_void_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum args = unpacked->args; printf("glBlendFunc(0x%04X, 0x%04X);\n", args.a1, args.a2); break; } case glBlendFuncSeparateOES_INDEX: { INDEXED_void_GLenum_GLenum_GLenum_GLenum *unpacked = (INDEXED_void_GLenum_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum_GLenum args = unpacked->args; printf("glBlendFuncSeparateOES(0x%04X, 0x%04X, 0x%04X, 0x%04X);\n", args.a1, args.a2, args.a3, args.a4); break; } case glBufferData_INDEX: { INDEXED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *unpacked = (INDEXED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *)packed; ARGS_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum args = unpacked->args; printf("glBufferData(0x%04X, %d, %p, 0x%04X);\n", args.a1, args.a2, args.a3, args.a4); break; } case glBufferSubData_INDEX: { INDEXED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ args = unpacked->args; printf("glBufferSubData(0x%04X, %d, %d, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glClear_INDEX: { INDEXED_void_GLbitfield *unpacked = (INDEXED_void_GLbitfield *)packed; ARGS_void_GLbitfield args = unpacked->args; printf("glClear(%d);\n", args.a1); break; } case glClearColor_INDEX: { INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf *unpacked = (INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf_GLclampf_GLclampf args = unpacked->args; printf("glClearColor(%p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glClearColorx_INDEX: { INDEXED_void_GLclampx_GLclampx_GLclampx_GLclampx *unpacked = (INDEXED_void_GLclampx_GLclampx_GLclampx_GLclampx *)packed; ARGS_void_GLclampx_GLclampx_GLclampx_GLclampx args = unpacked->args; printf("glClearColorx(%p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glClearDepthf_INDEX: { INDEXED_void_GLclampf *unpacked = (INDEXED_void_GLclampf *)packed; ARGS_void_GLclampf args = unpacked->args; printf("glClearDepthf(%p);\n", args.a1); break; } case glClearDepthx_INDEX: { INDEXED_void_GLclampx *unpacked = (INDEXED_void_GLclampx *)packed; ARGS_void_GLclampx args = unpacked->args; printf("glClearDepthx(%p);\n", args.a1); break; } case glClearStencil_INDEX: { INDEXED_void_GLint *unpacked = (INDEXED_void_GLint *)packed; ARGS_void_GLint args = unpacked->args; printf("glClearStencil(%d);\n", args.a1); break; } case glClientActiveTexture_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glClientActiveTexture(0x%04X);\n", args.a1); break; } case glClipPlanef_INDEX: { INDEXED_void_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glClipPlanef(0x%04X, %p);\n", args.a1, args.a2); break; } case glClipPlanex_INDEX: { INDEXED_void_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glClipPlanex(0x%04X, %p);\n", args.a1, args.a2); break; } case glColor4f_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glColor4f(%0.2f, %0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3, args.a4); break; } case glColor4ub_INDEX: { INDEXED_void_GLubyte_GLubyte_GLubyte_GLubyte *unpacked = (INDEXED_void_GLubyte_GLubyte_GLubyte_GLubyte *)packed; ARGS_void_GLubyte_GLubyte_GLubyte_GLubyte args = unpacked->args; printf("glColor4ub(%c, %c, %c, %c);\n", args.a1, args.a2, args.a3, args.a4); break; } case glColor4x_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glColor4x(%p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glColorMask_INDEX: { INDEXED_void_GLboolean_GLboolean_GLboolean_GLboolean *unpacked = (INDEXED_void_GLboolean_GLboolean_GLboolean_GLboolean *)packed; ARGS_void_GLboolean_GLboolean_GLboolean_GLboolean args = unpacked->args; printf("glColorMask(%d, %d, %d, %d);\n", args.a1, args.a2, args.a3, args.a4); break; } case glColorPointer_INDEX: { INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glColorPointer(%d, 0x%04X, %d, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glCompressedTexImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glCompressedTexImage2D(0x%04X, %d, 0x%04X, %d, %d, %d, %d, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8); break; } case glCompressedTexSubImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glCompressedTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, %d, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9); break; } case glCopyTexImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *unpacked = (INDEXED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint *)packed; ARGS_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint args = unpacked->args; printf("glCopyTexImage2D(0x%04X, %d, 0x%04X, %d, %d, %d, %d, %d);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8); break; } case glCopyTexSubImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *unpacked = (INDEXED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei args = unpacked->args; printf("glCopyTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, %d, %d);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8); break; } case glCullFace_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glCullFace(0x%04X);\n", args.a1); break; } case glDeleteBuffers_INDEX: { INDEXED_void_GLsizei_const_GLuint___GENPT__ *unpacked = (INDEXED_void_GLsizei_const_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_const_GLuint___GENPT__ args = unpacked->args; printf("glDeleteBuffers(%d, %p);\n", args.a1, args.a2); break; } case glDeleteTextures_INDEX: { INDEXED_void_GLsizei_const_GLuint___GENPT__ *unpacked = (INDEXED_void_GLsizei_const_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_const_GLuint___GENPT__ args = unpacked->args; printf("glDeleteTextures(%d, %p);\n", args.a1, args.a2); break; } case glDepthFunc_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glDepthFunc(0x%04X);\n", args.a1); break; } case glDepthMask_INDEX: { INDEXED_void_GLboolean *unpacked = (INDEXED_void_GLboolean *)packed; ARGS_void_GLboolean args = unpacked->args; printf("glDepthMask(%d);\n", args.a1); break; } case glDepthRangef_INDEX: { INDEXED_void_GLclampf_GLclampf *unpacked = (INDEXED_void_GLclampf_GLclampf *)packed; ARGS_void_GLclampf_GLclampf args = unpacked->args; printf("glDepthRangef(%p, %p);\n", args.a1, args.a2); break; } case glDepthRangex_INDEX: { INDEXED_void_GLclampx_GLclampx *unpacked = (INDEXED_void_GLclampx_GLclampx *)packed; ARGS_void_GLclampx_GLclampx args = unpacked->args; printf("glDepthRangex(%p, %p);\n", args.a1, args.a2); break; } case glDisable_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glDisable(0x%04X);\n", args.a1); break; } case glDisableClientState_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glDisableClientState(0x%04X);\n", args.a1); break; } case glDrawArrays_INDEX: { INDEXED_void_GLenum_GLint_GLsizei *unpacked = (INDEXED_void_GLenum_GLint_GLsizei *)packed; ARGS_void_GLenum_GLint_GLsizei args = unpacked->args; printf("glDrawArrays(0x%04X, %d, %d);\n", args.a1, args.a2, args.a3); break; } case glDrawElements_INDEX: { INDEXED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ args = unpacked->args; printf("glDrawElements(0x%04X, %d, 0x%04X, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glEnable_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glEnable(0x%04X);\n", args.a1); break; } case glEnableClientState_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glEnableClientState(0x%04X);\n", args.a1); break; } case glFinish_INDEX: { INDEXED_void *unpacked = (INDEXED_void *)packed; printf("glFinish();\n"); break; } case glFlush_INDEX: { INDEXED_void *unpacked = (INDEXED_void *)packed; printf("glFlush();\n"); break; } case glFogf_INDEX: { INDEXED_void_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLfloat args = unpacked->args; printf("glFogf(0x%04X, %0.2f);\n", args.a1, args.a2); break; } case glFogfv_INDEX: { INDEXED_void_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glFogfv(0x%04X, %p);\n", args.a1, args.a2); break; } case glFogx_INDEX: { INDEXED_void_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLfixed args = unpacked->args; printf("glFogx(0x%04X, %p);\n", args.a1, args.a2); break; } case glFogxv_INDEX: { INDEXED_void_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glFogxv(0x%04X, %p);\n", args.a1, args.a2); break; } case glFrontFace_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glFrontFace(0x%04X);\n", args.a1); break; } case glFrustumf_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glFrustumf(%0.2f, %0.2f, %0.2f, %0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6); break; } case glFrustumx_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glFrustumx(%p, %p, %p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6); break; } case glGenBuffers_INDEX: { INDEXED_void_GLsizei_GLuint___GENPT__ *unpacked = (INDEXED_void_GLsizei_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_GLuint___GENPT__ args = unpacked->args; printf("glGenBuffers(%d, %p);\n", args.a1, args.a2); break; } case glGenTextures_INDEX: { INDEXED_void_GLsizei_GLuint___GENPT__ *unpacked = (INDEXED_void_GLsizei_GLuint___GENPT__ *)packed; ARGS_void_GLsizei_GLuint___GENPT__ args = unpacked->args; printf("glGenTextures(%d, %p);\n", args.a1, args.a2); break; } case glGetBooleanv_INDEX: { INDEXED_void_GLenum_GLboolean___GENPT__ *unpacked = (INDEXED_void_GLenum_GLboolean___GENPT__ *)packed; ARGS_void_GLenum_GLboolean___GENPT__ args = unpacked->args; printf("glGetBooleanv(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetBufferParameteriv_INDEX: { INDEXED_void_GLenum_GLenum_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; printf("glGetBufferParameteriv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetClipPlanef_INDEX: { INDEXED_void_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetClipPlanef(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetClipPlanex_INDEX: { INDEXED_void_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetClipPlanex(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetError_INDEX: { INDEXED_GLenum *unpacked = (INDEXED_GLenum *)packed; printf("glGetError();\n"); break; } case glGetFixedv_INDEX: { INDEXED_void_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetFixedv(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetFloatv_INDEX: { INDEXED_void_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetFloatv(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetIntegerv_INDEX: { INDEXED_void_GLenum_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLint___GENPT__ args = unpacked->args; printf("glGetIntegerv(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetLightfv_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetLightfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetLightxv_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetLightxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetMaterialfv_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetMaterialfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetMaterialxv_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetMaterialxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetPointerv_INDEX: { INDEXED_void_GLenum_GLvoid___GENPT____GENPT__ *unpacked = (INDEXED_void_GLenum_GLvoid___GENPT____GENPT__ *)packed; ARGS_void_GLenum_GLvoid___GENPT____GENPT__ args = unpacked->args; printf("glGetPointerv(0x%04X, %p);\n", args.a1, args.a2); break; } case glGetString_INDEX: { INDEXED_const_GLubyte___GENPT___GLenum *unpacked = (INDEXED_const_GLubyte___GENPT___GLenum *)packed; ARGS_const_GLubyte___GENPT___GLenum args = unpacked->args; printf("glGetString(0x%04X);\n", args.a1); break; } case glGetTexEnvfv_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetTexEnvfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetTexEnviv_INDEX: { INDEXED_void_GLenum_GLenum_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; printf("glGetTexEnviv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetTexEnvxv_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetTexEnvxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetTexParameterfv_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfloat___GENPT__ args = unpacked->args; printf("glGetTexParameterfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetTexParameteriv_INDEX: { INDEXED_void_GLenum_GLenum_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLint___GENPT__ args = unpacked->args; printf("glGetTexParameteriv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glGetTexParameterxv_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_GLfixed___GENPT__ args = unpacked->args; printf("glGetTexParameterxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glHint_INDEX: { INDEXED_void_GLenum_GLenum *unpacked = (INDEXED_void_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum args = unpacked->args; printf("glHint(0x%04X, 0x%04X);\n", args.a1, args.a2); break; } case glIsBuffer_INDEX: { INDEXED_GLboolean_GLuint *unpacked = (INDEXED_GLboolean_GLuint *)packed; ARGS_GLboolean_GLuint args = unpacked->args; printf("glIsBuffer(%u);\n", args.a1); break; } case glIsEnabled_INDEX: { INDEXED_GLboolean_GLenum *unpacked = (INDEXED_GLboolean_GLenum *)packed; ARGS_GLboolean_GLenum args = unpacked->args; printf("glIsEnabled(0x%04X);\n", args.a1); break; } case glIsTexture_INDEX: { INDEXED_GLboolean_GLuint *unpacked = (INDEXED_GLboolean_GLuint *)packed; ARGS_GLboolean_GLuint args = unpacked->args; printf("glIsTexture(%u);\n", args.a1); break; } case glLightModelf_INDEX: { INDEXED_void_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLfloat args = unpacked->args; printf("glLightModelf(0x%04X, %0.2f);\n", args.a1, args.a2); break; } case glLightModelfv_INDEX: { INDEXED_void_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glLightModelfv(0x%04X, %p);\n", args.a1, args.a2); break; } case glLightModelx_INDEX: { INDEXED_void_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLfixed args = unpacked->args; printf("glLightModelx(0x%04X, %p);\n", args.a1, args.a2); break; } case glLightModelxv_INDEX: { INDEXED_void_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glLightModelxv(0x%04X, %p);\n", args.a1, args.a2); break; } case glLightf_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; printf("glLightf(0x%04X, 0x%04X, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glLightfv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glLightfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glLightx_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLenum_GLfixed args = unpacked->args; printf("glLightx(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glLightxv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glLightxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glLineWidth_INDEX: { INDEXED_void_GLfloat *unpacked = (INDEXED_void_GLfloat *)packed; ARGS_void_GLfloat args = unpacked->args; printf("glLineWidth(%0.2f);\n", args.a1); break; } case glLineWidthx_INDEX: { INDEXED_void_GLfixed *unpacked = (INDEXED_void_GLfixed *)packed; ARGS_void_GLfixed args = unpacked->args; printf("glLineWidthx(%p);\n", args.a1); break; } case glLoadIdentity_INDEX: { INDEXED_void *unpacked = (INDEXED_void *)packed; printf("glLoadIdentity();\n"); break; } case glLoadMatrixf_INDEX: { INDEXED_void_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_const_GLfloat___GENPT__ *)packed; ARGS_void_const_GLfloat___GENPT__ args = unpacked->args; printf("glLoadMatrixf(%p);\n", args.a1); break; } case glLoadMatrixx_INDEX: { INDEXED_void_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_const_GLfixed___GENPT__ *)packed; ARGS_void_const_GLfixed___GENPT__ args = unpacked->args; printf("glLoadMatrixx(%p);\n", args.a1); break; } case glLogicOp_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glLogicOp(0x%04X);\n", args.a1); break; } case glMaterialf_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; printf("glMaterialf(0x%04X, 0x%04X, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glMaterialfv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glMaterialfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glMaterialx_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLenum_GLfixed args = unpacked->args; printf("glMaterialx(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glMaterialxv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glMaterialxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glMatrixMode_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glMatrixMode(0x%04X);\n", args.a1); break; } case glMultMatrixf_INDEX: { INDEXED_void_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_const_GLfloat___GENPT__ *)packed; ARGS_void_const_GLfloat___GENPT__ args = unpacked->args; printf("glMultMatrixf(%p);\n", args.a1); break; } case glMultMatrixx_INDEX: { INDEXED_void_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_const_GLfixed___GENPT__ *)packed; ARGS_void_const_GLfixed___GENPT__ args = unpacked->args; printf("glMultMatrixx(%p);\n", args.a1); break; } case glMultiTexCoord4f_INDEX: { INDEXED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glMultiTexCoord4f(0x%04X, %0.2f, %0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3, args.a4, args.a5); break; } case glMultiTexCoord4x_INDEX: { INDEXED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glMultiTexCoord4x(0x%04X, %p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5); break; } case glNormal3f_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glNormal3f(%0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glNormal3x_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glNormal3x(%p, %p, %p);\n", args.a1, args.a2, args.a3); break; } case glNormalPointer_INDEX: { INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glNormalPointer(0x%04X, %d, %p);\n", args.a1, args.a2, args.a3); break; } case glOrthof_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glOrthof(%0.2f, %0.2f, %0.2f, %0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6); break; } case glOrthox_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glOrthox(%p, %p, %p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6); break; } case glPixelStorei_INDEX: { INDEXED_void_GLenum_GLint *unpacked = (INDEXED_void_GLenum_GLint *)packed; ARGS_void_GLenum_GLint args = unpacked->args; printf("glPixelStorei(0x%04X, %d);\n", args.a1, args.a2); break; } case glPointParameterf_INDEX: { INDEXED_void_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLfloat args = unpacked->args; printf("glPointParameterf(0x%04X, %0.2f);\n", args.a1, args.a2); break; } case glPointParameterfv_INDEX: { INDEXED_void_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glPointParameterfv(0x%04X, %p);\n", args.a1, args.a2); break; } case glPointParameterx_INDEX: { INDEXED_void_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLfixed args = unpacked->args; printf("glPointParameterx(0x%04X, %p);\n", args.a1, args.a2); break; } case glPointParameterxv_INDEX: { INDEXED_void_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glPointParameterxv(0x%04X, %p);\n", args.a1, args.a2); break; } case glPointSize_INDEX: { INDEXED_void_GLfloat *unpacked = (INDEXED_void_GLfloat *)packed; ARGS_void_GLfloat args = unpacked->args; printf("glPointSize(%0.2f);\n", args.a1); break; } case glPointSizePointerOES_INDEX: { INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glPointSizePointerOES(0x%04X, %d, %p);\n", args.a1, args.a2, args.a3); break; } case glPointSizex_INDEX: { INDEXED_void_GLfixed *unpacked = (INDEXED_void_GLfixed *)packed; ARGS_void_GLfixed args = unpacked->args; printf("glPointSizex(%p);\n", args.a1); break; } case glPolygonOffset_INDEX: { INDEXED_void_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat args = unpacked->args; printf("glPolygonOffset(%0.2f, %0.2f);\n", args.a1, args.a2); break; } case glPolygonOffsetx_INDEX: { INDEXED_void_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed args = unpacked->args; printf("glPolygonOffsetx(%p, %p);\n", args.a1, args.a2); break; } case glPopMatrix_INDEX: { INDEXED_void *unpacked = (INDEXED_void *)packed; printf("glPopMatrix();\n"); break; } case glPushMatrix_INDEX: { INDEXED_void *unpacked = (INDEXED_void *)packed; printf("glPushMatrix();\n"); break; } case glReadPixels_INDEX: { INDEXED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ args = unpacked->args; printf("glReadPixels(%d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7); break; } case glRotatef_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glRotatef(%0.2f, %0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3, args.a4); break; } case glRotatex_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glRotatex(%p, %p, %p, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glSampleCoverage_INDEX: { INDEXED_void_GLclampf_GLboolean *unpacked = (INDEXED_void_GLclampf_GLboolean *)packed; ARGS_void_GLclampf_GLboolean args = unpacked->args; printf("glSampleCoverage(%p, %d);\n", args.a1, args.a2); break; } case glSampleCoveragex_INDEX: { INDEXED_void_GLclampx_GLboolean *unpacked = (INDEXED_void_GLclampx_GLboolean *)packed; ARGS_void_GLclampx_GLboolean args = unpacked->args; printf("glSampleCoveragex(%p, %d);\n", args.a1, args.a2); break; } case glScalef_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glScalef(%0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glScalex_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glScalex(%p, %p, %p);\n", args.a1, args.a2, args.a3); break; } case glScissor_INDEX: { INDEXED_void_GLint_GLint_GLsizei_GLsizei *unpacked = (INDEXED_void_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei args = unpacked->args; printf("glScissor(%d, %d, %d, %d);\n", args.a1, args.a2, args.a3, args.a4); break; } case glShadeModel_INDEX: { INDEXED_void_GLenum *unpacked = (INDEXED_void_GLenum *)packed; ARGS_void_GLenum args = unpacked->args; printf("glShadeModel(0x%04X);\n", args.a1); break; } case glStencilFunc_INDEX: { INDEXED_void_GLenum_GLint_GLuint *unpacked = (INDEXED_void_GLenum_GLint_GLuint *)packed; ARGS_void_GLenum_GLint_GLuint args = unpacked->args; printf("glStencilFunc(0x%04X, %d, %u);\n", args.a1, args.a2, args.a3); break; } case glStencilMask_INDEX: { INDEXED_void_GLuint *unpacked = (INDEXED_void_GLuint *)packed; ARGS_void_GLuint args = unpacked->args; printf("glStencilMask(%u);\n", args.a1); break; } case glStencilOp_INDEX: { INDEXED_void_GLenum_GLenum_GLenum *unpacked = (INDEXED_void_GLenum_GLenum_GLenum *)packed; ARGS_void_GLenum_GLenum_GLenum args = unpacked->args; printf("glStencilOp(0x%04X, 0x%04X, 0x%04X);\n", args.a1, args.a2, args.a3); break; } case glTexCoordPointer_INDEX: { INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glTexCoordPointer(%d, 0x%04X, %d, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glTexEnvf_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; printf("glTexEnvf(0x%04X, 0x%04X, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glTexEnvfv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glTexEnvfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexEnvi_INDEX: { INDEXED_void_GLenum_GLenum_GLint *unpacked = (INDEXED_void_GLenum_GLenum_GLint *)packed; ARGS_void_GLenum_GLenum_GLint args = unpacked->args; printf("glTexEnvi(0x%04X, 0x%04X, %d);\n", args.a1, args.a2, args.a3); break; } case glTexEnviv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args = unpacked->args; printf("glTexEnviv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexEnvx_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLenum_GLfixed args = unpacked->args; printf("glTexEnvx(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexEnvxv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glTexEnvxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; printf("glTexImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9); break; } case glTexParameterf_INDEX: { INDEXED_void_GLenum_GLenum_GLfloat *unpacked = (INDEXED_void_GLenum_GLenum_GLfloat *)packed; ARGS_void_GLenum_GLenum_GLfloat args = unpacked->args; printf("glTexParameterf(0x%04X, 0x%04X, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glTexParameterfv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfloat___GENPT__ args = unpacked->args; printf("glTexParameterfv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexParameteri_INDEX: { INDEXED_void_GLenum_GLenum_GLint *unpacked = (INDEXED_void_GLenum_GLenum_GLint *)packed; ARGS_void_GLenum_GLenum_GLint args = unpacked->args; printf("glTexParameteri(0x%04X, 0x%04X, %d);\n", args.a1, args.a2, args.a3); break; } case glTexParameteriv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLint___GENPT__ args = unpacked->args; printf("glTexParameteriv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexParameterx_INDEX: { INDEXED_void_GLenum_GLenum_GLfixed *unpacked = (INDEXED_void_GLenum_GLenum_GLfixed *)packed; ARGS_void_GLenum_GLenum_GLfixed args = unpacked->args; printf("glTexParameterx(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexParameterxv_INDEX: { INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *unpacked = (INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ *)packed; ARGS_void_GLenum_GLenum_const_GLfixed___GENPT__ args = unpacked->args; printf("glTexParameterxv(0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3); break; } case glTexSubImage2D_INDEX: { INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ *)packed; ARGS_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ args = unpacked->args; printf("glTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", args.a1, args.a2, args.a3, args.a4, args.a5, args.a6, args.a7, args.a8, args.a9); break; } case glTranslatef_INDEX: { INDEXED_void_GLfloat_GLfloat_GLfloat *unpacked = (INDEXED_void_GLfloat_GLfloat_GLfloat *)packed; ARGS_void_GLfloat_GLfloat_GLfloat args = unpacked->args; printf("glTranslatef(%0.2f, %0.2f, %0.2f);\n", args.a1, args.a2, args.a3); break; } case glTranslatex_INDEX: { INDEXED_void_GLfixed_GLfixed_GLfixed *unpacked = (INDEXED_void_GLfixed_GLfixed_GLfixed *)packed; ARGS_void_GLfixed_GLfixed_GLfixed args = unpacked->args; printf("glTranslatex(%p, %p, %p);\n", args.a1, args.a2, args.a3); break; } case glVertexPointer_INDEX: { INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *unpacked = (INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ *)packed; ARGS_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ args = unpacked->args; printf("glVertexPointer(%d, 0x%04X, %d, %p);\n", args.a1, args.a2, args.a3, args.a4); break; } case glViewport_INDEX: { INDEXED_void_GLint_GLint_GLsizei_GLsizei *unpacked = (INDEXED_void_GLint_GLint_GLsizei_GLsizei *)packed; ARGS_void_GLint_GLint_GLsizei_GLsizei args = unpacked->args; printf("glViewport(%d, %d, %d, %d);\n", args.a1, args.a2, args.a3, args.a4); break; } } } void *mock_get(int idx) { return tack_get(&mock, idx); } void *mock_peek() { return tack_peek(&mock); } void *mock_cur() { return tack_cur(&mock); } void *mock_shift() { return tack_shift(&mock); } void *mock_slide(int func) { if (mock.pos >= mock.len) { return NULL; } indexed_call_t **stack = (indexed_call_t **)mock.data; for (int i = mock.pos; i < mock.len; i++) { if (stack[i]->func == func) { mock.pos = i + 1; return stack[i]; } } return NULL; } void mock_push(void *call) { tack_push(&mock, call); } void *mock_pop() { return tack_pop(&mock); } void gles_glActiveTexture(GLenum texture) { emit_glActiveTexture(texture); } void gles_glAlphaFunc(GLenum func, GLclampf ref) { emit_glAlphaFunc(func, ref); } void gles_glAlphaFuncx(GLenum func, GLclampx ref) { emit_glAlphaFuncx(func, ref); } void gles_glBindBuffer(GLenum target, GLuint buffer) { emit_glBindBuffer(target, buffer); } void gles_glBindTexture(GLenum target, GLuint texture) { emit_glBindTexture(target, texture); } void gles_glBlendColorOES(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { emit_glBlendColorOES(red, green, blue, alpha); } void gles_glBlendEquationOES(GLenum mode) { emit_glBlendEquationOES(mode); } void gles_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha) { emit_glBlendEquationSeparateOES(modeRGB, modeAlpha); } void gles_glBlendFunc(GLenum sfactor, GLenum dfactor) { emit_glBlendFunc(sfactor, dfactor); } void gles_glBlendFuncSeparateOES(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { emit_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); } void gles_glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) { emit_glBufferData(target, size, data, usage); } void gles_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) { emit_glBufferSubData(target, offset, size, data); } void gles_glClear(GLbitfield mask) { emit_glClear(mask); } void gles_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { emit_glClearColor(red, green, blue, alpha); } void gles_glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) { emit_glClearColorx(red, green, blue, alpha); } void gles_glClearDepthf(GLclampf depth) { emit_glClearDepthf(depth); } void gles_glClearDepthx(GLclampx depth) { emit_glClearDepthx(depth); } void gles_glClearStencil(GLint s) { emit_glClearStencil(s); } void gles_glClientActiveTexture(GLenum texture) { emit_glClientActiveTexture(texture); } void gles_glClipPlanef(GLenum plane, const GLfloat * equation) { emit_glClipPlanef(plane, equation); } void gles_glClipPlanex(GLenum plane, const GLfixed * equation) { emit_glClipPlanex(plane, equation); } void gles_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { emit_glColor4f(red, green, blue, alpha); } void gles_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) { emit_glColor4ub(red, green, blue, alpha); } void gles_glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { emit_glColor4x(red, green, blue, alpha); } void gles_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { emit_glColorMask(red, green, blue, alpha); } void gles_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { emit_glColorPointer(size, type, stride, pointer); } void gles_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) { emit_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); } void gles_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) { emit_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); } void gles_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { emit_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); } void gles_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { emit_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); } void gles_glCullFace(GLenum mode) { emit_glCullFace(mode); } void gles_glDeleteBuffers(GLsizei n, const GLuint * buffers) { emit_glDeleteBuffers(n, buffers); } void gles_glDeleteTextures(GLsizei n, const GLuint * textures) { emit_glDeleteTextures(n, textures); } void gles_glDepthFunc(GLenum func) { emit_glDepthFunc(func); } void gles_glDepthMask(GLboolean flag) { emit_glDepthMask(flag); } void gles_glDepthRangef(GLclampf near, GLclampf far) { emit_glDepthRangef(near, far); } void gles_glDepthRangex(GLclampx near, GLclampx far) { emit_glDepthRangex(near, far); } void gles_glDisable(GLenum cap) { emit_glDisable(cap); } void gles_glDisableClientState(GLenum array) { emit_glDisableClientState(array); } void gles_glDrawArrays(GLenum mode, GLint first, GLsizei count) { emit_glDrawArrays(mode, first, count); } void gles_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) { emit_glDrawElements(mode, count, type, indices); } void gles_glEnable(GLenum cap) { emit_glEnable(cap); } void gles_glEnableClientState(GLenum array) { emit_glEnableClientState(array); } void gles_glFinish() { emit_glFinish(); } void gles_glFlush() { emit_glFlush(); } void gles_glFogf(GLenum pname, GLfloat param) { emit_glFogf(pname, param); } void gles_glFogfv(GLenum pname, const GLfloat * params) { emit_glFogfv(pname, params); } void gles_glFogx(GLenum pname, GLfixed param) { emit_glFogx(pname, param); } void gles_glFogxv(GLenum pname, const GLfixed * params) { emit_glFogxv(pname, params); } void gles_glFrontFace(GLenum mode) { emit_glFrontFace(mode); } void gles_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { emit_glFrustumf(left, right, bottom, top, near, far); } void gles_glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far) { emit_glFrustumx(left, right, bottom, top, near, far); } void gles_glGenBuffers(GLsizei n, GLuint * buffers) { emit_glGenBuffers(n, buffers); } void gles_glGenTextures(GLsizei n, GLuint * textures) { emit_glGenTextures(n, textures); } void gles_glGetBooleanv(GLenum pname, GLboolean * params) { emit_glGetBooleanv(pname, params); } void gles_glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) { emit_glGetBufferParameteriv(target, pname, params); } void gles_glGetClipPlanef(GLenum plane, GLfloat * equation) { emit_glGetClipPlanef(plane, equation); } void gles_glGetClipPlanex(GLenum plane, GLfixed * equation) { emit_glGetClipPlanex(plane, equation); } GLenum gles_glGetError() { emit_glGetError(); return (GLenum)0; } void gles_glGetFixedv(GLenum pname, GLfixed * params) { emit_glGetFixedv(pname, params); } void gles_glGetFloatv(GLenum pname, GLfloat * params) { emit_glGetFloatv(pname, params); } void gles_glGetIntegerv(GLenum pname, GLint * params) { emit_glGetIntegerv(pname, params); } void gles_glGetLightfv(GLenum light, GLenum pname, GLfloat * params) { emit_glGetLightfv(light, pname, params); } void gles_glGetLightxv(GLenum light, GLenum pname, GLfixed * params) { emit_glGetLightxv(light, pname, params); } void gles_glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) { emit_glGetMaterialfv(face, pname, params); } void gles_glGetMaterialxv(GLenum face, GLenum pname, GLfixed * params) { emit_glGetMaterialxv(face, pname, params); } void gles_glGetPointerv(GLenum pname, GLvoid ** params) { emit_glGetPointerv(pname, params); } const GLubyte * gles_glGetString(GLenum name) { emit_glGetString(name); return (const GLubyte *)0; } void gles_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) { emit_glGetTexEnvfv(target, pname, params); } void gles_glGetTexEnviv(GLenum target, GLenum pname, GLint * params) { emit_glGetTexEnviv(target, pname, params); } void gles_glGetTexEnvxv(GLenum target, GLenum pname, GLfixed * params) { emit_glGetTexEnvxv(target, pname, params); } void gles_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) { emit_glGetTexParameterfv(target, pname, params); } void gles_glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) { emit_glGetTexParameteriv(target, pname, params); } void gles_glGetTexParameterxv(GLenum target, GLenum pname, GLfixed * params) { emit_glGetTexParameterxv(target, pname, params); } void gles_glHint(GLenum target, GLenum mode) { emit_glHint(target, mode); } GLboolean gles_glIsBuffer(GLuint buffer) { emit_glIsBuffer(buffer); return (GLboolean)0; } GLboolean gles_glIsEnabled(GLenum cap) { emit_glIsEnabled(cap); return (GLboolean)0; } GLboolean gles_glIsTexture(GLuint texture) { emit_glIsTexture(texture); return (GLboolean)0; } void gles_glLightModelf(GLenum pname, GLfloat param) { emit_glLightModelf(pname, param); } void gles_glLightModelfv(GLenum pname, const GLfloat * params) { emit_glLightModelfv(pname, params); } void gles_glLightModelx(GLenum pname, GLfixed param) { emit_glLightModelx(pname, param); } void gles_glLightModelxv(GLenum pname, const GLfixed * params) { emit_glLightModelxv(pname, params); } void gles_glLightf(GLenum light, GLenum pname, GLfloat param) { emit_glLightf(light, pname, param); } void gles_glLightfv(GLenum light, GLenum pname, const GLfloat * params) { emit_glLightfv(light, pname, params); } void gles_glLightx(GLenum light, GLenum pname, GLfixed param) { emit_glLightx(light, pname, param); } void gles_glLightxv(GLenum light, GLenum pname, const GLfixed * params) { emit_glLightxv(light, pname, params); } void gles_glLineWidth(GLfloat width) { emit_glLineWidth(width); } void gles_glLineWidthx(GLfixed width) { emit_glLineWidthx(width); } void gles_glLoadIdentity() { emit_glLoadIdentity(); } void gles_glLoadMatrixf(const GLfloat * m) { emit_glLoadMatrixf(m); } void gles_glLoadMatrixx(const GLfixed * m) { emit_glLoadMatrixx(m); } void gles_glLogicOp(GLenum opcode) { emit_glLogicOp(opcode); } void gles_glMaterialf(GLenum face, GLenum pname, GLfloat param) { emit_glMaterialf(face, pname, param); } void gles_glMaterialfv(GLenum face, GLenum pname, const GLfloat * params) { emit_glMaterialfv(face, pname, params); } void gles_glMaterialx(GLenum face, GLenum pname, GLfixed param) { emit_glMaterialx(face, pname, param); } void gles_glMaterialxv(GLenum face, GLenum pname, const GLfixed * params) { emit_glMaterialxv(face, pname, params); } void gles_glMatrixMode(GLenum mode) { emit_glMatrixMode(mode); } void gles_glMultMatrixf(const GLfloat * m) { emit_glMultMatrixf(m); } void gles_glMultMatrixx(const GLfixed * m) { emit_glMultMatrixx(m); } void gles_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { emit_glMultiTexCoord4f(target, s, t, r, q); } void gles_glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { emit_glMultiTexCoord4x(target, s, t, r, q); } void gles_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) { emit_glNormal3f(nx, ny, nz); } void gles_glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz) { emit_glNormal3x(nx, ny, nz); } void gles_glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer) { emit_glNormalPointer(type, stride, pointer); } void gles_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far) { emit_glOrthof(left, right, bottom, top, near, far); } void gles_glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far) { emit_glOrthox(left, right, bottom, top, near, far); } void gles_glPixelStorei(GLenum pname, GLint param) { emit_glPixelStorei(pname, param); } void gles_glPointParameterf(GLenum pname, GLfloat param) { emit_glPointParameterf(pname, param); } void gles_glPointParameterfv(GLenum pname, const GLfloat * params) { emit_glPointParameterfv(pname, params); } void gles_glPointParameterx(GLenum pname, GLfixed param) { emit_glPointParameterx(pname, param); } void gles_glPointParameterxv(GLenum pname, const GLfixed * params) { emit_glPointParameterxv(pname, params); } void gles_glPointSize(GLfloat size) { emit_glPointSize(size); } void gles_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid * pointer) { emit_glPointSizePointerOES(type, stride, pointer); } void gles_glPointSizex(GLfixed size) { emit_glPointSizex(size); } void gles_glPolygonOffset(GLfloat factor, GLfloat units) { emit_glPolygonOffset(factor, units); } void gles_glPolygonOffsetx(GLfixed factor, GLfixed units) { emit_glPolygonOffsetx(factor, units); } void gles_glPopMatrix() { emit_glPopMatrix(); } void gles_glPushMatrix() { emit_glPushMatrix(); } void gles_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) { emit_glReadPixels(x, y, width, height, format, type, pixels); } void gles_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { emit_glRotatef(angle, x, y, z); } void gles_glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) { emit_glRotatex(angle, x, y, z); } void gles_glSampleCoverage(GLclampf value, GLboolean invert) { emit_glSampleCoverage(value, invert); } void gles_glSampleCoveragex(GLclampx value, GLboolean invert) { emit_glSampleCoveragex(value, invert); } void gles_glScalef(GLfloat x, GLfloat y, GLfloat z) { emit_glScalef(x, y, z); } void gles_glScalex(GLfixed x, GLfixed y, GLfixed z) { emit_glScalex(x, y, z); } void gles_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { emit_glScissor(x, y, width, height); } void gles_glShadeModel(GLenum mode) { emit_glShadeModel(mode); } void gles_glStencilFunc(GLenum func, GLint ref, GLuint mask) { emit_glStencilFunc(func, ref, mask); } void gles_glStencilMask(GLuint mask) { emit_glStencilMask(mask); } void gles_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { emit_glStencilOp(fail, zfail, zpass); } void gles_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { emit_glTexCoordPointer(size, type, stride, pointer); } void gles_glTexEnvf(GLenum target, GLenum pname, GLfloat param) { emit_glTexEnvf(target, pname, param); } void gles_glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params) { emit_glTexEnvfv(target, pname, params); } void gles_glTexEnvi(GLenum target, GLenum pname, GLint param) { emit_glTexEnvi(target, pname, param); } void gles_glTexEnviv(GLenum target, GLenum pname, const GLint * params) { emit_glTexEnviv(target, pname, params); } void gles_glTexEnvx(GLenum target, GLenum pname, GLfixed param) { emit_glTexEnvx(target, pname, param); } void gles_glTexEnvxv(GLenum target, GLenum pname, const GLfixed * params) { emit_glTexEnvxv(target, pname, params); } void gles_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) { emit_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); } void gles_glTexParameterf(GLenum target, GLenum pname, GLfloat param) { emit_glTexParameterf(target, pname, param); } void gles_glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) { emit_glTexParameterfv(target, pname, params); } void gles_glTexParameteri(GLenum target, GLenum pname, GLint param) { emit_glTexParameteri(target, pname, param); } void gles_glTexParameteriv(GLenum target, GLenum pname, const GLint * params) { emit_glTexParameteriv(target, pname, params); } void gles_glTexParameterx(GLenum target, GLenum pname, GLfixed param) { emit_glTexParameterx(target, pname, param); } void gles_glTexParameterxv(GLenum target, GLenum pname, const GLfixed * params) { emit_glTexParameterxv(target, pname, params); } void gles_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) { emit_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); } void gles_glTranslatef(GLfloat x, GLfloat y, GLfloat z) { emit_glTranslatef(x, y, z); } void gles_glTranslatex(GLfixed x, GLfixed y, GLfixed z) { emit_glTranslatex(x, y, z); } void gles_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) { emit_glVertexPointer(size, type, stride, pointer); } void gles_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { emit_glViewport(x, y, width, height); } |
Added jni/glshim/test/util/mock.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 | #ifndef USE_ES2 #ifdef __cplusplus extern "C" { #endif #include "gl_str.h" #include "wrap/gles.h" #ifndef MOCK_H #define MOCK_H const char *mock_name(int func); void *mock_cur(); void *mock_get(int idx); void *mock_peek(); void *mock_shift(); void *mock_slide(int func); void mock_print(const indexed_call_t *packed); void mock_push(void *call); static int verbose_test = 0; static int failed_test = 0; #define verbose { verbose_test = 1; } #define mock_warningf(...) { printf("WARNING: "), printf(__VA_ARGS__); } #define mock_errorf(...) { printf("ERROR: "); printf(__VA_ARGS__); failed_test = 1; } #define mock_assert(cond, ...) { if (!(cond)) { mock_errorf(__VA_ARGS__); }} #define assert(cond) mock_assert(cond, "%s\n", #cond) #define mock_return { \ indexed_call_t *call = NULL; \ while ((call = mock_shift()) != NULL) { \ mock_warningf("extra "); \ mock_print(call); \ } \ if (state.error) { \ mock_warningf("Ended with GL error flag: %s\n", gl_str(state.error)); \ } \ return failed_test; \ } #define pack_glActiveTexture(texture) ({ \ glActiveTexture_INDEXED *packed_data = malloc(sizeof(glActiveTexture_INDEXED)); \ packed_data->func = glActiveTexture_INDEX; \ packed_data->args.a1 = (GLenum)texture; \ packed_data; \ }) #define emit_glActiveTexture(texture) { \ mock_push(pack_glActiveTexture(texture)); \ } #define test_glActiveTexture(texture) { \ glActiveTexture_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glActiveTexture missing (no calls left)\n"); \ } else if (packed->func != glActiveTexture_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glActiveTexture_INDEX); \ if (! packed) { \ mock_errorf("glActiveTexture missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glActiveTexture:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != texture) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glActiveTexture(0x%04X);\n", texture); \ } \ } \ } #define pack_glAlphaFunc(func, ref) ({ \ glAlphaFunc_INDEXED *packed_data = malloc(sizeof(glAlphaFunc_INDEXED)); \ packed_data->func = glAlphaFunc_INDEX; \ packed_data->args.a1 = (GLenum)func; \ packed_data->args.a2 = (GLclampf)ref; \ packed_data; \ }) #define emit_glAlphaFunc(func, ref) { \ mock_push(pack_glAlphaFunc(func, ref)); \ } #define test_glAlphaFunc(func, ref) { \ glAlphaFunc_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glAlphaFunc missing (no calls left)\n"); \ } else if (packed->func != glAlphaFunc_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glAlphaFunc_INDEX); \ if (! packed) { \ mock_errorf("glAlphaFunc missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glAlphaFunc:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != func) { \ match = 0; \ } \ if (packed->args.a2 != ref) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glAlphaFunc(0x%04X, %p);\n", func, ref); \ } \ } \ } #define pack_glAlphaFuncx(func, ref) ({ \ glAlphaFuncx_INDEXED *packed_data = malloc(sizeof(glAlphaFuncx_INDEXED)); \ packed_data->func = glAlphaFuncx_INDEX; \ packed_data->args.a1 = (GLenum)func; \ packed_data->args.a2 = (GLclampx)ref; \ packed_data; \ }) #define emit_glAlphaFuncx(func, ref) { \ mock_push(pack_glAlphaFuncx(func, ref)); \ } #define test_glAlphaFuncx(func, ref) { \ glAlphaFuncx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glAlphaFuncx missing (no calls left)\n"); \ } else if (packed->func != glAlphaFuncx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glAlphaFuncx_INDEX); \ if (! packed) { \ mock_errorf("glAlphaFuncx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glAlphaFuncx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != func) { \ match = 0; \ } \ if (packed->args.a2 != ref) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glAlphaFuncx(0x%04X, %p);\n", func, ref); \ } \ } \ } #define pack_glBindBuffer(target, buffer) ({ \ glBindBuffer_INDEXED *packed_data = malloc(sizeof(glBindBuffer_INDEXED)); \ packed_data->func = glBindBuffer_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)buffer; \ packed_data; \ }) #define emit_glBindBuffer(target, buffer) { \ mock_push(pack_glBindBuffer(target, buffer)); \ } #define test_glBindBuffer(target, buffer) { \ glBindBuffer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBindBuffer missing (no calls left)\n"); \ } else if (packed->func != glBindBuffer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBindBuffer_INDEX); \ if (! packed) { \ mock_errorf("glBindBuffer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBindBuffer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != buffer) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBindBuffer(0x%04X, %u);\n", target, buffer); \ } \ } \ } #define pack_glBindTexture(target, texture) ({ \ glBindTexture_INDEXED *packed_data = malloc(sizeof(glBindTexture_INDEXED)); \ packed_data->func = glBindTexture_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLuint)texture; \ packed_data; \ }) #define emit_glBindTexture(target, texture) { \ mock_push(pack_glBindTexture(target, texture)); \ } #define test_glBindTexture(target, texture) { \ glBindTexture_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBindTexture missing (no calls left)\n"); \ } else if (packed->func != glBindTexture_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBindTexture_INDEX); \ if (! packed) { \ mock_errorf("glBindTexture missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBindTexture:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != texture) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBindTexture(0x%04X, %u);\n", target, texture); \ } \ } \ } #define pack_glBlendColorOES(red, green, blue, alpha) ({ \ glBlendColorOES_INDEXED *packed_data = malloc(sizeof(glBlendColorOES_INDEXED)); \ packed_data->func = glBlendColorOES_INDEX; \ packed_data->args.a1 = (GLclampf)red; \ packed_data->args.a2 = (GLclampf)green; \ packed_data->args.a3 = (GLclampf)blue; \ packed_data->args.a4 = (GLclampf)alpha; \ packed_data; \ }) #define emit_glBlendColorOES(red, green, blue, alpha) { \ mock_push(pack_glBlendColorOES(red, green, blue, alpha)); \ } #define test_glBlendColorOES(red, green, blue, alpha) { \ glBlendColorOES_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBlendColorOES missing (no calls left)\n"); \ } else if (packed->func != glBlendColorOES_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBlendColorOES_INDEX); \ if (! packed) { \ mock_errorf("glBlendColorOES missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBlendColorOES:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBlendColorOES(%p, %p, %p, %p);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glBlendEquationOES(mode) ({ \ glBlendEquationOES_INDEXED *packed_data = malloc(sizeof(glBlendEquationOES_INDEXED)); \ packed_data->func = glBlendEquationOES_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data; \ }) #define emit_glBlendEquationOES(mode) { \ mock_push(pack_glBlendEquationOES(mode)); \ } #define test_glBlendEquationOES(mode) { \ glBlendEquationOES_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBlendEquationOES missing (no calls left)\n"); \ } else if (packed->func != glBlendEquationOES_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBlendEquationOES_INDEX); \ if (! packed) { \ mock_errorf("glBlendEquationOES missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBlendEquationOES:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBlendEquationOES(0x%04X);\n", mode); \ } \ } \ } #define pack_glBlendEquationSeparateOES(modeRGB, modeAlpha) ({ \ glBlendEquationSeparateOES_INDEXED *packed_data = malloc(sizeof(glBlendEquationSeparateOES_INDEXED)); \ packed_data->func = glBlendEquationSeparateOES_INDEX; \ packed_data->args.a1 = (GLenum)modeRGB; \ packed_data->args.a2 = (GLenum)modeAlpha; \ packed_data; \ }) #define emit_glBlendEquationSeparateOES(modeRGB, modeAlpha) { \ mock_push(pack_glBlendEquationSeparateOES(modeRGB, modeAlpha)); \ } #define test_glBlendEquationSeparateOES(modeRGB, modeAlpha) { \ glBlendEquationSeparateOES_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBlendEquationSeparateOES missing (no calls left)\n"); \ } else if (packed->func != glBlendEquationSeparateOES_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBlendEquationSeparateOES_INDEX); \ if (! packed) { \ mock_errorf("glBlendEquationSeparateOES missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBlendEquationSeparateOES:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != modeRGB) { \ match = 0; \ } \ if (packed->args.a2 != modeAlpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBlendEquationSeparateOES(0x%04X, 0x%04X);\n", modeRGB, modeAlpha); \ } \ } \ } #define pack_glBlendFunc(sfactor, dfactor) ({ \ glBlendFunc_INDEXED *packed_data = malloc(sizeof(glBlendFunc_INDEXED)); \ packed_data->func = glBlendFunc_INDEX; \ packed_data->args.a1 = (GLenum)sfactor; \ packed_data->args.a2 = (GLenum)dfactor; \ packed_data; \ }) #define emit_glBlendFunc(sfactor, dfactor) { \ mock_push(pack_glBlendFunc(sfactor, dfactor)); \ } #define test_glBlendFunc(sfactor, dfactor) { \ glBlendFunc_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBlendFunc missing (no calls left)\n"); \ } else if (packed->func != glBlendFunc_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBlendFunc_INDEX); \ if (! packed) { \ mock_errorf("glBlendFunc missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBlendFunc:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != sfactor) { \ match = 0; \ } \ if (packed->args.a2 != dfactor) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBlendFunc(0x%04X, 0x%04X);\n", sfactor, dfactor); \ } \ } \ } #define pack_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) ({ \ glBlendFuncSeparateOES_INDEXED *packed_data = malloc(sizeof(glBlendFuncSeparateOES_INDEXED)); \ packed_data->func = glBlendFuncSeparateOES_INDEX; \ packed_data->args.a1 = (GLenum)sfactorRGB; \ packed_data->args.a2 = (GLenum)dfactorRGB; \ packed_data->args.a3 = (GLenum)sfactorAlpha; \ packed_data->args.a4 = (GLenum)dfactorAlpha; \ packed_data; \ }) #define emit_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) { \ mock_push(pack_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)); \ } #define test_glBlendFuncSeparateOES(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) { \ glBlendFuncSeparateOES_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBlendFuncSeparateOES missing (no calls left)\n"); \ } else if (packed->func != glBlendFuncSeparateOES_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBlendFuncSeparateOES_INDEX); \ if (! packed) { \ mock_errorf("glBlendFuncSeparateOES missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBlendFuncSeparateOES:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != sfactorRGB) { \ match = 0; \ } \ if (packed->args.a2 != dfactorRGB) { \ match = 0; \ } \ if (packed->args.a3 != sfactorAlpha) { \ match = 0; \ } \ if (packed->args.a4 != dfactorAlpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBlendFuncSeparateOES(0x%04X, 0x%04X, 0x%04X, 0x%04X);\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); \ } \ } \ } #define pack_glBufferData(target, size, data, usage) ({ \ glBufferData_INDEXED *packed_data = malloc(sizeof(glBufferData_INDEXED)); \ packed_data->func = glBufferData_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLsizeiptr)size; \ packed_data->args.a3 = (GLvoid *)data; \ packed_data->args.a4 = (GLenum)usage; \ packed_data; \ }) #define emit_glBufferData(target, size, data, usage) { \ mock_push(pack_glBufferData(target, size, data, usage)); \ } #define test_glBufferData(target, size, data, usage) { \ glBufferData_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBufferData missing (no calls left)\n"); \ } else if (packed->func != glBufferData_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBufferData_INDEX); \ if (! packed) { \ mock_errorf("glBufferData missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBufferData:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != size) { \ match = 0; \ } \ void *a = packed->args.a3, *b = data; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(data)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (packed->args.a4 != usage) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBufferData(0x%04X, %d, %p, 0x%04X);\n", target, size, data, usage); \ } \ } \ } #define pack_glBufferSubData(target, offset, size, data) ({ \ glBufferSubData_INDEXED *packed_data = malloc(sizeof(glBufferSubData_INDEXED)); \ packed_data->func = glBufferSubData_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLintptr)offset; \ packed_data->args.a3 = (GLsizeiptr)size; \ packed_data->args.a4 = (GLvoid *)data; \ packed_data; \ }) #define emit_glBufferSubData(target, offset, size, data) { \ mock_push(pack_glBufferSubData(target, offset, size, data)); \ } #define test_glBufferSubData(target, offset, size, data) { \ glBufferSubData_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glBufferSubData missing (no calls left)\n"); \ } else if (packed->func != glBufferSubData_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glBufferSubData_INDEX); \ if (! packed) { \ mock_errorf("glBufferSubData missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glBufferSubData:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != offset) { \ match = 0; \ } \ if (packed->args.a3 != size) { \ match = 0; \ } \ void *a = packed->args.a4, *b = data; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(data)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glBufferSubData(0x%04X, %d, %d, %p);\n", target, offset, size, data); \ } \ } \ } #define pack_glClear(mask) ({ \ glClear_INDEXED *packed_data = malloc(sizeof(glClear_INDEXED)); \ packed_data->func = glClear_INDEX; \ packed_data->args.a1 = (GLbitfield)mask; \ packed_data; \ }) #define emit_glClear(mask) { \ mock_push(pack_glClear(mask)); \ } #define test_glClear(mask) { \ glClear_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClear missing (no calls left)\n"); \ } else if (packed->func != glClear_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClear_INDEX); \ if (! packed) { \ mock_errorf("glClear missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClear:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mask) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClear(%d);\n", mask); \ } \ } \ } #define pack_glClearColor(red, green, blue, alpha) ({ \ glClearColor_INDEXED *packed_data = malloc(sizeof(glClearColor_INDEXED)); \ packed_data->func = glClearColor_INDEX; \ packed_data->args.a1 = (GLclampf)red; \ packed_data->args.a2 = (GLclampf)green; \ packed_data->args.a3 = (GLclampf)blue; \ packed_data->args.a4 = (GLclampf)alpha; \ packed_data; \ }) #define emit_glClearColor(red, green, blue, alpha) { \ mock_push(pack_glClearColor(red, green, blue, alpha)); \ } #define test_glClearColor(red, green, blue, alpha) { \ glClearColor_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClearColor missing (no calls left)\n"); \ } else if (packed->func != glClearColor_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClearColor_INDEX); \ if (! packed) { \ mock_errorf("glClearColor missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClearColor:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClearColor(%p, %p, %p, %p);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glClearColorx(red, green, blue, alpha) ({ \ glClearColorx_INDEXED *packed_data = malloc(sizeof(glClearColorx_INDEXED)); \ packed_data->func = glClearColorx_INDEX; \ packed_data->args.a1 = (GLclampx)red; \ packed_data->args.a2 = (GLclampx)green; \ packed_data->args.a3 = (GLclampx)blue; \ packed_data->args.a4 = (GLclampx)alpha; \ packed_data; \ }) #define emit_glClearColorx(red, green, blue, alpha) { \ mock_push(pack_glClearColorx(red, green, blue, alpha)); \ } #define test_glClearColorx(red, green, blue, alpha) { \ glClearColorx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClearColorx missing (no calls left)\n"); \ } else if (packed->func != glClearColorx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClearColorx_INDEX); \ if (! packed) { \ mock_errorf("glClearColorx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClearColorx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClearColorx(%p, %p, %p, %p);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glClearDepthf(depth) ({ \ glClearDepthf_INDEXED *packed_data = malloc(sizeof(glClearDepthf_INDEXED)); \ packed_data->func = glClearDepthf_INDEX; \ packed_data->args.a1 = (GLclampf)depth; \ packed_data; \ }) #define emit_glClearDepthf(depth) { \ mock_push(pack_glClearDepthf(depth)); \ } #define test_glClearDepthf(depth) { \ glClearDepthf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClearDepthf missing (no calls left)\n"); \ } else if (packed->func != glClearDepthf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClearDepthf_INDEX); \ if (! packed) { \ mock_errorf("glClearDepthf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClearDepthf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != depth) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClearDepthf(%p);\n", depth); \ } \ } \ } #define pack_glClearDepthx(depth) ({ \ glClearDepthx_INDEXED *packed_data = malloc(sizeof(glClearDepthx_INDEXED)); \ packed_data->func = glClearDepthx_INDEX; \ packed_data->args.a1 = (GLclampx)depth; \ packed_data; \ }) #define emit_glClearDepthx(depth) { \ mock_push(pack_glClearDepthx(depth)); \ } #define test_glClearDepthx(depth) { \ glClearDepthx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClearDepthx missing (no calls left)\n"); \ } else if (packed->func != glClearDepthx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClearDepthx_INDEX); \ if (! packed) { \ mock_errorf("glClearDepthx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClearDepthx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != depth) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClearDepthx(%p);\n", depth); \ } \ } \ } #define pack_glClearStencil(s) ({ \ glClearStencil_INDEXED *packed_data = malloc(sizeof(glClearStencil_INDEXED)); \ packed_data->func = glClearStencil_INDEX; \ packed_data->args.a1 = (GLint)s; \ packed_data; \ }) #define emit_glClearStencil(s) { \ mock_push(pack_glClearStencil(s)); \ } #define test_glClearStencil(s) { \ glClearStencil_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClearStencil missing (no calls left)\n"); \ } else if (packed->func != glClearStencil_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClearStencil_INDEX); \ if (! packed) { \ mock_errorf("glClearStencil missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClearStencil:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != s) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClearStencil(%d);\n", s); \ } \ } \ } #define pack_glClientActiveTexture(texture) ({ \ glClientActiveTexture_INDEXED *packed_data = malloc(sizeof(glClientActiveTexture_INDEXED)); \ packed_data->func = glClientActiveTexture_INDEX; \ packed_data->args.a1 = (GLenum)texture; \ packed_data; \ }) #define emit_glClientActiveTexture(texture) { \ mock_push(pack_glClientActiveTexture(texture)); \ } #define test_glClientActiveTexture(texture) { \ glClientActiveTexture_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClientActiveTexture missing (no calls left)\n"); \ } else if (packed->func != glClientActiveTexture_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClientActiveTexture_INDEX); \ if (! packed) { \ mock_errorf("glClientActiveTexture missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClientActiveTexture:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != texture) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClientActiveTexture(0x%04X);\n", texture); \ } \ } \ } #define pack_glClipPlanef(plane, equation) ({ \ glClipPlanef_INDEXED *packed_data = malloc(sizeof(glClipPlanef_INDEXED)); \ packed_data->func = glClipPlanef_INDEX; \ packed_data->args.a1 = (GLenum)plane; \ packed_data->args.a2 = (GLfloat *)equation; \ packed_data; \ }) #define emit_glClipPlanef(plane, equation) { \ mock_push(pack_glClipPlanef(plane, equation)); \ } #define test_glClipPlanef(plane, equation) { \ glClipPlanef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClipPlanef missing (no calls left)\n"); \ } else if (packed->func != glClipPlanef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClipPlanef_INDEX); \ if (! packed) { \ mock_errorf("glClipPlanef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClipPlanef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != plane) { \ match = 0; \ } \ void *a = packed->args.a2, *b = equation; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(equation)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClipPlanef(0x%04X, %p);\n", plane, equation); \ } \ } \ } #define pack_glClipPlanex(plane, equation) ({ \ glClipPlanex_INDEXED *packed_data = malloc(sizeof(glClipPlanex_INDEXED)); \ packed_data->func = glClipPlanex_INDEX; \ packed_data->args.a1 = (GLenum)plane; \ packed_data->args.a2 = (GLfixed *)equation; \ packed_data; \ }) #define emit_glClipPlanex(plane, equation) { \ mock_push(pack_glClipPlanex(plane, equation)); \ } #define test_glClipPlanex(plane, equation) { \ glClipPlanex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glClipPlanex missing (no calls left)\n"); \ } else if (packed->func != glClipPlanex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glClipPlanex_INDEX); \ if (! packed) { \ mock_errorf("glClipPlanex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glClipPlanex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != plane) { \ match = 0; \ } \ void *a = packed->args.a2, *b = equation; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(equation)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glClipPlanex(0x%04X, %p);\n", plane, equation); \ } \ } \ } #define pack_glColor4f(red, green, blue, alpha) ({ \ glColor4f_INDEXED *packed_data = malloc(sizeof(glColor4f_INDEXED)); \ packed_data->func = glColor4f_INDEX; \ packed_data->args.a1 = (GLfloat)red; \ packed_data->args.a2 = (GLfloat)green; \ packed_data->args.a3 = (GLfloat)blue; \ packed_data->args.a4 = (GLfloat)alpha; \ packed_data; \ }) #define emit_glColor4f(red, green, blue, alpha) { \ mock_push(pack_glColor4f(red, green, blue, alpha)); \ } #define test_glColor4f(red, green, blue, alpha) { \ glColor4f_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glColor4f missing (no calls left)\n"); \ } else if (packed->func != glColor4f_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glColor4f_INDEX); \ if (! packed) { \ mock_errorf("glColor4f missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glColor4f:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - red >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - green >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - blue >= 0.01) { \ match = 0; \ } \ if (packed->args.a4 - alpha >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glColor4f(%0.2f, %0.2f, %0.2f, %0.2f);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glColor4ub(red, green, blue, alpha) ({ \ glColor4ub_INDEXED *packed_data = malloc(sizeof(glColor4ub_INDEXED)); \ packed_data->func = glColor4ub_INDEX; \ packed_data->args.a1 = (GLubyte)red; \ packed_data->args.a2 = (GLubyte)green; \ packed_data->args.a3 = (GLubyte)blue; \ packed_data->args.a4 = (GLubyte)alpha; \ packed_data; \ }) #define emit_glColor4ub(red, green, blue, alpha) { \ mock_push(pack_glColor4ub(red, green, blue, alpha)); \ } #define test_glColor4ub(red, green, blue, alpha) { \ glColor4ub_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glColor4ub missing (no calls left)\n"); \ } else if (packed->func != glColor4ub_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glColor4ub_INDEX); \ if (! packed) { \ mock_errorf("glColor4ub missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glColor4ub:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glColor4ub(%c, %c, %c, %c);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glColor4x(red, green, blue, alpha) ({ \ glColor4x_INDEXED *packed_data = malloc(sizeof(glColor4x_INDEXED)); \ packed_data->func = glColor4x_INDEX; \ packed_data->args.a1 = (GLfixed)red; \ packed_data->args.a2 = (GLfixed)green; \ packed_data->args.a3 = (GLfixed)blue; \ packed_data->args.a4 = (GLfixed)alpha; \ packed_data; \ }) #define emit_glColor4x(red, green, blue, alpha) { \ mock_push(pack_glColor4x(red, green, blue, alpha)); \ } #define test_glColor4x(red, green, blue, alpha) { \ glColor4x_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glColor4x missing (no calls left)\n"); \ } else if (packed->func != glColor4x_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glColor4x_INDEX); \ if (! packed) { \ mock_errorf("glColor4x missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glColor4x:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glColor4x(%p, %p, %p, %p);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glColorMask(red, green, blue, alpha) ({ \ glColorMask_INDEXED *packed_data = malloc(sizeof(glColorMask_INDEXED)); \ packed_data->func = glColorMask_INDEX; \ packed_data->args.a1 = (GLboolean)red; \ packed_data->args.a2 = (GLboolean)green; \ packed_data->args.a3 = (GLboolean)blue; \ packed_data->args.a4 = (GLboolean)alpha; \ packed_data; \ }) #define emit_glColorMask(red, green, blue, alpha) { \ mock_push(pack_glColorMask(red, green, blue, alpha)); \ } #define test_glColorMask(red, green, blue, alpha) { \ glColorMask_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glColorMask missing (no calls left)\n"); \ } else if (packed->func != glColorMask_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glColorMask_INDEX); \ if (! packed) { \ mock_errorf("glColorMask missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glColorMask:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != red) { \ match = 0; \ } \ if (packed->args.a2 != green) { \ match = 0; \ } \ if (packed->args.a3 != blue) { \ match = 0; \ } \ if (packed->args.a4 != alpha) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glColorMask(%d, %d, %d, %d);\n", red, green, blue, alpha); \ } \ } \ } #define pack_glColorPointer(size, type, stride, pointer) ({ \ glColorPointer_INDEXED *packed_data = malloc(sizeof(glColorPointer_INDEXED)); \ packed_data->func = glColorPointer_INDEX; \ packed_data->args.a1 = (GLint)size; \ packed_data->args.a2 = (GLenum)type; \ packed_data->args.a3 = (GLsizei)stride; \ packed_data->args.a4 = (GLvoid *)pointer; \ packed_data; \ }) #define emit_glColorPointer(size, type, stride, pointer) { \ mock_push(pack_glColorPointer(size, type, stride, pointer)); \ } #define test_glColorPointer(size, type, stride, pointer) { \ glColorPointer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glColorPointer missing (no calls left)\n"); \ } else if (packed->func != glColorPointer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glColorPointer_INDEX); \ if (! packed) { \ mock_errorf("glColorPointer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glColorPointer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != size) { \ match = 0; \ } \ if (packed->args.a2 != type) { \ match = 0; \ } \ if (packed->args.a3 != stride) { \ match = 0; \ } \ void *a = packed->args.a4, *b = pointer; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pointer)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glColorPointer(%d, 0x%04X, %d, %p);\n", size, type, stride, pointer); \ } \ } \ } #define pack_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) ({ \ glCompressedTexImage2D_INDEXED *packed_data = malloc(sizeof(glCompressedTexImage2D_INDEXED)); \ packed_data->func = glCompressedTexImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLenum)internalformat; \ packed_data->args.a4 = (GLsizei)width; \ packed_data->args.a5 = (GLsizei)height; \ packed_data->args.a6 = (GLint)border; \ packed_data->args.a7 = (GLsizei)imageSize; \ packed_data->args.a8 = (GLvoid *)data; \ packed_data; \ }) #define emit_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) { \ mock_push(pack_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data)); \ } #define test_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) { \ glCompressedTexImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glCompressedTexImage2D missing (no calls left)\n"); \ } else if (packed->func != glCompressedTexImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glCompressedTexImage2D_INDEX); \ if (! packed) { \ mock_errorf("glCompressedTexImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glCompressedTexImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != internalformat) { \ match = 0; \ } \ if (packed->args.a4 != width) { \ match = 0; \ } \ if (packed->args.a5 != height) { \ match = 0; \ } \ if (packed->args.a6 != border) { \ match = 0; \ } \ if (packed->args.a7 != imageSize) { \ match = 0; \ } \ void *a = packed->args.a8, *b = data; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(data)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glCompressedTexImage2D(0x%04X, %d, 0x%04X, %d, %d, %d, %d, %p);\n", target, level, internalformat, width, height, border, imageSize, data); \ } \ } \ } #define pack_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) ({ \ glCompressedTexSubImage2D_INDEXED *packed_data = malloc(sizeof(glCompressedTexSubImage2D_INDEXED)); \ packed_data->func = glCompressedTexSubImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLsizei)width; \ packed_data->args.a6 = (GLsizei)height; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLsizei)imageSize; \ packed_data->args.a9 = (GLvoid *)data; \ packed_data; \ }) #define emit_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { \ mock_push(pack_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data)); \ } #define test_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { \ glCompressedTexSubImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glCompressedTexSubImage2D missing (no calls left)\n"); \ } else if (packed->func != glCompressedTexSubImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glCompressedTexSubImage2D_INDEX); \ if (! packed) { \ mock_errorf("glCompressedTexSubImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glCompressedTexSubImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != xoffset) { \ match = 0; \ } \ if (packed->args.a4 != yoffset) { \ match = 0; \ } \ if (packed->args.a5 != width) { \ match = 0; \ } \ if (packed->args.a6 != height) { \ match = 0; \ } \ if (packed->args.a7 != format) { \ match = 0; \ } \ if (packed->args.a8 != imageSize) { \ match = 0; \ } \ void *a = packed->args.a9, *b = data; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(data)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glCompressedTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, %d, %p);\n", target, level, xoffset, yoffset, width, height, format, imageSize, data); \ } \ } \ } #define pack_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border) ({ \ glCopyTexImage2D_INDEXED *packed_data = malloc(sizeof(glCopyTexImage2D_INDEXED)); \ packed_data->func = glCopyTexImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLenum)internalformat; \ packed_data->args.a4 = (GLint)x; \ packed_data->args.a5 = (GLint)y; \ packed_data->args.a6 = (GLsizei)width; \ packed_data->args.a7 = (GLsizei)height; \ packed_data->args.a8 = (GLint)border; \ packed_data; \ }) #define emit_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border) { \ mock_push(pack_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border)); \ } #define test_glCopyTexImage2D(target, level, internalformat, x, y, width, height, border) { \ glCopyTexImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glCopyTexImage2D missing (no calls left)\n"); \ } else if (packed->func != glCopyTexImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glCopyTexImage2D_INDEX); \ if (! packed) { \ mock_errorf("glCopyTexImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glCopyTexImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != internalformat) { \ match = 0; \ } \ if (packed->args.a4 != x) { \ match = 0; \ } \ if (packed->args.a5 != y) { \ match = 0; \ } \ if (packed->args.a6 != width) { \ match = 0; \ } \ if (packed->args.a7 != height) { \ match = 0; \ } \ if (packed->args.a8 != border) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glCopyTexImage2D(0x%04X, %d, 0x%04X, %d, %d, %d, %d, %d);\n", target, level, internalformat, x, y, width, height, border); \ } \ } \ } #define pack_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) ({ \ glCopyTexSubImage2D_INDEXED *packed_data = malloc(sizeof(glCopyTexSubImage2D_INDEXED)); \ packed_data->func = glCopyTexSubImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLint)x; \ packed_data->args.a6 = (GLint)y; \ packed_data->args.a7 = (GLsizei)width; \ packed_data->args.a8 = (GLsizei)height; \ packed_data; \ }) #define emit_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) { \ mock_push(pack_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height)); \ } #define test_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) { \ glCopyTexSubImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glCopyTexSubImage2D missing (no calls left)\n"); \ } else if (packed->func != glCopyTexSubImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glCopyTexSubImage2D_INDEX); \ if (! packed) { \ mock_errorf("glCopyTexSubImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glCopyTexSubImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != xoffset) { \ match = 0; \ } \ if (packed->args.a4 != yoffset) { \ match = 0; \ } \ if (packed->args.a5 != x) { \ match = 0; \ } \ if (packed->args.a6 != y) { \ match = 0; \ } \ if (packed->args.a7 != width) { \ match = 0; \ } \ if (packed->args.a8 != height) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glCopyTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, %d, %d);\n", target, level, xoffset, yoffset, x, y, width, height); \ } \ } \ } #define pack_glCullFace(mode) ({ \ glCullFace_INDEXED *packed_data = malloc(sizeof(glCullFace_INDEXED)); \ packed_data->func = glCullFace_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data; \ }) #define emit_glCullFace(mode) { \ mock_push(pack_glCullFace(mode)); \ } #define test_glCullFace(mode) { \ glCullFace_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glCullFace missing (no calls left)\n"); \ } else if (packed->func != glCullFace_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glCullFace_INDEX); \ if (! packed) { \ mock_errorf("glCullFace missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glCullFace:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glCullFace(0x%04X);\n", mode); \ } \ } \ } #define pack_glDeleteBuffers(n, buffers) ({ \ glDeleteBuffers_INDEXED *packed_data = malloc(sizeof(glDeleteBuffers_INDEXED)); \ packed_data->func = glDeleteBuffers_INDEX; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)buffers; \ packed_data; \ }) #define emit_glDeleteBuffers(n, buffers) { \ mock_push(pack_glDeleteBuffers(n, buffers)); \ } #define test_glDeleteBuffers(n, buffers) { \ glDeleteBuffers_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDeleteBuffers missing (no calls left)\n"); \ } else if (packed->func != glDeleteBuffers_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDeleteBuffers_INDEX); \ if (! packed) { \ mock_errorf("glDeleteBuffers missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDeleteBuffers:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != n) { \ match = 0; \ } \ void *a = packed->args.a2, *b = buffers; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(buffers)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDeleteBuffers(%d, %p);\n", n, buffers); \ } \ } \ } #define pack_glDeleteTextures(n, textures) ({ \ glDeleteTextures_INDEXED *packed_data = malloc(sizeof(glDeleteTextures_INDEXED)); \ packed_data->func = glDeleteTextures_INDEX; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)textures; \ packed_data; \ }) #define emit_glDeleteTextures(n, textures) { \ mock_push(pack_glDeleteTextures(n, textures)); \ } #define test_glDeleteTextures(n, textures) { \ glDeleteTextures_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDeleteTextures missing (no calls left)\n"); \ } else if (packed->func != glDeleteTextures_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDeleteTextures_INDEX); \ if (! packed) { \ mock_errorf("glDeleteTextures missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDeleteTextures:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != n) { \ match = 0; \ } \ void *a = packed->args.a2, *b = textures; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(textures)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDeleteTextures(%d, %p);\n", n, textures); \ } \ } \ } #define pack_glDepthFunc(func) ({ \ glDepthFunc_INDEXED *packed_data = malloc(sizeof(glDepthFunc_INDEXED)); \ packed_data->func = glDepthFunc_INDEX; \ packed_data->args.a1 = (GLenum)func; \ packed_data; \ }) #define emit_glDepthFunc(func) { \ mock_push(pack_glDepthFunc(func)); \ } #define test_glDepthFunc(func) { \ glDepthFunc_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDepthFunc missing (no calls left)\n"); \ } else if (packed->func != glDepthFunc_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDepthFunc_INDEX); \ if (! packed) { \ mock_errorf("glDepthFunc missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDepthFunc:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != func) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDepthFunc(0x%04X);\n", func); \ } \ } \ } #define pack_glDepthMask(flag) ({ \ glDepthMask_INDEXED *packed_data = malloc(sizeof(glDepthMask_INDEXED)); \ packed_data->func = glDepthMask_INDEX; \ packed_data->args.a1 = (GLboolean)flag; \ packed_data; \ }) #define emit_glDepthMask(flag) { \ mock_push(pack_glDepthMask(flag)); \ } #define test_glDepthMask(flag) { \ glDepthMask_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDepthMask missing (no calls left)\n"); \ } else if (packed->func != glDepthMask_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDepthMask_INDEX); \ if (! packed) { \ mock_errorf("glDepthMask missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDepthMask:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != flag) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDepthMask(%d);\n", flag); \ } \ } \ } #define pack_glDepthRangef(near, far) ({ \ glDepthRangef_INDEXED *packed_data = malloc(sizeof(glDepthRangef_INDEXED)); \ packed_data->func = glDepthRangef_INDEX; \ packed_data->args.a1 = (GLclampf)near; \ packed_data->args.a2 = (GLclampf)far; \ packed_data; \ }) #define emit_glDepthRangef(near, far) { \ mock_push(pack_glDepthRangef(near, far)); \ } #define test_glDepthRangef(near, far) { \ glDepthRangef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDepthRangef missing (no calls left)\n"); \ } else if (packed->func != glDepthRangef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDepthRangef_INDEX); \ if (! packed) { \ mock_errorf("glDepthRangef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDepthRangef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != near) { \ match = 0; \ } \ if (packed->args.a2 != far) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDepthRangef(%p, %p);\n", near, far); \ } \ } \ } #define pack_glDepthRangex(near, far) ({ \ glDepthRangex_INDEXED *packed_data = malloc(sizeof(glDepthRangex_INDEXED)); \ packed_data->func = glDepthRangex_INDEX; \ packed_data->args.a1 = (GLclampx)near; \ packed_data->args.a2 = (GLclampx)far; \ packed_data; \ }) #define emit_glDepthRangex(near, far) { \ mock_push(pack_glDepthRangex(near, far)); \ } #define test_glDepthRangex(near, far) { \ glDepthRangex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDepthRangex missing (no calls left)\n"); \ } else if (packed->func != glDepthRangex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDepthRangex_INDEX); \ if (! packed) { \ mock_errorf("glDepthRangex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDepthRangex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != near) { \ match = 0; \ } \ if (packed->args.a2 != far) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDepthRangex(%p, %p);\n", near, far); \ } \ } \ } #define pack_glDisable(cap) ({ \ glDisable_INDEXED *packed_data = malloc(sizeof(glDisable_INDEXED)); \ packed_data->func = glDisable_INDEX; \ packed_data->args.a1 = (GLenum)cap; \ packed_data; \ }) #define emit_glDisable(cap) { \ mock_push(pack_glDisable(cap)); \ } #define test_glDisable(cap) { \ glDisable_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDisable missing (no calls left)\n"); \ } else if (packed->func != glDisable_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDisable_INDEX); \ if (! packed) { \ mock_errorf("glDisable missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDisable:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != cap) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDisable(0x%04X);\n", cap); \ } \ } \ } #define pack_glDisableClientState(array) ({ \ glDisableClientState_INDEXED *packed_data = malloc(sizeof(glDisableClientState_INDEXED)); \ packed_data->func = glDisableClientState_INDEX; \ packed_data->args.a1 = (GLenum)array; \ packed_data; \ }) #define emit_glDisableClientState(array) { \ mock_push(pack_glDisableClientState(array)); \ } #define test_glDisableClientState(array) { \ glDisableClientState_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDisableClientState missing (no calls left)\n"); \ } else if (packed->func != glDisableClientState_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDisableClientState_INDEX); \ if (! packed) { \ mock_errorf("glDisableClientState missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDisableClientState:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != array) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDisableClientState(0x%04X);\n", array); \ } \ } \ } #define pack_glDrawArrays(mode, first, count) ({ \ glDrawArrays_INDEXED *packed_data = malloc(sizeof(glDrawArrays_INDEXED)); \ packed_data->func = glDrawArrays_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data->args.a2 = (GLint)first; \ packed_data->args.a3 = (GLsizei)count; \ packed_data; \ }) #define emit_glDrawArrays(mode, first, count) { \ mock_push(pack_glDrawArrays(mode, first, count)); \ } #define test_glDrawArrays(mode, first, count) { \ glDrawArrays_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDrawArrays missing (no calls left)\n"); \ } else if (packed->func != glDrawArrays_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDrawArrays_INDEX); \ if (! packed) { \ mock_errorf("glDrawArrays missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDrawArrays:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (packed->args.a2 != first) { \ match = 0; \ } \ if (packed->args.a3 != count) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDrawArrays(0x%04X, %d, %d);\n", mode, first, count); \ } \ } \ } #define pack_glDrawElements(mode, count, type, indices) ({ \ glDrawElements_INDEXED *packed_data = malloc(sizeof(glDrawElements_INDEXED)); \ packed_data->func = glDrawElements_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data->args.a2 = (GLsizei)count; \ packed_data->args.a3 = (GLenum)type; \ packed_data->args.a4 = (GLvoid *)indices; \ packed_data; \ }) #define emit_glDrawElements(mode, count, type, indices) { \ mock_push(pack_glDrawElements(mode, count, type, indices)); \ } #define test_glDrawElements(mode, count, type, indices) { \ glDrawElements_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glDrawElements missing (no calls left)\n"); \ } else if (packed->func != glDrawElements_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glDrawElements_INDEX); \ if (! packed) { \ mock_errorf("glDrawElements missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glDrawElements:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (packed->args.a2 != count) { \ match = 0; \ } \ if (packed->args.a3 != type) { \ match = 0; \ } \ void *a = packed->args.a4, *b = indices; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(indices)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glDrawElements(0x%04X, %d, 0x%04X, %p);\n", mode, count, type, indices); \ } \ } \ } #define pack_glEnable(cap) ({ \ glEnable_INDEXED *packed_data = malloc(sizeof(glEnable_INDEXED)); \ packed_data->func = glEnable_INDEX; \ packed_data->args.a1 = (GLenum)cap; \ packed_data; \ }) #define emit_glEnable(cap) { \ mock_push(pack_glEnable(cap)); \ } #define test_glEnable(cap) { \ glEnable_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glEnable missing (no calls left)\n"); \ } else if (packed->func != glEnable_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glEnable_INDEX); \ if (! packed) { \ mock_errorf("glEnable missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glEnable:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != cap) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glEnable(0x%04X);\n", cap); \ } \ } \ } #define pack_glEnableClientState(array) ({ \ glEnableClientState_INDEXED *packed_data = malloc(sizeof(glEnableClientState_INDEXED)); \ packed_data->func = glEnableClientState_INDEX; \ packed_data->args.a1 = (GLenum)array; \ packed_data; \ }) #define emit_glEnableClientState(array) { \ mock_push(pack_glEnableClientState(array)); \ } #define test_glEnableClientState(array) { \ glEnableClientState_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glEnableClientState missing (no calls left)\n"); \ } else if (packed->func != glEnableClientState_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glEnableClientState_INDEX); \ if (! packed) { \ mock_errorf("glEnableClientState missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glEnableClientState:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != array) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glEnableClientState(0x%04X);\n", array); \ } \ } \ } #define pack_glFinish() ({ \ glFinish_INDEXED *packed_data = malloc(sizeof(glFinish_INDEXED)); \ packed_data->func = glFinish_INDEX; \ packed_data; \ }) #define emit_glFinish() { \ mock_push(pack_glFinish()); \ } #define test_glFinish() { \ glFinish_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFinish missing (no calls left)\n"); \ } else if (packed->func != glFinish_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFinish_INDEX); \ if (! packed) { \ mock_errorf("glFinish missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFinish:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFinish();\n", ); \ } \ } \ } #define pack_glFlush() ({ \ glFlush_INDEXED *packed_data = malloc(sizeof(glFlush_INDEXED)); \ packed_data->func = glFlush_INDEX; \ packed_data; \ }) #define emit_glFlush() { \ mock_push(pack_glFlush()); \ } #define test_glFlush() { \ glFlush_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFlush missing (no calls left)\n"); \ } else if (packed->func != glFlush_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFlush_INDEX); \ if (! packed) { \ mock_errorf("glFlush missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFlush:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFlush();\n", ); \ } \ } \ } #define pack_glFogf(pname, param) ({ \ glFogf_INDEXED *packed_data = malloc(sizeof(glFogf_INDEXED)); \ packed_data->func = glFogf_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat)param; \ packed_data; \ }) #define emit_glFogf(pname, param) { \ mock_push(pack_glFogf(pname, param)); \ } #define test_glFogf(pname, param) { \ glFogf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFogf missing (no calls left)\n"); \ } else if (packed->func != glFogf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFogf_INDEX); \ if (! packed) { \ mock_errorf("glFogf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFogf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFogf(0x%04X, %0.2f);\n", pname, param); \ } \ } \ } #define pack_glFogfv(pname, params) ({ \ glFogfv_INDEXED *packed_data = malloc(sizeof(glFogfv_INDEXED)); \ packed_data->func = glFogfv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat *)params; \ packed_data; \ }) #define emit_glFogfv(pname, params) { \ mock_push(pack_glFogfv(pname, params)); \ } #define test_glFogfv(pname, params) { \ glFogfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFogfv missing (no calls left)\n"); \ } else if (packed->func != glFogfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFogfv_INDEX); \ if (! packed) { \ mock_errorf("glFogfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFogfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFogfv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glFogx(pname, param) ({ \ glFogx_INDEXED *packed_data = malloc(sizeof(glFogx_INDEXED)); \ packed_data->func = glFogx_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed)param; \ packed_data; \ }) #define emit_glFogx(pname, param) { \ mock_push(pack_glFogx(pname, param)); \ } #define test_glFogx(pname, param) { \ glFogx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFogx missing (no calls left)\n"); \ } else if (packed->func != glFogx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFogx_INDEX); \ if (! packed) { \ mock_errorf("glFogx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFogx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFogx(0x%04X, %p);\n", pname, param); \ } \ } \ } #define pack_glFogxv(pname, params) ({ \ glFogxv_INDEXED *packed_data = malloc(sizeof(glFogxv_INDEXED)); \ packed_data->func = glFogxv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed *)params; \ packed_data; \ }) #define emit_glFogxv(pname, params) { \ mock_push(pack_glFogxv(pname, params)); \ } #define test_glFogxv(pname, params) { \ glFogxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFogxv missing (no calls left)\n"); \ } else if (packed->func != glFogxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFogxv_INDEX); \ if (! packed) { \ mock_errorf("glFogxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFogxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFogxv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glFrontFace(mode) ({ \ glFrontFace_INDEXED *packed_data = malloc(sizeof(glFrontFace_INDEXED)); \ packed_data->func = glFrontFace_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data; \ }) #define emit_glFrontFace(mode) { \ mock_push(pack_glFrontFace(mode)); \ } #define test_glFrontFace(mode) { \ glFrontFace_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFrontFace missing (no calls left)\n"); \ } else if (packed->func != glFrontFace_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFrontFace_INDEX); \ if (! packed) { \ mock_errorf("glFrontFace missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFrontFace:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFrontFace(0x%04X);\n", mode); \ } \ } \ } #define pack_glFrustumf(left, right, bottom, top, near, far) ({ \ glFrustumf_INDEXED *packed_data = malloc(sizeof(glFrustumf_INDEXED)); \ packed_data->func = glFrustumf_INDEX; \ packed_data->args.a1 = (GLfloat)left; \ packed_data->args.a2 = (GLfloat)right; \ packed_data->args.a3 = (GLfloat)bottom; \ packed_data->args.a4 = (GLfloat)top; \ packed_data->args.a5 = (GLfloat)near; \ packed_data->args.a6 = (GLfloat)far; \ packed_data; \ }) #define emit_glFrustumf(left, right, bottom, top, near, far) { \ mock_push(pack_glFrustumf(left, right, bottom, top, near, far)); \ } #define test_glFrustumf(left, right, bottom, top, near, far) { \ glFrustumf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFrustumf missing (no calls left)\n"); \ } else if (packed->func != glFrustumf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFrustumf_INDEX); \ if (! packed) { \ mock_errorf("glFrustumf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFrustumf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - left >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - right >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - bottom >= 0.01) { \ match = 0; \ } \ if (packed->args.a4 - top >= 0.01) { \ match = 0; \ } \ if (packed->args.a5 - near >= 0.01) { \ match = 0; \ } \ if (packed->args.a6 - far >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFrustumf(%0.2f, %0.2f, %0.2f, %0.2f, %0.2f, %0.2f);\n", left, right, bottom, top, near, far); \ } \ } \ } #define pack_glFrustumx(left, right, bottom, top, near, far) ({ \ glFrustumx_INDEXED *packed_data = malloc(sizeof(glFrustumx_INDEXED)); \ packed_data->func = glFrustumx_INDEX; \ packed_data->args.a1 = (GLfixed)left; \ packed_data->args.a2 = (GLfixed)right; \ packed_data->args.a3 = (GLfixed)bottom; \ packed_data->args.a4 = (GLfixed)top; \ packed_data->args.a5 = (GLfixed)near; \ packed_data->args.a6 = (GLfixed)far; \ packed_data; \ }) #define emit_glFrustumx(left, right, bottom, top, near, far) { \ mock_push(pack_glFrustumx(left, right, bottom, top, near, far)); \ } #define test_glFrustumx(left, right, bottom, top, near, far) { \ glFrustumx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glFrustumx missing (no calls left)\n"); \ } else if (packed->func != glFrustumx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glFrustumx_INDEX); \ if (! packed) { \ mock_errorf("glFrustumx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glFrustumx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != left) { \ match = 0; \ } \ if (packed->args.a2 != right) { \ match = 0; \ } \ if (packed->args.a3 != bottom) { \ match = 0; \ } \ if (packed->args.a4 != top) { \ match = 0; \ } \ if (packed->args.a5 != near) { \ match = 0; \ } \ if (packed->args.a6 != far) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glFrustumx(%p, %p, %p, %p, %p, %p);\n", left, right, bottom, top, near, far); \ } \ } \ } #define pack_glGenBuffers(n, buffers) ({ \ glGenBuffers_INDEXED *packed_data = malloc(sizeof(glGenBuffers_INDEXED)); \ packed_data->func = glGenBuffers_INDEX; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)buffers; \ packed_data; \ }) #define emit_glGenBuffers(n, buffers) { \ mock_push(pack_glGenBuffers(n, buffers)); \ } #define test_glGenBuffers(n, buffers) { \ glGenBuffers_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGenBuffers missing (no calls left)\n"); \ } else if (packed->func != glGenBuffers_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGenBuffers_INDEX); \ if (! packed) { \ mock_errorf("glGenBuffers missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGenBuffers:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != n) { \ match = 0; \ } \ void *a = packed->args.a2, *b = buffers; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(buffers)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGenBuffers(%d, %p);\n", n, buffers); \ } \ } \ } #define pack_glGenTextures(n, textures) ({ \ glGenTextures_INDEXED *packed_data = malloc(sizeof(glGenTextures_INDEXED)); \ packed_data->func = glGenTextures_INDEX; \ packed_data->args.a1 = (GLsizei)n; \ packed_data->args.a2 = (GLuint *)textures; \ packed_data; \ }) #define emit_glGenTextures(n, textures) { \ mock_push(pack_glGenTextures(n, textures)); \ } #define test_glGenTextures(n, textures) { \ glGenTextures_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGenTextures missing (no calls left)\n"); \ } else if (packed->func != glGenTextures_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGenTextures_INDEX); \ if (! packed) { \ mock_errorf("glGenTextures missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGenTextures:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != n) { \ match = 0; \ } \ void *a = packed->args.a2, *b = textures; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(textures)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGenTextures(%d, %p);\n", n, textures); \ } \ } \ } #define pack_glGetBooleanv(pname, params) ({ \ glGetBooleanv_INDEXED *packed_data = malloc(sizeof(glGetBooleanv_INDEXED)); \ packed_data->func = glGetBooleanv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLboolean *)params; \ packed_data; \ }) #define emit_glGetBooleanv(pname, params) { \ mock_push(pack_glGetBooleanv(pname, params)); \ } #define test_glGetBooleanv(pname, params) { \ glGetBooleanv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetBooleanv missing (no calls left)\n"); \ } else if (packed->func != glGetBooleanv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetBooleanv_INDEX); \ if (! packed) { \ mock_errorf("glGetBooleanv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetBooleanv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetBooleanv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glGetBufferParameteriv(target, pname, params) ({ \ glGetBufferParameteriv_INDEXED *packed_data = malloc(sizeof(glGetBufferParameteriv_INDEXED)); \ packed_data->func = glGetBufferParameteriv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ packed_data; \ }) #define emit_glGetBufferParameteriv(target, pname, params) { \ mock_push(pack_glGetBufferParameteriv(target, pname, params)); \ } #define test_glGetBufferParameteriv(target, pname, params) { \ glGetBufferParameteriv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetBufferParameteriv missing (no calls left)\n"); \ } else if (packed->func != glGetBufferParameteriv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetBufferParameteriv_INDEX); \ if (! packed) { \ mock_errorf("glGetBufferParameteriv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetBufferParameteriv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetBufferParameteriv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetClipPlanef(plane, equation) ({ \ glGetClipPlanef_INDEXED *packed_data = malloc(sizeof(glGetClipPlanef_INDEXED)); \ packed_data->func = glGetClipPlanef_INDEX; \ packed_data->args.a1 = (GLenum)plane; \ packed_data->args.a2 = (GLfloat *)equation; \ packed_data; \ }) #define emit_glGetClipPlanef(plane, equation) { \ mock_push(pack_glGetClipPlanef(plane, equation)); \ } #define test_glGetClipPlanef(plane, equation) { \ glGetClipPlanef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetClipPlanef missing (no calls left)\n"); \ } else if (packed->func != glGetClipPlanef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetClipPlanef_INDEX); \ if (! packed) { \ mock_errorf("glGetClipPlanef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetClipPlanef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != plane) { \ match = 0; \ } \ void *a = packed->args.a2, *b = equation; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(equation)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetClipPlanef(0x%04X, %p);\n", plane, equation); \ } \ } \ } #define pack_glGetClipPlanex(plane, equation) ({ \ glGetClipPlanex_INDEXED *packed_data = malloc(sizeof(glGetClipPlanex_INDEXED)); \ packed_data->func = glGetClipPlanex_INDEX; \ packed_data->args.a1 = (GLenum)plane; \ packed_data->args.a2 = (GLfixed *)equation; \ packed_data; \ }) #define emit_glGetClipPlanex(plane, equation) { \ mock_push(pack_glGetClipPlanex(plane, equation)); \ } #define test_glGetClipPlanex(plane, equation) { \ glGetClipPlanex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetClipPlanex missing (no calls left)\n"); \ } else if (packed->func != glGetClipPlanex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetClipPlanex_INDEX); \ if (! packed) { \ mock_errorf("glGetClipPlanex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetClipPlanex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != plane) { \ match = 0; \ } \ void *a = packed->args.a2, *b = equation; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(equation)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetClipPlanex(0x%04X, %p);\n", plane, equation); \ } \ } \ } #define pack_glGetError() ({ \ glGetError_INDEXED *packed_data = malloc(sizeof(glGetError_INDEXED)); \ packed_data->func = glGetError_INDEX; \ packed_data; \ }) #define emit_glGetError() { \ mock_push(pack_glGetError()); \ } #define test_glGetError() { \ glGetError_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetError missing (no calls left)\n"); \ } else if (packed->func != glGetError_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetError_INDEX); \ if (! packed) { \ mock_errorf("glGetError missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetError:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetError();\n", ); \ } \ } \ } #define pack_glGetFixedv(pname, params) ({ \ glGetFixedv_INDEXED *packed_data = malloc(sizeof(glGetFixedv_INDEXED)); \ packed_data->func = glGetFixedv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed *)params; \ packed_data; \ }) #define emit_glGetFixedv(pname, params) { \ mock_push(pack_glGetFixedv(pname, params)); \ } #define test_glGetFixedv(pname, params) { \ glGetFixedv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetFixedv missing (no calls left)\n"); \ } else if (packed->func != glGetFixedv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetFixedv_INDEX); \ if (! packed) { \ mock_errorf("glGetFixedv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetFixedv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetFixedv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glGetFloatv(pname, params) ({ \ glGetFloatv_INDEXED *packed_data = malloc(sizeof(glGetFloatv_INDEXED)); \ packed_data->func = glGetFloatv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat *)params; \ packed_data; \ }) #define emit_glGetFloatv(pname, params) { \ mock_push(pack_glGetFloatv(pname, params)); \ } #define test_glGetFloatv(pname, params) { \ glGetFloatv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetFloatv missing (no calls left)\n"); \ } else if (packed->func != glGetFloatv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetFloatv_INDEX); \ if (! packed) { \ mock_errorf("glGetFloatv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetFloatv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetFloatv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glGetIntegerv(pname, params) ({ \ glGetIntegerv_INDEXED *packed_data = malloc(sizeof(glGetIntegerv_INDEXED)); \ packed_data->func = glGetIntegerv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLint *)params; \ packed_data; \ }) #define emit_glGetIntegerv(pname, params) { \ mock_push(pack_glGetIntegerv(pname, params)); \ } #define test_glGetIntegerv(pname, params) { \ glGetIntegerv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetIntegerv missing (no calls left)\n"); \ } else if (packed->func != glGetIntegerv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetIntegerv_INDEX); \ if (! packed) { \ mock_errorf("glGetIntegerv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetIntegerv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetIntegerv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glGetLightfv(light, pname, params) ({ \ glGetLightfv_INDEXED *packed_data = malloc(sizeof(glGetLightfv_INDEXED)); \ packed_data->func = glGetLightfv_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glGetLightfv(light, pname, params) { \ mock_push(pack_glGetLightfv(light, pname, params)); \ } #define test_glGetLightfv(light, pname, params) { \ glGetLightfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetLightfv missing (no calls left)\n"); \ } else if (packed->func != glGetLightfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetLightfv_INDEX); \ if (! packed) { \ mock_errorf("glGetLightfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetLightfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetLightfv(0x%04X, 0x%04X, %p);\n", light, pname, params); \ } \ } \ } #define pack_glGetLightxv(light, pname, params) ({ \ glGetLightxv_INDEXED *packed_data = malloc(sizeof(glGetLightxv_INDEXED)); \ packed_data->func = glGetLightxv_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glGetLightxv(light, pname, params) { \ mock_push(pack_glGetLightxv(light, pname, params)); \ } #define test_glGetLightxv(light, pname, params) { \ glGetLightxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetLightxv missing (no calls left)\n"); \ } else if (packed->func != glGetLightxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetLightxv_INDEX); \ if (! packed) { \ mock_errorf("glGetLightxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetLightxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetLightxv(0x%04X, 0x%04X, %p);\n", light, pname, params); \ } \ } \ } #define pack_glGetMaterialfv(face, pname, params) ({ \ glGetMaterialfv_INDEXED *packed_data = malloc(sizeof(glGetMaterialfv_INDEXED)); \ packed_data->func = glGetMaterialfv_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glGetMaterialfv(face, pname, params) { \ mock_push(pack_glGetMaterialfv(face, pname, params)); \ } #define test_glGetMaterialfv(face, pname, params) { \ glGetMaterialfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetMaterialfv missing (no calls left)\n"); \ } else if (packed->func != glGetMaterialfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetMaterialfv_INDEX); \ if (! packed) { \ mock_errorf("glGetMaterialfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetMaterialfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetMaterialfv(0x%04X, 0x%04X, %p);\n", face, pname, params); \ } \ } \ } #define pack_glGetMaterialxv(face, pname, params) ({ \ glGetMaterialxv_INDEXED *packed_data = malloc(sizeof(glGetMaterialxv_INDEXED)); \ packed_data->func = glGetMaterialxv_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glGetMaterialxv(face, pname, params) { \ mock_push(pack_glGetMaterialxv(face, pname, params)); \ } #define test_glGetMaterialxv(face, pname, params) { \ glGetMaterialxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetMaterialxv missing (no calls left)\n"); \ } else if (packed->func != glGetMaterialxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetMaterialxv_INDEX); \ if (! packed) { \ mock_errorf("glGetMaterialxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetMaterialxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetMaterialxv(0x%04X, 0x%04X, %p);\n", face, pname, params); \ } \ } \ } #define pack_glGetPointerv(pname, params) ({ \ glGetPointerv_INDEXED *packed_data = malloc(sizeof(glGetPointerv_INDEXED)); \ packed_data->func = glGetPointerv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLvoid **)params; \ packed_data; \ }) #define emit_glGetPointerv(pname, params) { \ mock_push(pack_glGetPointerv(pname, params)); \ } #define test_glGetPointerv(pname, params) { \ glGetPointerv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetPointerv missing (no calls left)\n"); \ } else if (packed->func != glGetPointerv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetPointerv_INDEX); \ if (! packed) { \ mock_errorf("glGetPointerv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetPointerv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetPointerv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glGetString(name) ({ \ glGetString_INDEXED *packed_data = malloc(sizeof(glGetString_INDEXED)); \ packed_data->func = glGetString_INDEX; \ packed_data->args.a1 = (GLenum)name; \ packed_data; \ }) #define emit_glGetString(name) { \ mock_push(pack_glGetString(name)); \ } #define test_glGetString(name) { \ glGetString_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetString missing (no calls left)\n"); \ } else if (packed->func != glGetString_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetString_INDEX); \ if (! packed) { \ mock_errorf("glGetString missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetString:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != name) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetString(0x%04X);\n", name); \ } \ } \ } #define pack_glGetTexEnvfv(target, pname, params) ({ \ glGetTexEnvfv_INDEXED *packed_data = malloc(sizeof(glGetTexEnvfv_INDEXED)); \ packed_data->func = glGetTexEnvfv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glGetTexEnvfv(target, pname, params) { \ mock_push(pack_glGetTexEnvfv(target, pname, params)); \ } #define test_glGetTexEnvfv(target, pname, params) { \ glGetTexEnvfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexEnvfv missing (no calls left)\n"); \ } else if (packed->func != glGetTexEnvfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexEnvfv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexEnvfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexEnvfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexEnvfv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetTexEnviv(target, pname, params) ({ \ glGetTexEnviv_INDEXED *packed_data = malloc(sizeof(glGetTexEnviv_INDEXED)); \ packed_data->func = glGetTexEnviv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ packed_data; \ }) #define emit_glGetTexEnviv(target, pname, params) { \ mock_push(pack_glGetTexEnviv(target, pname, params)); \ } #define test_glGetTexEnviv(target, pname, params) { \ glGetTexEnviv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexEnviv missing (no calls left)\n"); \ } else if (packed->func != glGetTexEnviv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexEnviv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexEnviv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexEnviv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexEnviv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetTexEnvxv(target, pname, params) ({ \ glGetTexEnvxv_INDEXED *packed_data = malloc(sizeof(glGetTexEnvxv_INDEXED)); \ packed_data->func = glGetTexEnvxv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glGetTexEnvxv(target, pname, params) { \ mock_push(pack_glGetTexEnvxv(target, pname, params)); \ } #define test_glGetTexEnvxv(target, pname, params) { \ glGetTexEnvxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexEnvxv missing (no calls left)\n"); \ } else if (packed->func != glGetTexEnvxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexEnvxv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexEnvxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexEnvxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexEnvxv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetTexParameterfv(target, pname, params) ({ \ glGetTexParameterfv_INDEXED *packed_data = malloc(sizeof(glGetTexParameterfv_INDEXED)); \ packed_data->func = glGetTexParameterfv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glGetTexParameterfv(target, pname, params) { \ mock_push(pack_glGetTexParameterfv(target, pname, params)); \ } #define test_glGetTexParameterfv(target, pname, params) { \ glGetTexParameterfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexParameterfv missing (no calls left)\n"); \ } else if (packed->func != glGetTexParameterfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexParameterfv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexParameterfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexParameterfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexParameterfv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetTexParameteriv(target, pname, params) ({ \ glGetTexParameteriv_INDEXED *packed_data = malloc(sizeof(glGetTexParameteriv_INDEXED)); \ packed_data->func = glGetTexParameteriv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ packed_data; \ }) #define emit_glGetTexParameteriv(target, pname, params) { \ mock_push(pack_glGetTexParameteriv(target, pname, params)); \ } #define test_glGetTexParameteriv(target, pname, params) { \ glGetTexParameteriv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexParameteriv missing (no calls left)\n"); \ } else if (packed->func != glGetTexParameteriv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexParameteriv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexParameteriv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexParameteriv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexParameteriv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glGetTexParameterxv(target, pname, params) ({ \ glGetTexParameterxv_INDEXED *packed_data = malloc(sizeof(glGetTexParameterxv_INDEXED)); \ packed_data->func = glGetTexParameterxv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glGetTexParameterxv(target, pname, params) { \ mock_push(pack_glGetTexParameterxv(target, pname, params)); \ } #define test_glGetTexParameterxv(target, pname, params) { \ glGetTexParameterxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glGetTexParameterxv missing (no calls left)\n"); \ } else if (packed->func != glGetTexParameterxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glGetTexParameterxv_INDEX); \ if (! packed) { \ mock_errorf("glGetTexParameterxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glGetTexParameterxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glGetTexParameterxv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glHint(target, mode) ({ \ glHint_INDEXED *packed_data = malloc(sizeof(glHint_INDEXED)); \ packed_data->func = glHint_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)mode; \ packed_data; \ }) #define emit_glHint(target, mode) { \ mock_push(pack_glHint(target, mode)); \ } #define test_glHint(target, mode) { \ glHint_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glHint missing (no calls left)\n"); \ } else if (packed->func != glHint_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glHint_INDEX); \ if (! packed) { \ mock_errorf("glHint missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glHint:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glHint(0x%04X, 0x%04X);\n", target, mode); \ } \ } \ } #define pack_glIsBuffer(buffer) ({ \ glIsBuffer_INDEXED *packed_data = malloc(sizeof(glIsBuffer_INDEXED)); \ packed_data->func = glIsBuffer_INDEX; \ packed_data->args.a1 = (GLuint)buffer; \ packed_data; \ }) #define emit_glIsBuffer(buffer) { \ mock_push(pack_glIsBuffer(buffer)); \ } #define test_glIsBuffer(buffer) { \ glIsBuffer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glIsBuffer missing (no calls left)\n"); \ } else if (packed->func != glIsBuffer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glIsBuffer_INDEX); \ if (! packed) { \ mock_errorf("glIsBuffer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glIsBuffer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != buffer) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glIsBuffer(%u);\n", buffer); \ } \ } \ } #define pack_glIsEnabled(cap) ({ \ glIsEnabled_INDEXED *packed_data = malloc(sizeof(glIsEnabled_INDEXED)); \ packed_data->func = glIsEnabled_INDEX; \ packed_data->args.a1 = (GLenum)cap; \ packed_data; \ }) #define emit_glIsEnabled(cap) { \ mock_push(pack_glIsEnabled(cap)); \ } #define test_glIsEnabled(cap) { \ glIsEnabled_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glIsEnabled missing (no calls left)\n"); \ } else if (packed->func != glIsEnabled_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glIsEnabled_INDEX); \ if (! packed) { \ mock_errorf("glIsEnabled missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glIsEnabled:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != cap) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glIsEnabled(0x%04X);\n", cap); \ } \ } \ } #define pack_glIsTexture(texture) ({ \ glIsTexture_INDEXED *packed_data = malloc(sizeof(glIsTexture_INDEXED)); \ packed_data->func = glIsTexture_INDEX; \ packed_data->args.a1 = (GLuint)texture; \ packed_data; \ }) #define emit_glIsTexture(texture) { \ mock_push(pack_glIsTexture(texture)); \ } #define test_glIsTexture(texture) { \ glIsTexture_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glIsTexture missing (no calls left)\n"); \ } else if (packed->func != glIsTexture_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glIsTexture_INDEX); \ if (! packed) { \ mock_errorf("glIsTexture missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glIsTexture:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != texture) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glIsTexture(%u);\n", texture); \ } \ } \ } #define pack_glLightModelf(pname, param) ({ \ glLightModelf_INDEXED *packed_data = malloc(sizeof(glLightModelf_INDEXED)); \ packed_data->func = glLightModelf_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat)param; \ packed_data; \ }) #define emit_glLightModelf(pname, param) { \ mock_push(pack_glLightModelf(pname, param)); \ } #define test_glLightModelf(pname, param) { \ glLightModelf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightModelf missing (no calls left)\n"); \ } else if (packed->func != glLightModelf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightModelf_INDEX); \ if (! packed) { \ mock_errorf("glLightModelf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightModelf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightModelf(0x%04X, %0.2f);\n", pname, param); \ } \ } \ } #define pack_glLightModelfv(pname, params) ({ \ glLightModelfv_INDEXED *packed_data = malloc(sizeof(glLightModelfv_INDEXED)); \ packed_data->func = glLightModelfv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat *)params; \ packed_data; \ }) #define emit_glLightModelfv(pname, params) { \ mock_push(pack_glLightModelfv(pname, params)); \ } #define test_glLightModelfv(pname, params) { \ glLightModelfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightModelfv missing (no calls left)\n"); \ } else if (packed->func != glLightModelfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightModelfv_INDEX); \ if (! packed) { \ mock_errorf("glLightModelfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightModelfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightModelfv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glLightModelx(pname, param) ({ \ glLightModelx_INDEXED *packed_data = malloc(sizeof(glLightModelx_INDEXED)); \ packed_data->func = glLightModelx_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed)param; \ packed_data; \ }) #define emit_glLightModelx(pname, param) { \ mock_push(pack_glLightModelx(pname, param)); \ } #define test_glLightModelx(pname, param) { \ glLightModelx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightModelx missing (no calls left)\n"); \ } else if (packed->func != glLightModelx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightModelx_INDEX); \ if (! packed) { \ mock_errorf("glLightModelx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightModelx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightModelx(0x%04X, %p);\n", pname, param); \ } \ } \ } #define pack_glLightModelxv(pname, params) ({ \ glLightModelxv_INDEXED *packed_data = malloc(sizeof(glLightModelxv_INDEXED)); \ packed_data->func = glLightModelxv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed *)params; \ packed_data; \ }) #define emit_glLightModelxv(pname, params) { \ mock_push(pack_glLightModelxv(pname, params)); \ } #define test_glLightModelxv(pname, params) { \ glLightModelxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightModelxv missing (no calls left)\n"); \ } else if (packed->func != glLightModelxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightModelxv_INDEX); \ if (! packed) { \ mock_errorf("glLightModelxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightModelxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightModelxv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glLightf(light, pname, param) ({ \ glLightf_INDEXED *packed_data = malloc(sizeof(glLightf_INDEXED)); \ packed_data->func = glLightf_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat)param; \ packed_data; \ }) #define emit_glLightf(light, pname, param) { \ mock_push(pack_glLightf(light, pname, param)); \ } #define test_glLightf(light, pname, param) { \ glLightf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightf missing (no calls left)\n"); \ } else if (packed->func != glLightf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightf_INDEX); \ if (! packed) { \ mock_errorf("glLightf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightf(0x%04X, 0x%04X, %0.2f);\n", light, pname, param); \ } \ } \ } #define pack_glLightfv(light, pname, params) ({ \ glLightfv_INDEXED *packed_data = malloc(sizeof(glLightfv_INDEXED)); \ packed_data->func = glLightfv_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glLightfv(light, pname, params) { \ mock_push(pack_glLightfv(light, pname, params)); \ } #define test_glLightfv(light, pname, params) { \ glLightfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightfv missing (no calls left)\n"); \ } else if (packed->func != glLightfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightfv_INDEX); \ if (! packed) { \ mock_errorf("glLightfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightfv(0x%04X, 0x%04X, %p);\n", light, pname, params); \ } \ } \ } #define pack_glLightx(light, pname, param) ({ \ glLightx_INDEXED *packed_data = malloc(sizeof(glLightx_INDEXED)); \ packed_data->func = glLightx_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed)param; \ packed_data; \ }) #define emit_glLightx(light, pname, param) { \ mock_push(pack_glLightx(light, pname, param)); \ } #define test_glLightx(light, pname, param) { \ glLightx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightx missing (no calls left)\n"); \ } else if (packed->func != glLightx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightx_INDEX); \ if (! packed) { \ mock_errorf("glLightx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightx(0x%04X, 0x%04X, %p);\n", light, pname, param); \ } \ } \ } #define pack_glLightxv(light, pname, params) ({ \ glLightxv_INDEXED *packed_data = malloc(sizeof(glLightxv_INDEXED)); \ packed_data->func = glLightxv_INDEX; \ packed_data->args.a1 = (GLenum)light; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glLightxv(light, pname, params) { \ mock_push(pack_glLightxv(light, pname, params)); \ } #define test_glLightxv(light, pname, params) { \ glLightxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLightxv missing (no calls left)\n"); \ } else if (packed->func != glLightxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLightxv_INDEX); \ if (! packed) { \ mock_errorf("glLightxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLightxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != light) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLightxv(0x%04X, 0x%04X, %p);\n", light, pname, params); \ } \ } \ } #define pack_glLineWidth(width) ({ \ glLineWidth_INDEXED *packed_data = malloc(sizeof(glLineWidth_INDEXED)); \ packed_data->func = glLineWidth_INDEX; \ packed_data->args.a1 = (GLfloat)width; \ packed_data; \ }) #define emit_glLineWidth(width) { \ mock_push(pack_glLineWidth(width)); \ } #define test_glLineWidth(width) { \ glLineWidth_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLineWidth missing (no calls left)\n"); \ } else if (packed->func != glLineWidth_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLineWidth_INDEX); \ if (! packed) { \ mock_errorf("glLineWidth missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLineWidth:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - width >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLineWidth(%0.2f);\n", width); \ } \ } \ } #define pack_glLineWidthx(width) ({ \ glLineWidthx_INDEXED *packed_data = malloc(sizeof(glLineWidthx_INDEXED)); \ packed_data->func = glLineWidthx_INDEX; \ packed_data->args.a1 = (GLfixed)width; \ packed_data; \ }) #define emit_glLineWidthx(width) { \ mock_push(pack_glLineWidthx(width)); \ } #define test_glLineWidthx(width) { \ glLineWidthx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLineWidthx missing (no calls left)\n"); \ } else if (packed->func != glLineWidthx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLineWidthx_INDEX); \ if (! packed) { \ mock_errorf("glLineWidthx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLineWidthx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != width) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLineWidthx(%p);\n", width); \ } \ } \ } #define pack_glLoadIdentity() ({ \ glLoadIdentity_INDEXED *packed_data = malloc(sizeof(glLoadIdentity_INDEXED)); \ packed_data->func = glLoadIdentity_INDEX; \ packed_data; \ }) #define emit_glLoadIdentity() { \ mock_push(pack_glLoadIdentity()); \ } #define test_glLoadIdentity() { \ glLoadIdentity_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLoadIdentity missing (no calls left)\n"); \ } else if (packed->func != glLoadIdentity_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLoadIdentity_INDEX); \ if (! packed) { \ mock_errorf("glLoadIdentity missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLoadIdentity:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLoadIdentity();\n", ); \ } \ } \ } #define pack_glLoadMatrixf(m) ({ \ glLoadMatrixf_INDEXED *packed_data = malloc(sizeof(glLoadMatrixf_INDEXED)); \ packed_data->func = glLoadMatrixf_INDEX; \ packed_data->args.a1 = (GLfloat *)m; \ packed_data; \ }) #define emit_glLoadMatrixf(m) { \ mock_push(pack_glLoadMatrixf(m)); \ } #define test_glLoadMatrixf(m) { \ glLoadMatrixf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLoadMatrixf missing (no calls left)\n"); \ } else if (packed->func != glLoadMatrixf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLoadMatrixf_INDEX); \ if (! packed) { \ mock_errorf("glLoadMatrixf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLoadMatrixf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ void *a = packed->args.a1, *b = m; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(m)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLoadMatrixf(%p);\n", m); \ } \ } \ } #define pack_glLoadMatrixx(m) ({ \ glLoadMatrixx_INDEXED *packed_data = malloc(sizeof(glLoadMatrixx_INDEXED)); \ packed_data->func = glLoadMatrixx_INDEX; \ packed_data->args.a1 = (GLfixed *)m; \ packed_data; \ }) #define emit_glLoadMatrixx(m) { \ mock_push(pack_glLoadMatrixx(m)); \ } #define test_glLoadMatrixx(m) { \ glLoadMatrixx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLoadMatrixx missing (no calls left)\n"); \ } else if (packed->func != glLoadMatrixx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLoadMatrixx_INDEX); \ if (! packed) { \ mock_errorf("glLoadMatrixx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLoadMatrixx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ void *a = packed->args.a1, *b = m; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(m)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLoadMatrixx(%p);\n", m); \ } \ } \ } #define pack_glLogicOp(opcode) ({ \ glLogicOp_INDEXED *packed_data = malloc(sizeof(glLogicOp_INDEXED)); \ packed_data->func = glLogicOp_INDEX; \ packed_data->args.a1 = (GLenum)opcode; \ packed_data; \ }) #define emit_glLogicOp(opcode) { \ mock_push(pack_glLogicOp(opcode)); \ } #define test_glLogicOp(opcode) { \ glLogicOp_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glLogicOp missing (no calls left)\n"); \ } else if (packed->func != glLogicOp_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glLogicOp_INDEX); \ if (! packed) { \ mock_errorf("glLogicOp missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glLogicOp:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != opcode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glLogicOp(0x%04X);\n", opcode); \ } \ } \ } #define pack_glMaterialf(face, pname, param) ({ \ glMaterialf_INDEXED *packed_data = malloc(sizeof(glMaterialf_INDEXED)); \ packed_data->func = glMaterialf_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat)param; \ packed_data; \ }) #define emit_glMaterialf(face, pname, param) { \ mock_push(pack_glMaterialf(face, pname, param)); \ } #define test_glMaterialf(face, pname, param) { \ glMaterialf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMaterialf missing (no calls left)\n"); \ } else if (packed->func != glMaterialf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMaterialf_INDEX); \ if (! packed) { \ mock_errorf("glMaterialf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMaterialf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMaterialf(0x%04X, 0x%04X, %0.2f);\n", face, pname, param); \ } \ } \ } #define pack_glMaterialfv(face, pname, params) ({ \ glMaterialfv_INDEXED *packed_data = malloc(sizeof(glMaterialfv_INDEXED)); \ packed_data->func = glMaterialfv_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glMaterialfv(face, pname, params) { \ mock_push(pack_glMaterialfv(face, pname, params)); \ } #define test_glMaterialfv(face, pname, params) { \ glMaterialfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMaterialfv missing (no calls left)\n"); \ } else if (packed->func != glMaterialfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMaterialfv_INDEX); \ if (! packed) { \ mock_errorf("glMaterialfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMaterialfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMaterialfv(0x%04X, 0x%04X, %p);\n", face, pname, params); \ } \ } \ } #define pack_glMaterialx(face, pname, param) ({ \ glMaterialx_INDEXED *packed_data = malloc(sizeof(glMaterialx_INDEXED)); \ packed_data->func = glMaterialx_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed)param; \ packed_data; \ }) #define emit_glMaterialx(face, pname, param) { \ mock_push(pack_glMaterialx(face, pname, param)); \ } #define test_glMaterialx(face, pname, param) { \ glMaterialx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMaterialx missing (no calls left)\n"); \ } else if (packed->func != glMaterialx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMaterialx_INDEX); \ if (! packed) { \ mock_errorf("glMaterialx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMaterialx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMaterialx(0x%04X, 0x%04X, %p);\n", face, pname, param); \ } \ } \ } #define pack_glMaterialxv(face, pname, params) ({ \ glMaterialxv_INDEXED *packed_data = malloc(sizeof(glMaterialxv_INDEXED)); \ packed_data->func = glMaterialxv_INDEX; \ packed_data->args.a1 = (GLenum)face; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glMaterialxv(face, pname, params) { \ mock_push(pack_glMaterialxv(face, pname, params)); \ } #define test_glMaterialxv(face, pname, params) { \ glMaterialxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMaterialxv missing (no calls left)\n"); \ } else if (packed->func != glMaterialxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMaterialxv_INDEX); \ if (! packed) { \ mock_errorf("glMaterialxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMaterialxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != face) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMaterialxv(0x%04X, 0x%04X, %p);\n", face, pname, params); \ } \ } \ } #define pack_glMatrixMode(mode) ({ \ glMatrixMode_INDEXED *packed_data = malloc(sizeof(glMatrixMode_INDEXED)); \ packed_data->func = glMatrixMode_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data; \ }) #define emit_glMatrixMode(mode) { \ mock_push(pack_glMatrixMode(mode)); \ } #define test_glMatrixMode(mode) { \ glMatrixMode_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMatrixMode missing (no calls left)\n"); \ } else if (packed->func != glMatrixMode_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMatrixMode_INDEX); \ if (! packed) { \ mock_errorf("glMatrixMode missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMatrixMode:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMatrixMode(0x%04X);\n", mode); \ } \ } \ } #define pack_glMultMatrixf(m) ({ \ glMultMatrixf_INDEXED *packed_data = malloc(sizeof(glMultMatrixf_INDEXED)); \ packed_data->func = glMultMatrixf_INDEX; \ packed_data->args.a1 = (GLfloat *)m; \ packed_data; \ }) #define emit_glMultMatrixf(m) { \ mock_push(pack_glMultMatrixf(m)); \ } #define test_glMultMatrixf(m) { \ glMultMatrixf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMultMatrixf missing (no calls left)\n"); \ } else if (packed->func != glMultMatrixf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMultMatrixf_INDEX); \ if (! packed) { \ mock_errorf("glMultMatrixf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMultMatrixf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ void *a = packed->args.a1, *b = m; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(m)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMultMatrixf(%p);\n", m); \ } \ } \ } #define pack_glMultMatrixx(m) ({ \ glMultMatrixx_INDEXED *packed_data = malloc(sizeof(glMultMatrixx_INDEXED)); \ packed_data->func = glMultMatrixx_INDEX; \ packed_data->args.a1 = (GLfixed *)m; \ packed_data; \ }) #define emit_glMultMatrixx(m) { \ mock_push(pack_glMultMatrixx(m)); \ } #define test_glMultMatrixx(m) { \ glMultMatrixx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMultMatrixx missing (no calls left)\n"); \ } else if (packed->func != glMultMatrixx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMultMatrixx_INDEX); \ if (! packed) { \ mock_errorf("glMultMatrixx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMultMatrixx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ void *a = packed->args.a1, *b = m; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(m)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMultMatrixx(%p);\n", m); \ } \ } \ } #define pack_glMultiTexCoord4f(target, s, t, r, q) ({ \ glMultiTexCoord4f_INDEXED *packed_data = malloc(sizeof(glMultiTexCoord4f_INDEXED)); \ packed_data->func = glMultiTexCoord4f_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLfloat)s; \ packed_data->args.a3 = (GLfloat)t; \ packed_data->args.a4 = (GLfloat)r; \ packed_data->args.a5 = (GLfloat)q; \ packed_data; \ }) #define emit_glMultiTexCoord4f(target, s, t, r, q) { \ mock_push(pack_glMultiTexCoord4f(target, s, t, r, q)); \ } #define test_glMultiTexCoord4f(target, s, t, r, q) { \ glMultiTexCoord4f_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMultiTexCoord4f missing (no calls left)\n"); \ } else if (packed->func != glMultiTexCoord4f_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMultiTexCoord4f_INDEX); \ if (! packed) { \ mock_errorf("glMultiTexCoord4f missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMultiTexCoord4f:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 - s >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - t >= 0.01) { \ match = 0; \ } \ if (packed->args.a4 - r >= 0.01) { \ match = 0; \ } \ if (packed->args.a5 - q >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMultiTexCoord4f(0x%04X, %0.2f, %0.2f, %0.2f, %0.2f);\n", target, s, t, r, q); \ } \ } \ } #define pack_glMultiTexCoord4x(target, s, t, r, q) ({ \ glMultiTexCoord4x_INDEXED *packed_data = malloc(sizeof(glMultiTexCoord4x_INDEXED)); \ packed_data->func = glMultiTexCoord4x_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLfixed)s; \ packed_data->args.a3 = (GLfixed)t; \ packed_data->args.a4 = (GLfixed)r; \ packed_data->args.a5 = (GLfixed)q; \ packed_data; \ }) #define emit_glMultiTexCoord4x(target, s, t, r, q) { \ mock_push(pack_glMultiTexCoord4x(target, s, t, r, q)); \ } #define test_glMultiTexCoord4x(target, s, t, r, q) { \ glMultiTexCoord4x_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glMultiTexCoord4x missing (no calls left)\n"); \ } else if (packed->func != glMultiTexCoord4x_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glMultiTexCoord4x_INDEX); \ if (! packed) { \ mock_errorf("glMultiTexCoord4x missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glMultiTexCoord4x:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != s) { \ match = 0; \ } \ if (packed->args.a3 != t) { \ match = 0; \ } \ if (packed->args.a4 != r) { \ match = 0; \ } \ if (packed->args.a5 != q) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glMultiTexCoord4x(0x%04X, %p, %p, %p, %p);\n", target, s, t, r, q); \ } \ } \ } #define pack_glNormal3f(nx, ny, nz) ({ \ glNormal3f_INDEXED *packed_data = malloc(sizeof(glNormal3f_INDEXED)); \ packed_data->func = glNormal3f_INDEX; \ packed_data->args.a1 = (GLfloat)nx; \ packed_data->args.a2 = (GLfloat)ny; \ packed_data->args.a3 = (GLfloat)nz; \ packed_data; \ }) #define emit_glNormal3f(nx, ny, nz) { \ mock_push(pack_glNormal3f(nx, ny, nz)); \ } #define test_glNormal3f(nx, ny, nz) { \ glNormal3f_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glNormal3f missing (no calls left)\n"); \ } else if (packed->func != glNormal3f_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glNormal3f_INDEX); \ if (! packed) { \ mock_errorf("glNormal3f missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glNormal3f:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - nx >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - ny >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - nz >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glNormal3f(%0.2f, %0.2f, %0.2f);\n", nx, ny, nz); \ } \ } \ } #define pack_glNormal3x(nx, ny, nz) ({ \ glNormal3x_INDEXED *packed_data = malloc(sizeof(glNormal3x_INDEXED)); \ packed_data->func = glNormal3x_INDEX; \ packed_data->args.a1 = (GLfixed)nx; \ packed_data->args.a2 = (GLfixed)ny; \ packed_data->args.a3 = (GLfixed)nz; \ packed_data; \ }) #define emit_glNormal3x(nx, ny, nz) { \ mock_push(pack_glNormal3x(nx, ny, nz)); \ } #define test_glNormal3x(nx, ny, nz) { \ glNormal3x_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glNormal3x missing (no calls left)\n"); \ } else if (packed->func != glNormal3x_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glNormal3x_INDEX); \ if (! packed) { \ mock_errorf("glNormal3x missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glNormal3x:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != nx) { \ match = 0; \ } \ if (packed->args.a2 != ny) { \ match = 0; \ } \ if (packed->args.a3 != nz) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glNormal3x(%p, %p, %p);\n", nx, ny, nz); \ } \ } \ } #define pack_glNormalPointer(type, stride, pointer) ({ \ glNormalPointer_INDEXED *packed_data = malloc(sizeof(glNormalPointer_INDEXED)); \ packed_data->func = glNormalPointer_INDEX; \ packed_data->args.a1 = (GLenum)type; \ packed_data->args.a2 = (GLsizei)stride; \ packed_data->args.a3 = (GLvoid *)pointer; \ packed_data; \ }) #define emit_glNormalPointer(type, stride, pointer) { \ mock_push(pack_glNormalPointer(type, stride, pointer)); \ } #define test_glNormalPointer(type, stride, pointer) { \ glNormalPointer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glNormalPointer missing (no calls left)\n"); \ } else if (packed->func != glNormalPointer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glNormalPointer_INDEX); \ if (! packed) { \ mock_errorf("glNormalPointer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glNormalPointer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != type) { \ match = 0; \ } \ if (packed->args.a2 != stride) { \ match = 0; \ } \ void *a = packed->args.a3, *b = pointer; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pointer)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glNormalPointer(0x%04X, %d, %p);\n", type, stride, pointer); \ } \ } \ } #define pack_glOrthof(left, right, bottom, top, near, far) ({ \ glOrthof_INDEXED *packed_data = malloc(sizeof(glOrthof_INDEXED)); \ packed_data->func = glOrthof_INDEX; \ packed_data->args.a1 = (GLfloat)left; \ packed_data->args.a2 = (GLfloat)right; \ packed_data->args.a3 = (GLfloat)bottom; \ packed_data->args.a4 = (GLfloat)top; \ packed_data->args.a5 = (GLfloat)near; \ packed_data->args.a6 = (GLfloat)far; \ packed_data; \ }) #define emit_glOrthof(left, right, bottom, top, near, far) { \ mock_push(pack_glOrthof(left, right, bottom, top, near, far)); \ } #define test_glOrthof(left, right, bottom, top, near, far) { \ glOrthof_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glOrthof missing (no calls left)\n"); \ } else if (packed->func != glOrthof_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glOrthof_INDEX); \ if (! packed) { \ mock_errorf("glOrthof missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glOrthof:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - left >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - right >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - bottom >= 0.01) { \ match = 0; \ } \ if (packed->args.a4 - top >= 0.01) { \ match = 0; \ } \ if (packed->args.a5 - near >= 0.01) { \ match = 0; \ } \ if (packed->args.a6 - far >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glOrthof(%0.2f, %0.2f, %0.2f, %0.2f, %0.2f, %0.2f);\n", left, right, bottom, top, near, far); \ } \ } \ } #define pack_glOrthox(left, right, bottom, top, near, far) ({ \ glOrthox_INDEXED *packed_data = malloc(sizeof(glOrthox_INDEXED)); \ packed_data->func = glOrthox_INDEX; \ packed_data->args.a1 = (GLfixed)left; \ packed_data->args.a2 = (GLfixed)right; \ packed_data->args.a3 = (GLfixed)bottom; \ packed_data->args.a4 = (GLfixed)top; \ packed_data->args.a5 = (GLfixed)near; \ packed_data->args.a6 = (GLfixed)far; \ packed_data; \ }) #define emit_glOrthox(left, right, bottom, top, near, far) { \ mock_push(pack_glOrthox(left, right, bottom, top, near, far)); \ } #define test_glOrthox(left, right, bottom, top, near, far) { \ glOrthox_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glOrthox missing (no calls left)\n"); \ } else if (packed->func != glOrthox_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glOrthox_INDEX); \ if (! packed) { \ mock_errorf("glOrthox missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glOrthox:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != left) { \ match = 0; \ } \ if (packed->args.a2 != right) { \ match = 0; \ } \ if (packed->args.a3 != bottom) { \ match = 0; \ } \ if (packed->args.a4 != top) { \ match = 0; \ } \ if (packed->args.a5 != near) { \ match = 0; \ } \ if (packed->args.a6 != far) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glOrthox(%p, %p, %p, %p, %p, %p);\n", left, right, bottom, top, near, far); \ } \ } \ } #define pack_glPixelStorei(pname, param) ({ \ glPixelStorei_INDEXED *packed_data = malloc(sizeof(glPixelStorei_INDEXED)); \ packed_data->func = glPixelStorei_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLint)param; \ packed_data; \ }) #define emit_glPixelStorei(pname, param) { \ mock_push(pack_glPixelStorei(pname, param)); \ } #define test_glPixelStorei(pname, param) { \ glPixelStorei_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPixelStorei missing (no calls left)\n"); \ } else if (packed->func != glPixelStorei_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPixelStorei_INDEX); \ if (! packed) { \ mock_errorf("glPixelStorei missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPixelStorei:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPixelStorei(0x%04X, %d);\n", pname, param); \ } \ } \ } #define pack_glPointParameterf(pname, param) ({ \ glPointParameterf_INDEXED *packed_data = malloc(sizeof(glPointParameterf_INDEXED)); \ packed_data->func = glPointParameterf_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat)param; \ packed_data; \ }) #define emit_glPointParameterf(pname, param) { \ mock_push(pack_glPointParameterf(pname, param)); \ } #define test_glPointParameterf(pname, param) { \ glPointParameterf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointParameterf missing (no calls left)\n"); \ } else if (packed->func != glPointParameterf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointParameterf_INDEX); \ if (! packed) { \ mock_errorf("glPointParameterf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointParameterf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointParameterf(0x%04X, %0.2f);\n", pname, param); \ } \ } \ } #define pack_glPointParameterfv(pname, params) ({ \ glPointParameterfv_INDEXED *packed_data = malloc(sizeof(glPointParameterfv_INDEXED)); \ packed_data->func = glPointParameterfv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfloat *)params; \ packed_data; \ }) #define emit_glPointParameterfv(pname, params) { \ mock_push(pack_glPointParameterfv(pname, params)); \ } #define test_glPointParameterfv(pname, params) { \ glPointParameterfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointParameterfv missing (no calls left)\n"); \ } else if (packed->func != glPointParameterfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointParameterfv_INDEX); \ if (! packed) { \ mock_errorf("glPointParameterfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointParameterfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointParameterfv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glPointParameterx(pname, param) ({ \ glPointParameterx_INDEXED *packed_data = malloc(sizeof(glPointParameterx_INDEXED)); \ packed_data->func = glPointParameterx_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed)param; \ packed_data; \ }) #define emit_glPointParameterx(pname, param) { \ mock_push(pack_glPointParameterx(pname, param)); \ } #define test_glPointParameterx(pname, param) { \ glPointParameterx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointParameterx missing (no calls left)\n"); \ } else if (packed->func != glPointParameterx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointParameterx_INDEX); \ if (! packed) { \ mock_errorf("glPointParameterx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointParameterx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ if (packed->args.a2 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointParameterx(0x%04X, %p);\n", pname, param); \ } \ } \ } #define pack_glPointParameterxv(pname, params) ({ \ glPointParameterxv_INDEXED *packed_data = malloc(sizeof(glPointParameterxv_INDEXED)); \ packed_data->func = glPointParameterxv_INDEX; \ packed_data->args.a1 = (GLenum)pname; \ packed_data->args.a2 = (GLfixed *)params; \ packed_data; \ }) #define emit_glPointParameterxv(pname, params) { \ mock_push(pack_glPointParameterxv(pname, params)); \ } #define test_glPointParameterxv(pname, params) { \ glPointParameterxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointParameterxv missing (no calls left)\n"); \ } else if (packed->func != glPointParameterxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointParameterxv_INDEX); \ if (! packed) { \ mock_errorf("glPointParameterxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointParameterxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != pname) { \ match = 0; \ } \ void *a = packed->args.a2, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointParameterxv(0x%04X, %p);\n", pname, params); \ } \ } \ } #define pack_glPointSize(size) ({ \ glPointSize_INDEXED *packed_data = malloc(sizeof(glPointSize_INDEXED)); \ packed_data->func = glPointSize_INDEX; \ packed_data->args.a1 = (GLfloat)size; \ packed_data; \ }) #define emit_glPointSize(size) { \ mock_push(pack_glPointSize(size)); \ } #define test_glPointSize(size) { \ glPointSize_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointSize missing (no calls left)\n"); \ } else if (packed->func != glPointSize_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointSize_INDEX); \ if (! packed) { \ mock_errorf("glPointSize missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointSize:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - size >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointSize(%0.2f);\n", size); \ } \ } \ } #define pack_glPointSizePointerOES(type, stride, pointer) ({ \ glPointSizePointerOES_INDEXED *packed_data = malloc(sizeof(glPointSizePointerOES_INDEXED)); \ packed_data->func = glPointSizePointerOES_INDEX; \ packed_data->args.a1 = (GLenum)type; \ packed_data->args.a2 = (GLsizei)stride; \ packed_data->args.a3 = (GLvoid *)pointer; \ packed_data; \ }) #define emit_glPointSizePointerOES(type, stride, pointer) { \ mock_push(pack_glPointSizePointerOES(type, stride, pointer)); \ } #define test_glPointSizePointerOES(type, stride, pointer) { \ glPointSizePointerOES_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointSizePointerOES missing (no calls left)\n"); \ } else if (packed->func != glPointSizePointerOES_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointSizePointerOES_INDEX); \ if (! packed) { \ mock_errorf("glPointSizePointerOES missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointSizePointerOES:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != type) { \ match = 0; \ } \ if (packed->args.a2 != stride) { \ match = 0; \ } \ void *a = packed->args.a3, *b = pointer; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pointer)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointSizePointerOES(0x%04X, %d, %p);\n", type, stride, pointer); \ } \ } \ } #define pack_glPointSizex(size) ({ \ glPointSizex_INDEXED *packed_data = malloc(sizeof(glPointSizex_INDEXED)); \ packed_data->func = glPointSizex_INDEX; \ packed_data->args.a1 = (GLfixed)size; \ packed_data; \ }) #define emit_glPointSizex(size) { \ mock_push(pack_glPointSizex(size)); \ } #define test_glPointSizex(size) { \ glPointSizex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPointSizex missing (no calls left)\n"); \ } else if (packed->func != glPointSizex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPointSizex_INDEX); \ if (! packed) { \ mock_errorf("glPointSizex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPointSizex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != size) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPointSizex(%p);\n", size); \ } \ } \ } #define pack_glPolygonOffset(factor, units) ({ \ glPolygonOffset_INDEXED *packed_data = malloc(sizeof(glPolygonOffset_INDEXED)); \ packed_data->func = glPolygonOffset_INDEX; \ packed_data->args.a1 = (GLfloat)factor; \ packed_data->args.a2 = (GLfloat)units; \ packed_data; \ }) #define emit_glPolygonOffset(factor, units) { \ mock_push(pack_glPolygonOffset(factor, units)); \ } #define test_glPolygonOffset(factor, units) { \ glPolygonOffset_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPolygonOffset missing (no calls left)\n"); \ } else if (packed->func != glPolygonOffset_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPolygonOffset_INDEX); \ if (! packed) { \ mock_errorf("glPolygonOffset missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPolygonOffset:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - factor >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - units >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPolygonOffset(%0.2f, %0.2f);\n", factor, units); \ } \ } \ } #define pack_glPolygonOffsetx(factor, units) ({ \ glPolygonOffsetx_INDEXED *packed_data = malloc(sizeof(glPolygonOffsetx_INDEXED)); \ packed_data->func = glPolygonOffsetx_INDEX; \ packed_data->args.a1 = (GLfixed)factor; \ packed_data->args.a2 = (GLfixed)units; \ packed_data; \ }) #define emit_glPolygonOffsetx(factor, units) { \ mock_push(pack_glPolygonOffsetx(factor, units)); \ } #define test_glPolygonOffsetx(factor, units) { \ glPolygonOffsetx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPolygonOffsetx missing (no calls left)\n"); \ } else if (packed->func != glPolygonOffsetx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPolygonOffsetx_INDEX); \ if (! packed) { \ mock_errorf("glPolygonOffsetx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPolygonOffsetx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != factor) { \ match = 0; \ } \ if (packed->args.a2 != units) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPolygonOffsetx(%p, %p);\n", factor, units); \ } \ } \ } #define pack_glPopMatrix() ({ \ glPopMatrix_INDEXED *packed_data = malloc(sizeof(glPopMatrix_INDEXED)); \ packed_data->func = glPopMatrix_INDEX; \ packed_data; \ }) #define emit_glPopMatrix() { \ mock_push(pack_glPopMatrix()); \ } #define test_glPopMatrix() { \ glPopMatrix_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPopMatrix missing (no calls left)\n"); \ } else if (packed->func != glPopMatrix_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPopMatrix_INDEX); \ if (! packed) { \ mock_errorf("glPopMatrix missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPopMatrix:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPopMatrix();\n", ); \ } \ } \ } #define pack_glPushMatrix() ({ \ glPushMatrix_INDEXED *packed_data = malloc(sizeof(glPushMatrix_INDEXED)); \ packed_data->func = glPushMatrix_INDEX; \ packed_data; \ }) #define emit_glPushMatrix() { \ mock_push(pack_glPushMatrix()); \ } #define test_glPushMatrix() { \ glPushMatrix_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glPushMatrix missing (no calls left)\n"); \ } else if (packed->func != glPushMatrix_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glPushMatrix_INDEX); \ if (! packed) { \ mock_errorf("glPushMatrix missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glPushMatrix:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glPushMatrix();\n", ); \ } \ } \ } #define pack_glReadPixels(x, y, width, height, format, type, pixels) ({ \ glReadPixels_INDEXED *packed_data = malloc(sizeof(glReadPixels_INDEXED)); \ packed_data->func = glReadPixels_INDEX; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ packed_data->args.a5 = (GLenum)format; \ packed_data->args.a6 = (GLenum)type; \ packed_data->args.a7 = (GLvoid *)pixels; \ packed_data; \ }) #define emit_glReadPixels(x, y, width, height, format, type, pixels) { \ mock_push(pack_glReadPixels(x, y, width, height, format, type, pixels)); \ } #define test_glReadPixels(x, y, width, height, format, type, pixels) { \ glReadPixels_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glReadPixels missing (no calls left)\n"); \ } else if (packed->func != glReadPixels_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glReadPixels_INDEX); \ if (! packed) { \ mock_errorf("glReadPixels missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glReadPixels:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != x) { \ match = 0; \ } \ if (packed->args.a2 != y) { \ match = 0; \ } \ if (packed->args.a3 != width) { \ match = 0; \ } \ if (packed->args.a4 != height) { \ match = 0; \ } \ if (packed->args.a5 != format) { \ match = 0; \ } \ if (packed->args.a6 != type) { \ match = 0; \ } \ void *a = packed->args.a7, *b = pixels; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pixels)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glReadPixels(%d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", x, y, width, height, format, type, pixels); \ } \ } \ } #define pack_glRotatef(angle, x, y, z) ({ \ glRotatef_INDEXED *packed_data = malloc(sizeof(glRotatef_INDEXED)); \ packed_data->func = glRotatef_INDEX; \ packed_data->args.a1 = (GLfloat)angle; \ packed_data->args.a2 = (GLfloat)x; \ packed_data->args.a3 = (GLfloat)y; \ packed_data->args.a4 = (GLfloat)z; \ packed_data; \ }) #define emit_glRotatef(angle, x, y, z) { \ mock_push(pack_glRotatef(angle, x, y, z)); \ } #define test_glRotatef(angle, x, y, z) { \ glRotatef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glRotatef missing (no calls left)\n"); \ } else if (packed->func != glRotatef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glRotatef_INDEX); \ if (! packed) { \ mock_errorf("glRotatef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glRotatef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - angle >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - x >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - y >= 0.01) { \ match = 0; \ } \ if (packed->args.a4 - z >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glRotatef(%0.2f, %0.2f, %0.2f, %0.2f);\n", angle, x, y, z); \ } \ } \ } #define pack_glRotatex(angle, x, y, z) ({ \ glRotatex_INDEXED *packed_data = malloc(sizeof(glRotatex_INDEXED)); \ packed_data->func = glRotatex_INDEX; \ packed_data->args.a1 = (GLfixed)angle; \ packed_data->args.a2 = (GLfixed)x; \ packed_data->args.a3 = (GLfixed)y; \ packed_data->args.a4 = (GLfixed)z; \ packed_data; \ }) #define emit_glRotatex(angle, x, y, z) { \ mock_push(pack_glRotatex(angle, x, y, z)); \ } #define test_glRotatex(angle, x, y, z) { \ glRotatex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glRotatex missing (no calls left)\n"); \ } else if (packed->func != glRotatex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glRotatex_INDEX); \ if (! packed) { \ mock_errorf("glRotatex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glRotatex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != angle) { \ match = 0; \ } \ if (packed->args.a2 != x) { \ match = 0; \ } \ if (packed->args.a3 != y) { \ match = 0; \ } \ if (packed->args.a4 != z) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glRotatex(%p, %p, %p, %p);\n", angle, x, y, z); \ } \ } \ } #define pack_glSampleCoverage(value, invert) ({ \ glSampleCoverage_INDEXED *packed_data = malloc(sizeof(glSampleCoverage_INDEXED)); \ packed_data->func = glSampleCoverage_INDEX; \ packed_data->args.a1 = (GLclampf)value; \ packed_data->args.a2 = (GLboolean)invert; \ packed_data; \ }) #define emit_glSampleCoverage(value, invert) { \ mock_push(pack_glSampleCoverage(value, invert)); \ } #define test_glSampleCoverage(value, invert) { \ glSampleCoverage_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glSampleCoverage missing (no calls left)\n"); \ } else if (packed->func != glSampleCoverage_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glSampleCoverage_INDEX); \ if (! packed) { \ mock_errorf("glSampleCoverage missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glSampleCoverage:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != value) { \ match = 0; \ } \ if (packed->args.a2 != invert) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glSampleCoverage(%p, %d);\n", value, invert); \ } \ } \ } #define pack_glSampleCoveragex(value, invert) ({ \ glSampleCoveragex_INDEXED *packed_data = malloc(sizeof(glSampleCoveragex_INDEXED)); \ packed_data->func = glSampleCoveragex_INDEX; \ packed_data->args.a1 = (GLclampx)value; \ packed_data->args.a2 = (GLboolean)invert; \ packed_data; \ }) #define emit_glSampleCoveragex(value, invert) { \ mock_push(pack_glSampleCoveragex(value, invert)); \ } #define test_glSampleCoveragex(value, invert) { \ glSampleCoveragex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glSampleCoveragex missing (no calls left)\n"); \ } else if (packed->func != glSampleCoveragex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glSampleCoveragex_INDEX); \ if (! packed) { \ mock_errorf("glSampleCoveragex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glSampleCoveragex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != value) { \ match = 0; \ } \ if (packed->args.a2 != invert) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glSampleCoveragex(%p, %d);\n", value, invert); \ } \ } \ } #define pack_glScalef(x, y, z) ({ \ glScalef_INDEXED *packed_data = malloc(sizeof(glScalef_INDEXED)); \ packed_data->func = glScalef_INDEX; \ packed_data->args.a1 = (GLfloat)x; \ packed_data->args.a2 = (GLfloat)y; \ packed_data->args.a3 = (GLfloat)z; \ packed_data; \ }) #define emit_glScalef(x, y, z) { \ mock_push(pack_glScalef(x, y, z)); \ } #define test_glScalef(x, y, z) { \ glScalef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glScalef missing (no calls left)\n"); \ } else if (packed->func != glScalef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glScalef_INDEX); \ if (! packed) { \ mock_errorf("glScalef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glScalef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - x >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - y >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - z >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glScalef(%0.2f, %0.2f, %0.2f);\n", x, y, z); \ } \ } \ } #define pack_glScalex(x, y, z) ({ \ glScalex_INDEXED *packed_data = malloc(sizeof(glScalex_INDEXED)); \ packed_data->func = glScalex_INDEX; \ packed_data->args.a1 = (GLfixed)x; \ packed_data->args.a2 = (GLfixed)y; \ packed_data->args.a3 = (GLfixed)z; \ packed_data; \ }) #define emit_glScalex(x, y, z) { \ mock_push(pack_glScalex(x, y, z)); \ } #define test_glScalex(x, y, z) { \ glScalex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glScalex missing (no calls left)\n"); \ } else if (packed->func != glScalex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glScalex_INDEX); \ if (! packed) { \ mock_errorf("glScalex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glScalex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != x) { \ match = 0; \ } \ if (packed->args.a2 != y) { \ match = 0; \ } \ if (packed->args.a3 != z) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glScalex(%p, %p, %p);\n", x, y, z); \ } \ } \ } #define pack_glScissor(x, y, width, height) ({ \ glScissor_INDEXED *packed_data = malloc(sizeof(glScissor_INDEXED)); \ packed_data->func = glScissor_INDEX; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ packed_data; \ }) #define emit_glScissor(x, y, width, height) { \ mock_push(pack_glScissor(x, y, width, height)); \ } #define test_glScissor(x, y, width, height) { \ glScissor_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glScissor missing (no calls left)\n"); \ } else if (packed->func != glScissor_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glScissor_INDEX); \ if (! packed) { \ mock_errorf("glScissor missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glScissor:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != x) { \ match = 0; \ } \ if (packed->args.a2 != y) { \ match = 0; \ } \ if (packed->args.a3 != width) { \ match = 0; \ } \ if (packed->args.a4 != height) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glScissor(%d, %d, %d, %d);\n", x, y, width, height); \ } \ } \ } #define pack_glShadeModel(mode) ({ \ glShadeModel_INDEXED *packed_data = malloc(sizeof(glShadeModel_INDEXED)); \ packed_data->func = glShadeModel_INDEX; \ packed_data->args.a1 = (GLenum)mode; \ packed_data; \ }) #define emit_glShadeModel(mode) { \ mock_push(pack_glShadeModel(mode)); \ } #define test_glShadeModel(mode) { \ glShadeModel_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glShadeModel missing (no calls left)\n"); \ } else if (packed->func != glShadeModel_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glShadeModel_INDEX); \ if (! packed) { \ mock_errorf("glShadeModel missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glShadeModel:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mode) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glShadeModel(0x%04X);\n", mode); \ } \ } \ } #define pack_glStencilFunc(func, ref, mask) ({ \ glStencilFunc_INDEXED *packed_data = malloc(sizeof(glStencilFunc_INDEXED)); \ packed_data->func = glStencilFunc_INDEX; \ packed_data->args.a1 = (GLenum)func; \ packed_data->args.a2 = (GLint)ref; \ packed_data->args.a3 = (GLuint)mask; \ packed_data; \ }) #define emit_glStencilFunc(func, ref, mask) { \ mock_push(pack_glStencilFunc(func, ref, mask)); \ } #define test_glStencilFunc(func, ref, mask) { \ glStencilFunc_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glStencilFunc missing (no calls left)\n"); \ } else if (packed->func != glStencilFunc_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glStencilFunc_INDEX); \ if (! packed) { \ mock_errorf("glStencilFunc missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glStencilFunc:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != func) { \ match = 0; \ } \ if (packed->args.a2 != ref) { \ match = 0; \ } \ if (packed->args.a3 != mask) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glStencilFunc(0x%04X, %d, %u);\n", func, ref, mask); \ } \ } \ } #define pack_glStencilMask(mask) ({ \ glStencilMask_INDEXED *packed_data = malloc(sizeof(glStencilMask_INDEXED)); \ packed_data->func = glStencilMask_INDEX; \ packed_data->args.a1 = (GLuint)mask; \ packed_data; \ }) #define emit_glStencilMask(mask) { \ mock_push(pack_glStencilMask(mask)); \ } #define test_glStencilMask(mask) { \ glStencilMask_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glStencilMask missing (no calls left)\n"); \ } else if (packed->func != glStencilMask_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glStencilMask_INDEX); \ if (! packed) { \ mock_errorf("glStencilMask missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glStencilMask:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != mask) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glStencilMask(%u);\n", mask); \ } \ } \ } #define pack_glStencilOp(fail, zfail, zpass) ({ \ glStencilOp_INDEXED *packed_data = malloc(sizeof(glStencilOp_INDEXED)); \ packed_data->func = glStencilOp_INDEX; \ packed_data->args.a1 = (GLenum)fail; \ packed_data->args.a2 = (GLenum)zfail; \ packed_data->args.a3 = (GLenum)zpass; \ packed_data; \ }) #define emit_glStencilOp(fail, zfail, zpass) { \ mock_push(pack_glStencilOp(fail, zfail, zpass)); \ } #define test_glStencilOp(fail, zfail, zpass) { \ glStencilOp_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glStencilOp missing (no calls left)\n"); \ } else if (packed->func != glStencilOp_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glStencilOp_INDEX); \ if (! packed) { \ mock_errorf("glStencilOp missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glStencilOp:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != fail) { \ match = 0; \ } \ if (packed->args.a2 != zfail) { \ match = 0; \ } \ if (packed->args.a3 != zpass) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glStencilOp(0x%04X, 0x%04X, 0x%04X);\n", fail, zfail, zpass); \ } \ } \ } #define pack_glTexCoordPointer(size, type, stride, pointer) ({ \ glTexCoordPointer_INDEXED *packed_data = malloc(sizeof(glTexCoordPointer_INDEXED)); \ packed_data->func = glTexCoordPointer_INDEX; \ packed_data->args.a1 = (GLint)size; \ packed_data->args.a2 = (GLenum)type; \ packed_data->args.a3 = (GLsizei)stride; \ packed_data->args.a4 = (GLvoid *)pointer; \ packed_data; \ }) #define emit_glTexCoordPointer(size, type, stride, pointer) { \ mock_push(pack_glTexCoordPointer(size, type, stride, pointer)); \ } #define test_glTexCoordPointer(size, type, stride, pointer) { \ glTexCoordPointer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexCoordPointer missing (no calls left)\n"); \ } else if (packed->func != glTexCoordPointer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexCoordPointer_INDEX); \ if (! packed) { \ mock_errorf("glTexCoordPointer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexCoordPointer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != size) { \ match = 0; \ } \ if (packed->args.a2 != type) { \ match = 0; \ } \ if (packed->args.a3 != stride) { \ match = 0; \ } \ void *a = packed->args.a4, *b = pointer; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pointer)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexCoordPointer(%d, 0x%04X, %d, %p);\n", size, type, stride, pointer); \ } \ } \ } #define pack_glTexEnvf(target, pname, param) ({ \ glTexEnvf_INDEXED *packed_data = malloc(sizeof(glTexEnvf_INDEXED)); \ packed_data->func = glTexEnvf_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat)param; \ packed_data; \ }) #define emit_glTexEnvf(target, pname, param) { \ mock_push(pack_glTexEnvf(target, pname, param)); \ } #define test_glTexEnvf(target, pname, param) { \ glTexEnvf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnvf missing (no calls left)\n"); \ } else if (packed->func != glTexEnvf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnvf_INDEX); \ if (! packed) { \ mock_errorf("glTexEnvf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnvf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnvf(0x%04X, 0x%04X, %0.2f);\n", target, pname, param); \ } \ } \ } #define pack_glTexEnvfv(target, pname, params) ({ \ glTexEnvfv_INDEXED *packed_data = malloc(sizeof(glTexEnvfv_INDEXED)); \ packed_data->func = glTexEnvfv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glTexEnvfv(target, pname, params) { \ mock_push(pack_glTexEnvfv(target, pname, params)); \ } #define test_glTexEnvfv(target, pname, params) { \ glTexEnvfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnvfv missing (no calls left)\n"); \ } else if (packed->func != glTexEnvfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnvfv_INDEX); \ if (! packed) { \ mock_errorf("glTexEnvfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnvfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnvfv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexEnvi(target, pname, param) ({ \ glTexEnvi_INDEXED *packed_data = malloc(sizeof(glTexEnvi_INDEXED)); \ packed_data->func = glTexEnvi_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint)param; \ packed_data; \ }) #define emit_glTexEnvi(target, pname, param) { \ mock_push(pack_glTexEnvi(target, pname, param)); \ } #define test_glTexEnvi(target, pname, param) { \ glTexEnvi_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnvi missing (no calls left)\n"); \ } else if (packed->func != glTexEnvi_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnvi_INDEX); \ if (! packed) { \ mock_errorf("glTexEnvi missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnvi:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnvi(0x%04X, 0x%04X, %d);\n", target, pname, param); \ } \ } \ } #define pack_glTexEnviv(target, pname, params) ({ \ glTexEnviv_INDEXED *packed_data = malloc(sizeof(glTexEnviv_INDEXED)); \ packed_data->func = glTexEnviv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ packed_data; \ }) #define emit_glTexEnviv(target, pname, params) { \ mock_push(pack_glTexEnviv(target, pname, params)); \ } #define test_glTexEnviv(target, pname, params) { \ glTexEnviv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnviv missing (no calls left)\n"); \ } else if (packed->func != glTexEnviv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnviv_INDEX); \ if (! packed) { \ mock_errorf("glTexEnviv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnviv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnviv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexEnvx(target, pname, param) ({ \ glTexEnvx_INDEXED *packed_data = malloc(sizeof(glTexEnvx_INDEXED)); \ packed_data->func = glTexEnvx_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed)param; \ packed_data; \ }) #define emit_glTexEnvx(target, pname, param) { \ mock_push(pack_glTexEnvx(target, pname, param)); \ } #define test_glTexEnvx(target, pname, param) { \ glTexEnvx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnvx missing (no calls left)\n"); \ } else if (packed->func != glTexEnvx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnvx_INDEX); \ if (! packed) { \ mock_errorf("glTexEnvx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnvx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnvx(0x%04X, 0x%04X, %p);\n", target, pname, param); \ } \ } \ } #define pack_glTexEnvxv(target, pname, params) ({ \ glTexEnvxv_INDEXED *packed_data = malloc(sizeof(glTexEnvxv_INDEXED)); \ packed_data->func = glTexEnvxv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glTexEnvxv(target, pname, params) { \ mock_push(pack_glTexEnvxv(target, pname, params)); \ } #define test_glTexEnvxv(target, pname, params) { \ glTexEnvxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexEnvxv missing (no calls left)\n"); \ } else if (packed->func != glTexEnvxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexEnvxv_INDEX); \ if (! packed) { \ mock_errorf("glTexEnvxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexEnvxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexEnvxv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) ({ \ glTexImage2D_INDEXED *packed_data = malloc(sizeof(glTexImage2D_INDEXED)); \ packed_data->func = glTexImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)internalformat; \ packed_data->args.a4 = (GLsizei)width; \ packed_data->args.a5 = (GLsizei)height; \ packed_data->args.a6 = (GLint)border; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLenum)type; \ packed_data->args.a9 = (GLvoid *)pixels; \ packed_data; \ }) #define emit_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) { \ mock_push(pack_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels)); \ } #define test_glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) { \ glTexImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexImage2D missing (no calls left)\n"); \ } else if (packed->func != glTexImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexImage2D_INDEX); \ if (! packed) { \ mock_errorf("glTexImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != internalformat) { \ match = 0; \ } \ if (packed->args.a4 != width) { \ match = 0; \ } \ if (packed->args.a5 != height) { \ match = 0; \ } \ if (packed->args.a6 != border) { \ match = 0; \ } \ if (packed->args.a7 != format) { \ match = 0; \ } \ if (packed->args.a8 != type) { \ match = 0; \ } \ void *a = packed->args.a9, *b = pixels; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pixels)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", target, level, internalformat, width, height, border, format, type, pixels); \ } \ } \ } #define pack_glTexParameterf(target, pname, param) ({ \ glTexParameterf_INDEXED *packed_data = malloc(sizeof(glTexParameterf_INDEXED)); \ packed_data->func = glTexParameterf_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat)param; \ packed_data; \ }) #define emit_glTexParameterf(target, pname, param) { \ mock_push(pack_glTexParameterf(target, pname, param)); \ } #define test_glTexParameterf(target, pname, param) { \ glTexParameterf_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameterf missing (no calls left)\n"); \ } else if (packed->func != glTexParameterf_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameterf_INDEX); \ if (! packed) { \ mock_errorf("glTexParameterf missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameterf:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 - param >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameterf(0x%04X, 0x%04X, %0.2f);\n", target, pname, param); \ } \ } \ } #define pack_glTexParameterfv(target, pname, params) ({ \ glTexParameterfv_INDEXED *packed_data = malloc(sizeof(glTexParameterfv_INDEXED)); \ packed_data->func = glTexParameterfv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfloat *)params; \ packed_data; \ }) #define emit_glTexParameterfv(target, pname, params) { \ mock_push(pack_glTexParameterfv(target, pname, params)); \ } #define test_glTexParameterfv(target, pname, params) { \ glTexParameterfv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameterfv missing (no calls left)\n"); \ } else if (packed->func != glTexParameterfv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameterfv_INDEX); \ if (! packed) { \ mock_errorf("glTexParameterfv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameterfv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameterfv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexParameteri(target, pname, param) ({ \ glTexParameteri_INDEXED *packed_data = malloc(sizeof(glTexParameteri_INDEXED)); \ packed_data->func = glTexParameteri_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint)param; \ packed_data; \ }) #define emit_glTexParameteri(target, pname, param) { \ mock_push(pack_glTexParameteri(target, pname, param)); \ } #define test_glTexParameteri(target, pname, param) { \ glTexParameteri_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameteri missing (no calls left)\n"); \ } else if (packed->func != glTexParameteri_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameteri_INDEX); \ if (! packed) { \ mock_errorf("glTexParameteri missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameteri:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameteri(0x%04X, 0x%04X, %d);\n", target, pname, param); \ } \ } \ } #define pack_glTexParameteriv(target, pname, params) ({ \ glTexParameteriv_INDEXED *packed_data = malloc(sizeof(glTexParameteriv_INDEXED)); \ packed_data->func = glTexParameteriv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLint *)params; \ packed_data; \ }) #define emit_glTexParameteriv(target, pname, params) { \ mock_push(pack_glTexParameteriv(target, pname, params)); \ } #define test_glTexParameteriv(target, pname, params) { \ glTexParameteriv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameteriv missing (no calls left)\n"); \ } else if (packed->func != glTexParameteriv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameteriv_INDEX); \ if (! packed) { \ mock_errorf("glTexParameteriv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameteriv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameteriv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexParameterx(target, pname, param) ({ \ glTexParameterx_INDEXED *packed_data = malloc(sizeof(glTexParameterx_INDEXED)); \ packed_data->func = glTexParameterx_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed)param; \ packed_data; \ }) #define emit_glTexParameterx(target, pname, param) { \ mock_push(pack_glTexParameterx(target, pname, param)); \ } #define test_glTexParameterx(target, pname, param) { \ glTexParameterx_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameterx missing (no calls left)\n"); \ } else if (packed->func != glTexParameterx_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameterx_INDEX); \ if (! packed) { \ mock_errorf("glTexParameterx missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameterx:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ if (packed->args.a3 != param) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameterx(0x%04X, 0x%04X, %p);\n", target, pname, param); \ } \ } \ } #define pack_glTexParameterxv(target, pname, params) ({ \ glTexParameterxv_INDEXED *packed_data = malloc(sizeof(glTexParameterxv_INDEXED)); \ packed_data->func = glTexParameterxv_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLenum)pname; \ packed_data->args.a3 = (GLfixed *)params; \ packed_data; \ }) #define emit_glTexParameterxv(target, pname, params) { \ mock_push(pack_glTexParameterxv(target, pname, params)); \ } #define test_glTexParameterxv(target, pname, params) { \ glTexParameterxv_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexParameterxv missing (no calls left)\n"); \ } else if (packed->func != glTexParameterxv_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexParameterxv_INDEX); \ if (! packed) { \ mock_errorf("glTexParameterxv missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexParameterxv:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != pname) { \ match = 0; \ } \ void *a = packed->args.a3, *b = params; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(params)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexParameterxv(0x%04X, 0x%04X, %p);\n", target, pname, params); \ } \ } \ } #define pack_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) ({ \ glTexSubImage2D_INDEXED *packed_data = malloc(sizeof(glTexSubImage2D_INDEXED)); \ packed_data->func = glTexSubImage2D_INDEX; \ packed_data->args.a1 = (GLenum)target; \ packed_data->args.a2 = (GLint)level; \ packed_data->args.a3 = (GLint)xoffset; \ packed_data->args.a4 = (GLint)yoffset; \ packed_data->args.a5 = (GLsizei)width; \ packed_data->args.a6 = (GLsizei)height; \ packed_data->args.a7 = (GLenum)format; \ packed_data->args.a8 = (GLenum)type; \ packed_data->args.a9 = (GLvoid *)pixels; \ packed_data; \ }) #define emit_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { \ mock_push(pack_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels)); \ } #define test_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { \ glTexSubImage2D_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTexSubImage2D missing (no calls left)\n"); \ } else if (packed->func != glTexSubImage2D_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTexSubImage2D_INDEX); \ if (! packed) { \ mock_errorf("glTexSubImage2D missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTexSubImage2D:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != target) { \ match = 0; \ } \ if (packed->args.a2 != level) { \ match = 0; \ } \ if (packed->args.a3 != xoffset) { \ match = 0; \ } \ if (packed->args.a4 != yoffset) { \ match = 0; \ } \ if (packed->args.a5 != width) { \ match = 0; \ } \ if (packed->args.a6 != height) { \ match = 0; \ } \ if (packed->args.a7 != format) { \ match = 0; \ } \ if (packed->args.a8 != type) { \ match = 0; \ } \ void *a = packed->args.a9, *b = pixels; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pixels)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTexSubImage2D(0x%04X, %d, %d, %d, %d, %d, 0x%04X, 0x%04X, %p);\n", target, level, xoffset, yoffset, width, height, format, type, pixels); \ } \ } \ } #define pack_glTranslatef(x, y, z) ({ \ glTranslatef_INDEXED *packed_data = malloc(sizeof(glTranslatef_INDEXED)); \ packed_data->func = glTranslatef_INDEX; \ packed_data->args.a1 = (GLfloat)x; \ packed_data->args.a2 = (GLfloat)y; \ packed_data->args.a3 = (GLfloat)z; \ packed_data; \ }) #define emit_glTranslatef(x, y, z) { \ mock_push(pack_glTranslatef(x, y, z)); \ } #define test_glTranslatef(x, y, z) { \ glTranslatef_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTranslatef missing (no calls left)\n"); \ } else if (packed->func != glTranslatef_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTranslatef_INDEX); \ if (! packed) { \ mock_errorf("glTranslatef missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTranslatef:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 - x >= 0.01) { \ match = 0; \ } \ if (packed->args.a2 - y >= 0.01) { \ match = 0; \ } \ if (packed->args.a3 - z >= 0.01) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTranslatef(%0.2f, %0.2f, %0.2f);\n", x, y, z); \ } \ } \ } #define pack_glTranslatex(x, y, z) ({ \ glTranslatex_INDEXED *packed_data = malloc(sizeof(glTranslatex_INDEXED)); \ packed_data->func = glTranslatex_INDEX; \ packed_data->args.a1 = (GLfixed)x; \ packed_data->args.a2 = (GLfixed)y; \ packed_data->args.a3 = (GLfixed)z; \ packed_data; \ }) #define emit_glTranslatex(x, y, z) { \ mock_push(pack_glTranslatex(x, y, z)); \ } #define test_glTranslatex(x, y, z) { \ glTranslatex_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glTranslatex missing (no calls left)\n"); \ } else if (packed->func != glTranslatex_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glTranslatex_INDEX); \ if (! packed) { \ mock_errorf("glTranslatex missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glTranslatex:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != x) { \ match = 0; \ } \ if (packed->args.a2 != y) { \ match = 0; \ } \ if (packed->args.a3 != z) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glTranslatex(%p, %p, %p);\n", x, y, z); \ } \ } \ } #define pack_glVertexPointer(size, type, stride, pointer) ({ \ glVertexPointer_INDEXED *packed_data = malloc(sizeof(glVertexPointer_INDEXED)); \ packed_data->func = glVertexPointer_INDEX; \ packed_data->args.a1 = (GLint)size; \ packed_data->args.a2 = (GLenum)type; \ packed_data->args.a3 = (GLsizei)stride; \ packed_data->args.a4 = (GLvoid *)pointer; \ packed_data; \ }) #define emit_glVertexPointer(size, type, stride, pointer) { \ mock_push(pack_glVertexPointer(size, type, stride, pointer)); \ } #define test_glVertexPointer(size, type, stride, pointer) { \ glVertexPointer_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glVertexPointer missing (no calls left)\n"); \ } else if (packed->func != glVertexPointer_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glVertexPointer_INDEX); \ if (! packed) { \ mock_errorf("glVertexPointer missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glVertexPointer:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != size) { \ match = 0; \ } \ if (packed->args.a2 != type) { \ match = 0; \ } \ if (packed->args.a3 != stride) { \ match = 0; \ } \ void *a = packed->args.a4, *b = pointer; \ if (b == NULL && a != NULL || (a != NULL && b != NULL && (memcmp(a, b, sizeof(pointer)) != 0))) { \ ptr_error = 1; \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glVertexPointer(%d, 0x%04X, %d, %p);\n", size, type, stride, pointer); \ } \ } \ } #define pack_glViewport(x, y, width, height) ({ \ glViewport_INDEXED *packed_data = malloc(sizeof(glViewport_INDEXED)); \ packed_data->func = glViewport_INDEX; \ packed_data->args.a1 = (GLint)x; \ packed_data->args.a2 = (GLint)y; \ packed_data->args.a3 = (GLsizei)width; \ packed_data->args.a4 = (GLsizei)height; \ packed_data; \ }) #define emit_glViewport(x, y, width, height) { \ mock_push(pack_glViewport(x, y, width, height)); \ } #define test_glViewport(x, y, width, height) { \ glViewport_INDEXED *packed = mock_cur(); \ if (packed == NULL) { \ mock_errorf("glViewport missing (no calls left)\n"); \ } else if (packed->func != glViewport_INDEX) { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ indexed_call_t *tmp = (indexed_call_t *)packed; \ packed = mock_slide(glViewport_INDEX); \ if (! packed) { \ mock_errorf("glViewport missing\n"); \ } else { \ mock_warningf("unexpected call while looking for glViewport:\n "); \ mock_print(tmp); \ }\ } else { \ if (verbose_test) { \ mock_print(mock_cur()); \ } \ mock_shift(); \ } \ if (packed) { \ int match = 1, ptr_error = 0; \ if (packed->args.a1 != x) { \ match = 0; \ } \ if (packed->args.a2 != y) { \ match = 0; \ } \ if (packed->args.a3 != width) { \ match = 0; \ } \ if (packed->args.a4 != height) { \ match = 0; \ } \ if (! match) { \ mock_errorf("calls do not match:\n"); \ if (ptr_error) { \ printf(" (pointer mismatch)\n"); \ } \ printf(" have: "); mock_print((const indexed_call_t *)packed); \ printf(" want: glViewport(%d, %d, %d, %d);\n", x, y, width, height); \ } \ } \ } #define gles_glActiveTexture_INDEX 1 #define gles_glActiveTexture_RETURN void #define gles_glActiveTexture_ARG_NAMES texture #define gles_glActiveTexture_ARG_EXPAND GLenum texture #define gles_glActiveTexture_PACKED PACKED_void_GLenum #define gles_glActiveTexture_INDEXED INDEXED_void_GLenum #define gles_glActiveTexture_FORMAT FORMAT_void_GLenum #define gles_glAlphaFunc_INDEX 2 #define gles_glAlphaFunc_RETURN void #define gles_glAlphaFunc_ARG_NAMES func, ref #define gles_glAlphaFunc_ARG_EXPAND GLenum func, GLclampf ref #define gles_glAlphaFunc_PACKED PACKED_void_GLenum_GLclampf #define gles_glAlphaFunc_INDEXED INDEXED_void_GLenum_GLclampf #define gles_glAlphaFunc_FORMAT FORMAT_void_GLenum_GLclampf #define gles_glAlphaFuncx_INDEX 3 #define gles_glAlphaFuncx_RETURN void #define gles_glAlphaFuncx_ARG_NAMES func, ref #define gles_glAlphaFuncx_ARG_EXPAND GLenum func, GLclampx ref #define gles_glAlphaFuncx_PACKED PACKED_void_GLenum_GLclampx #define gles_glAlphaFuncx_INDEXED INDEXED_void_GLenum_GLclampx #define gles_glAlphaFuncx_FORMAT FORMAT_void_GLenum_GLclampx #define gles_glBindBuffer_INDEX 4 #define gles_glBindBuffer_RETURN void #define gles_glBindBuffer_ARG_NAMES target, buffer #define gles_glBindBuffer_ARG_EXPAND GLenum target, GLuint buffer #define gles_glBindBuffer_PACKED PACKED_void_GLenum_GLuint #define gles_glBindBuffer_INDEXED INDEXED_void_GLenum_GLuint #define gles_glBindBuffer_FORMAT FORMAT_void_GLenum_GLuint #define gles_glBindTexture_INDEX 5 #define gles_glBindTexture_RETURN void #define gles_glBindTexture_ARG_NAMES target, texture #define gles_glBindTexture_ARG_EXPAND GLenum target, GLuint texture #define gles_glBindTexture_PACKED PACKED_void_GLenum_GLuint #define gles_glBindTexture_INDEXED INDEXED_void_GLenum_GLuint #define gles_glBindTexture_FORMAT FORMAT_void_GLenum_GLuint #define gles_glBlendColorOES_INDEX 6 #define gles_glBlendColorOES_RETURN void #define gles_glBlendColorOES_ARG_NAMES red, green, blue, alpha #define gles_glBlendColorOES_ARG_EXPAND GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha #define gles_glBlendColorOES_PACKED PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glBlendColorOES_INDEXED INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glBlendColorOES_FORMAT FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glBlendEquationOES_INDEX 7 #define gles_glBlendEquationOES_RETURN void #define gles_glBlendEquationOES_ARG_NAMES mode #define gles_glBlendEquationOES_ARG_EXPAND GLenum mode #define gles_glBlendEquationOES_PACKED PACKED_void_GLenum #define gles_glBlendEquationOES_INDEXED INDEXED_void_GLenum #define gles_glBlendEquationOES_FORMAT FORMAT_void_GLenum #define gles_glBlendEquationSeparateOES_INDEX 8 #define gles_glBlendEquationSeparateOES_RETURN void #define gles_glBlendEquationSeparateOES_ARG_NAMES modeRGB, modeAlpha #define gles_glBlendEquationSeparateOES_ARG_EXPAND GLenum modeRGB, GLenum modeAlpha #define gles_glBlendEquationSeparateOES_PACKED PACKED_void_GLenum_GLenum #define gles_glBlendEquationSeparateOES_INDEXED INDEXED_void_GLenum_GLenum #define gles_glBlendEquationSeparateOES_FORMAT FORMAT_void_GLenum_GLenum #define gles_glBlendFunc_INDEX 9 #define gles_glBlendFunc_RETURN void #define gles_glBlendFunc_ARG_NAMES sfactor, dfactor #define gles_glBlendFunc_ARG_EXPAND GLenum sfactor, GLenum dfactor #define gles_glBlendFunc_PACKED PACKED_void_GLenum_GLenum #define gles_glBlendFunc_INDEXED INDEXED_void_GLenum_GLenum #define gles_glBlendFunc_FORMAT FORMAT_void_GLenum_GLenum #define gles_glBlendFuncSeparateOES_INDEX 10 #define gles_glBlendFuncSeparateOES_RETURN void #define gles_glBlendFuncSeparateOES_ARG_NAMES sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha #define gles_glBlendFuncSeparateOES_ARG_EXPAND GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha #define gles_glBlendFuncSeparateOES_PACKED PACKED_void_GLenum_GLenum_GLenum_GLenum #define gles_glBlendFuncSeparateOES_INDEXED INDEXED_void_GLenum_GLenum_GLenum_GLenum #define gles_glBlendFuncSeparateOES_FORMAT FORMAT_void_GLenum_GLenum_GLenum_GLenum #define gles_glBufferData_INDEX 11 #define gles_glBufferData_RETURN void #define gles_glBufferData_ARG_NAMES target, size, data, usage #define gles_glBufferData_ARG_EXPAND GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage #define gles_glBufferData_PACKED PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define gles_glBufferData_INDEXED INDEXED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define gles_glBufferData_FORMAT FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum #define gles_glBufferSubData_INDEX 12 #define gles_glBufferSubData_RETURN void #define gles_glBufferSubData_ARG_NAMES target, offset, size, data #define gles_glBufferSubData_ARG_EXPAND GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data #define gles_glBufferSubData_PACKED PACKED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define gles_glBufferSubData_INDEXED INDEXED_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define gles_glBufferSubData_FORMAT FORMAT_void_GLenum_GLintptr_GLsizeiptr_const_GLvoid___GENPT__ #define gles_glClear_INDEX 13 #define gles_glClear_RETURN void #define gles_glClear_ARG_NAMES mask #define gles_glClear_ARG_EXPAND GLbitfield mask #define gles_glClear_PACKED PACKED_void_GLbitfield #define gles_glClear_INDEXED INDEXED_void_GLbitfield #define gles_glClear_FORMAT FORMAT_void_GLbitfield #define gles_glClearColor_INDEX 14 #define gles_glClearColor_RETURN void #define gles_glClearColor_ARG_NAMES red, green, blue, alpha #define gles_glClearColor_ARG_EXPAND GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha #define gles_glClearColor_PACKED PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glClearColor_INDEXED INDEXED_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glClearColor_FORMAT FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf #define gles_glClearColorx_INDEX 15 #define gles_glClearColorx_RETURN void #define gles_glClearColorx_ARG_NAMES red, green, blue, alpha #define gles_glClearColorx_ARG_EXPAND GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha #define gles_glClearColorx_PACKED PACKED_void_GLclampx_GLclampx_GLclampx_GLclampx #define gles_glClearColorx_INDEXED INDEXED_void_GLclampx_GLclampx_GLclampx_GLclampx #define gles_glClearColorx_FORMAT FORMAT_void_GLclampx_GLclampx_GLclampx_GLclampx #define gles_glClearDepthf_INDEX 16 #define gles_glClearDepthf_RETURN void #define gles_glClearDepthf_ARG_NAMES depth #define gles_glClearDepthf_ARG_EXPAND GLclampf depth #define gles_glClearDepthf_PACKED PACKED_void_GLclampf #define gles_glClearDepthf_INDEXED INDEXED_void_GLclampf #define gles_glClearDepthf_FORMAT FORMAT_void_GLclampf #define gles_glClearDepthx_INDEX 17 #define gles_glClearDepthx_RETURN void #define gles_glClearDepthx_ARG_NAMES depth #define gles_glClearDepthx_ARG_EXPAND GLclampx depth #define gles_glClearDepthx_PACKED PACKED_void_GLclampx #define gles_glClearDepthx_INDEXED INDEXED_void_GLclampx #define gles_glClearDepthx_FORMAT FORMAT_void_GLclampx #define gles_glClearStencil_INDEX 18 #define gles_glClearStencil_RETURN void #define gles_glClearStencil_ARG_NAMES s #define gles_glClearStencil_ARG_EXPAND GLint s #define gles_glClearStencil_PACKED PACKED_void_GLint #define gles_glClearStencil_INDEXED INDEXED_void_GLint #define gles_glClearStencil_FORMAT FORMAT_void_GLint #define gles_glClientActiveTexture_INDEX 19 #define gles_glClientActiveTexture_RETURN void #define gles_glClientActiveTexture_ARG_NAMES texture #define gles_glClientActiveTexture_ARG_EXPAND GLenum texture #define gles_glClientActiveTexture_PACKED PACKED_void_GLenum #define gles_glClientActiveTexture_INDEXED INDEXED_void_GLenum #define gles_glClientActiveTexture_FORMAT FORMAT_void_GLenum #define gles_glClipPlanef_INDEX 20 #define gles_glClipPlanef_RETURN void #define gles_glClipPlanef_ARG_NAMES plane, equation #define gles_glClipPlanef_ARG_EXPAND GLenum plane, const GLfloat * equation #define gles_glClipPlanef_PACKED PACKED_void_GLenum_const_GLfloat___GENPT__ #define gles_glClipPlanef_INDEXED INDEXED_void_GLenum_const_GLfloat___GENPT__ #define gles_glClipPlanef_FORMAT FORMAT_void_GLenum_const_GLfloat___GENPT__ #define gles_glClipPlanex_INDEX 21 #define gles_glClipPlanex_RETURN void #define gles_glClipPlanex_ARG_NAMES plane, equation #define gles_glClipPlanex_ARG_EXPAND GLenum plane, const GLfixed * equation #define gles_glClipPlanex_PACKED PACKED_void_GLenum_const_GLfixed___GENPT__ #define gles_glClipPlanex_INDEXED INDEXED_void_GLenum_const_GLfixed___GENPT__ #define gles_glClipPlanex_FORMAT FORMAT_void_GLenum_const_GLfixed___GENPT__ #define gles_glColor4f_INDEX 22 #define gles_glColor4f_RETURN void #define gles_glColor4f_ARG_NAMES red, green, blue, alpha #define gles_glColor4f_ARG_EXPAND GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha #define gles_glColor4f_PACKED PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glColor4f_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glColor4f_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glColor4ub_INDEX 23 #define gles_glColor4ub_RETURN void #define gles_glColor4ub_ARG_NAMES red, green, blue, alpha #define gles_glColor4ub_ARG_EXPAND GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha #define gles_glColor4ub_PACKED PACKED_void_GLubyte_GLubyte_GLubyte_GLubyte #define gles_glColor4ub_INDEXED INDEXED_void_GLubyte_GLubyte_GLubyte_GLubyte #define gles_glColor4ub_FORMAT FORMAT_void_GLubyte_GLubyte_GLubyte_GLubyte #define gles_glColor4x_INDEX 24 #define gles_glColor4x_RETURN void #define gles_glColor4x_ARG_NAMES red, green, blue, alpha #define gles_glColor4x_ARG_EXPAND GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha #define gles_glColor4x_PACKED PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glColor4x_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glColor4x_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glColorMask_INDEX 25 #define gles_glColorMask_RETURN void #define gles_glColorMask_ARG_NAMES red, green, blue, alpha #define gles_glColorMask_ARG_EXPAND GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha #define gles_glColorMask_PACKED PACKED_void_GLboolean_GLboolean_GLboolean_GLboolean #define gles_glColorMask_INDEXED INDEXED_void_GLboolean_GLboolean_GLboolean_GLboolean #define gles_glColorMask_FORMAT FORMAT_void_GLboolean_GLboolean_GLboolean_GLboolean #define gles_glColorPointer_INDEX 26 #define gles_glColorPointer_RETURN void #define gles_glColorPointer_ARG_NAMES size, type, stride, pointer #define gles_glColorPointer_ARG_EXPAND GLint size, GLenum type, GLsizei stride, const GLvoid * pointer #define gles_glColorPointer_PACKED PACKED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glColorPointer_INDEXED INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glColorPointer_FORMAT FORMAT_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexImage2D_INDEX 27 #define gles_glCompressedTexImage2D_RETURN void #define gles_glCompressedTexImage2D_ARG_NAMES target, level, internalformat, width, height, border, imageSize, data #define gles_glCompressedTexImage2D_ARG_EXPAND GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data #define gles_glCompressedTexImage2D_PACKED PACKED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLenum_GLsizei_GLsizei_GLint_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexSubImage2D_INDEX 28 #define gles_glCompressedTexSubImage2D_RETURN void #define gles_glCompressedTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, width, height, format, imageSize, data #define gles_glCompressedTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data #define gles_glCompressedTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glCompressedTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glCopyTexImage2D_INDEX 29 #define gles_glCopyTexImage2D_RETURN void #define gles_glCopyTexImage2D_ARG_NAMES target, level, internalformat, x, y, width, height, border #define gles_glCopyTexImage2D_ARG_EXPAND GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border #define gles_glCopyTexImage2D_PACKED PACKED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define gles_glCopyTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define gles_glCopyTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint #define gles_glCopyTexSubImage2D_INDEX 30 #define gles_glCopyTexSubImage2D_RETURN void #define gles_glCopyTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, x, y, width, height #define gles_glCopyTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height #define gles_glCopyTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define gles_glCopyTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define gles_glCopyTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei #define gles_glCullFace_INDEX 31 #define gles_glCullFace_RETURN void #define gles_glCullFace_ARG_NAMES mode #define gles_glCullFace_ARG_EXPAND GLenum mode #define gles_glCullFace_PACKED PACKED_void_GLenum #define gles_glCullFace_INDEXED INDEXED_void_GLenum #define gles_glCullFace_FORMAT FORMAT_void_GLenum #define gles_glDeleteBuffers_INDEX 32 #define gles_glDeleteBuffers_RETURN void #define gles_glDeleteBuffers_ARG_NAMES n, buffers #define gles_glDeleteBuffers_ARG_EXPAND GLsizei n, const GLuint * buffers #define gles_glDeleteBuffers_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define gles_glDeleteBuffers_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define gles_glDeleteBuffers_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define gles_glDeleteTextures_INDEX 33 #define gles_glDeleteTextures_RETURN void #define gles_glDeleteTextures_ARG_NAMES n, textures #define gles_glDeleteTextures_ARG_EXPAND GLsizei n, const GLuint * textures #define gles_glDeleteTextures_PACKED PACKED_void_GLsizei_const_GLuint___GENPT__ #define gles_glDeleteTextures_INDEXED INDEXED_void_GLsizei_const_GLuint___GENPT__ #define gles_glDeleteTextures_FORMAT FORMAT_void_GLsizei_const_GLuint___GENPT__ #define gles_glDepthFunc_INDEX 34 #define gles_glDepthFunc_RETURN void #define gles_glDepthFunc_ARG_NAMES func #define gles_glDepthFunc_ARG_EXPAND GLenum func #define gles_glDepthFunc_PACKED PACKED_void_GLenum #define gles_glDepthFunc_INDEXED INDEXED_void_GLenum #define gles_glDepthFunc_FORMAT FORMAT_void_GLenum #define gles_glDepthMask_INDEX 35 #define gles_glDepthMask_RETURN void #define gles_glDepthMask_ARG_NAMES flag #define gles_glDepthMask_ARG_EXPAND GLboolean flag #define gles_glDepthMask_PACKED PACKED_void_GLboolean #define gles_glDepthMask_INDEXED INDEXED_void_GLboolean #define gles_glDepthMask_FORMAT FORMAT_void_GLboolean #define gles_glDepthRangef_INDEX 36 #define gles_glDepthRangef_RETURN void #define gles_glDepthRangef_ARG_NAMES near, far #define gles_glDepthRangef_ARG_EXPAND GLclampf near, GLclampf far #define gles_glDepthRangef_PACKED PACKED_void_GLclampf_GLclampf #define gles_glDepthRangef_INDEXED INDEXED_void_GLclampf_GLclampf #define gles_glDepthRangef_FORMAT FORMAT_void_GLclampf_GLclampf #define gles_glDepthRangex_INDEX 37 #define gles_glDepthRangex_RETURN void #define gles_glDepthRangex_ARG_NAMES near, far #define gles_glDepthRangex_ARG_EXPAND GLclampx near, GLclampx far #define gles_glDepthRangex_PACKED PACKED_void_GLclampx_GLclampx #define gles_glDepthRangex_INDEXED INDEXED_void_GLclampx_GLclampx #define gles_glDepthRangex_FORMAT FORMAT_void_GLclampx_GLclampx #define gles_glDisable_INDEX 38 #define gles_glDisable_RETURN void #define gles_glDisable_ARG_NAMES cap #define gles_glDisable_ARG_EXPAND GLenum cap #define gles_glDisable_PACKED PACKED_void_GLenum #define gles_glDisable_INDEXED INDEXED_void_GLenum #define gles_glDisable_FORMAT FORMAT_void_GLenum #define gles_glDisableClientState_INDEX 39 #define gles_glDisableClientState_RETURN void #define gles_glDisableClientState_ARG_NAMES array #define gles_glDisableClientState_ARG_EXPAND GLenum array #define gles_glDisableClientState_PACKED PACKED_void_GLenum #define gles_glDisableClientState_INDEXED INDEXED_void_GLenum #define gles_glDisableClientState_FORMAT FORMAT_void_GLenum #define gles_glDrawArrays_INDEX 40 #define gles_glDrawArrays_RETURN void #define gles_glDrawArrays_ARG_NAMES mode, first, count #define gles_glDrawArrays_ARG_EXPAND GLenum mode, GLint first, GLsizei count #define gles_glDrawArrays_PACKED PACKED_void_GLenum_GLint_GLsizei #define gles_glDrawArrays_INDEXED INDEXED_void_GLenum_GLint_GLsizei #define gles_glDrawArrays_FORMAT FORMAT_void_GLenum_GLint_GLsizei #define gles_glDrawElements_INDEX 41 #define gles_glDrawElements_RETURN void #define gles_glDrawElements_ARG_NAMES mode, count, type, indices #define gles_glDrawElements_ARG_EXPAND GLenum mode, GLsizei count, GLenum type, const GLvoid * indices #define gles_glDrawElements_PACKED PACKED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define gles_glDrawElements_INDEXED INDEXED_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define gles_glDrawElements_FORMAT FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__ #define gles_glEnable_INDEX 42 #define gles_glEnable_RETURN void #define gles_glEnable_ARG_NAMES cap #define gles_glEnable_ARG_EXPAND GLenum cap #define gles_glEnable_PACKED PACKED_void_GLenum #define gles_glEnable_INDEXED INDEXED_void_GLenum #define gles_glEnable_FORMAT FORMAT_void_GLenum #define gles_glEnableClientState_INDEX 43 #define gles_glEnableClientState_RETURN void #define gles_glEnableClientState_ARG_NAMES array #define gles_glEnableClientState_ARG_EXPAND GLenum array #define gles_glEnableClientState_PACKED PACKED_void_GLenum #define gles_glEnableClientState_INDEXED INDEXED_void_GLenum #define gles_glEnableClientState_FORMAT FORMAT_void_GLenum #define gles_glFinish_INDEX 44 #define gles_glFinish_RETURN void #define gles_glFinish_ARG_NAMES #define gles_glFinish_ARG_EXPAND #define gles_glFinish_PACKED PACKED_void #define gles_glFinish_INDEXED INDEXED_void #define gles_glFinish_FORMAT FORMAT_void #define gles_glFlush_INDEX 45 #define gles_glFlush_RETURN void #define gles_glFlush_ARG_NAMES #define gles_glFlush_ARG_EXPAND #define gles_glFlush_PACKED PACKED_void #define gles_glFlush_INDEXED INDEXED_void #define gles_glFlush_FORMAT FORMAT_void #define gles_glFogf_INDEX 46 #define gles_glFogf_RETURN void #define gles_glFogf_ARG_NAMES pname, param #define gles_glFogf_ARG_EXPAND GLenum pname, GLfloat param #define gles_glFogf_PACKED PACKED_void_GLenum_GLfloat #define gles_glFogf_INDEXED INDEXED_void_GLenum_GLfloat #define gles_glFogf_FORMAT FORMAT_void_GLenum_GLfloat #define gles_glFogfv_INDEX 47 #define gles_glFogfv_RETURN void #define gles_glFogfv_ARG_NAMES pname, params #define gles_glFogfv_ARG_EXPAND GLenum pname, const GLfloat * params #define gles_glFogfv_PACKED PACKED_void_GLenum_const_GLfloat___GENPT__ #define gles_glFogfv_INDEXED INDEXED_void_GLenum_const_GLfloat___GENPT__ #define gles_glFogfv_FORMAT FORMAT_void_GLenum_const_GLfloat___GENPT__ #define gles_glFogx_INDEX 48 #define gles_glFogx_RETURN void #define gles_glFogx_ARG_NAMES pname, param #define gles_glFogx_ARG_EXPAND GLenum pname, GLfixed param #define gles_glFogx_PACKED PACKED_void_GLenum_GLfixed #define gles_glFogx_INDEXED INDEXED_void_GLenum_GLfixed #define gles_glFogx_FORMAT FORMAT_void_GLenum_GLfixed #define gles_glFogxv_INDEX 49 #define gles_glFogxv_RETURN void #define gles_glFogxv_ARG_NAMES pname, params #define gles_glFogxv_ARG_EXPAND GLenum pname, const GLfixed * params #define gles_glFogxv_PACKED PACKED_void_GLenum_const_GLfixed___GENPT__ #define gles_glFogxv_INDEXED INDEXED_void_GLenum_const_GLfixed___GENPT__ #define gles_glFogxv_FORMAT FORMAT_void_GLenum_const_GLfixed___GENPT__ #define gles_glFrontFace_INDEX 50 #define gles_glFrontFace_RETURN void #define gles_glFrontFace_ARG_NAMES mode #define gles_glFrontFace_ARG_EXPAND GLenum mode #define gles_glFrontFace_PACKED PACKED_void_GLenum #define gles_glFrontFace_INDEXED INDEXED_void_GLenum #define gles_glFrontFace_FORMAT FORMAT_void_GLenum #define gles_glFrustumf_INDEX 51 #define gles_glFrustumf_RETURN void #define gles_glFrustumf_ARG_NAMES left, right, bottom, top, near, far #define gles_glFrustumf_ARG_EXPAND GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far #define gles_glFrustumf_PACKED PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glFrustumf_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glFrustumf_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glFrustumx_INDEX 52 #define gles_glFrustumx_RETURN void #define gles_glFrustumx_ARG_NAMES left, right, bottom, top, near, far #define gles_glFrustumx_ARG_EXPAND GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far #define gles_glFrustumx_PACKED PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glFrustumx_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glFrustumx_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glGenBuffers_INDEX 53 #define gles_glGenBuffers_RETURN void #define gles_glGenBuffers_ARG_NAMES n, buffers #define gles_glGenBuffers_ARG_EXPAND GLsizei n, GLuint * buffers #define gles_glGenBuffers_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define gles_glGenBuffers_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define gles_glGenBuffers_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define gles_glGenTextures_INDEX 54 #define gles_glGenTextures_RETURN void #define gles_glGenTextures_ARG_NAMES n, textures #define gles_glGenTextures_ARG_EXPAND GLsizei n, GLuint * textures #define gles_glGenTextures_PACKED PACKED_void_GLsizei_GLuint___GENPT__ #define gles_glGenTextures_INDEXED INDEXED_void_GLsizei_GLuint___GENPT__ #define gles_glGenTextures_FORMAT FORMAT_void_GLsizei_GLuint___GENPT__ #define gles_glGetBooleanv_INDEX 55 #define gles_glGetBooleanv_RETURN void #define gles_glGetBooleanv_ARG_NAMES pname, params #define gles_glGetBooleanv_ARG_EXPAND GLenum pname, GLboolean * params #define gles_glGetBooleanv_PACKED PACKED_void_GLenum_GLboolean___GENPT__ #define gles_glGetBooleanv_INDEXED INDEXED_void_GLenum_GLboolean___GENPT__ #define gles_glGetBooleanv_FORMAT FORMAT_void_GLenum_GLboolean___GENPT__ #define gles_glGetBufferParameteriv_INDEX 56 #define gles_glGetBufferParameteriv_RETURN void #define gles_glGetBufferParameteriv_ARG_NAMES target, pname, params #define gles_glGetBufferParameteriv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define gles_glGetBufferParameteriv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetBufferParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetBufferParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetClipPlanef_INDEX 57 #define gles_glGetClipPlanef_RETURN void #define gles_glGetClipPlanef_ARG_NAMES plane, equation #define gles_glGetClipPlanef_ARG_EXPAND GLenum plane, GLfloat * equation #define gles_glGetClipPlanef_PACKED PACKED_void_GLenum_GLfloat___GENPT__ #define gles_glGetClipPlanef_INDEXED INDEXED_void_GLenum_GLfloat___GENPT__ #define gles_glGetClipPlanef_FORMAT FORMAT_void_GLenum_GLfloat___GENPT__ #define gles_glGetClipPlanex_INDEX 58 #define gles_glGetClipPlanex_RETURN void #define gles_glGetClipPlanex_ARG_NAMES plane, equation #define gles_glGetClipPlanex_ARG_EXPAND GLenum plane, GLfixed * equation #define gles_glGetClipPlanex_PACKED PACKED_void_GLenum_GLfixed___GENPT__ #define gles_glGetClipPlanex_INDEXED INDEXED_void_GLenum_GLfixed___GENPT__ #define gles_glGetClipPlanex_FORMAT FORMAT_void_GLenum_GLfixed___GENPT__ #define gles_glGetError_INDEX 59 #define gles_glGetError_RETURN GLenum #define gles_glGetError_ARG_NAMES #define gles_glGetError_ARG_EXPAND #define gles_glGetError_PACKED PACKED_GLenum #define gles_glGetError_INDEXED INDEXED_GLenum #define gles_glGetError_FORMAT FORMAT_GLenum #define gles_glGetFixedv_INDEX 60 #define gles_glGetFixedv_RETURN void #define gles_glGetFixedv_ARG_NAMES pname, params #define gles_glGetFixedv_ARG_EXPAND GLenum pname, GLfixed * params #define gles_glGetFixedv_PACKED PACKED_void_GLenum_GLfixed___GENPT__ #define gles_glGetFixedv_INDEXED INDEXED_void_GLenum_GLfixed___GENPT__ #define gles_glGetFixedv_FORMAT FORMAT_void_GLenum_GLfixed___GENPT__ #define gles_glGetFloatv_INDEX 61 #define gles_glGetFloatv_RETURN void #define gles_glGetFloatv_ARG_NAMES pname, params #define gles_glGetFloatv_ARG_EXPAND GLenum pname, GLfloat * params #define gles_glGetFloatv_PACKED PACKED_void_GLenum_GLfloat___GENPT__ #define gles_glGetFloatv_INDEXED INDEXED_void_GLenum_GLfloat___GENPT__ #define gles_glGetFloatv_FORMAT FORMAT_void_GLenum_GLfloat___GENPT__ #define gles_glGetIntegerv_INDEX 62 #define gles_glGetIntegerv_RETURN void #define gles_glGetIntegerv_ARG_NAMES pname, params #define gles_glGetIntegerv_ARG_EXPAND GLenum pname, GLint * params #define gles_glGetIntegerv_PACKED PACKED_void_GLenum_GLint___GENPT__ #define gles_glGetIntegerv_INDEXED INDEXED_void_GLenum_GLint___GENPT__ #define gles_glGetIntegerv_FORMAT FORMAT_void_GLenum_GLint___GENPT__ #define gles_glGetLightfv_INDEX 63 #define gles_glGetLightfv_RETURN void #define gles_glGetLightfv_ARG_NAMES light, pname, params #define gles_glGetLightfv_ARG_EXPAND GLenum light, GLenum pname, GLfloat * params #define gles_glGetLightfv_PACKED PACKED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetLightfv_INDEXED INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetLightfv_FORMAT FORMAT_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetLightxv_INDEX 64 #define gles_glGetLightxv_RETURN void #define gles_glGetLightxv_ARG_NAMES light, pname, params #define gles_glGetLightxv_ARG_EXPAND GLenum light, GLenum pname, GLfixed * params #define gles_glGetLightxv_PACKED PACKED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetLightxv_INDEXED INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetLightxv_FORMAT FORMAT_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetMaterialfv_INDEX 65 #define gles_glGetMaterialfv_RETURN void #define gles_glGetMaterialfv_ARG_NAMES face, pname, params #define gles_glGetMaterialfv_ARG_EXPAND GLenum face, GLenum pname, GLfloat * params #define gles_glGetMaterialfv_PACKED PACKED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetMaterialfv_INDEXED INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetMaterialfv_FORMAT FORMAT_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetMaterialxv_INDEX 66 #define gles_glGetMaterialxv_RETURN void #define gles_glGetMaterialxv_ARG_NAMES face, pname, params #define gles_glGetMaterialxv_ARG_EXPAND GLenum face, GLenum pname, GLfixed * params #define gles_glGetMaterialxv_PACKED PACKED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetMaterialxv_INDEXED INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetMaterialxv_FORMAT FORMAT_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetPointerv_INDEX 67 #define gles_glGetPointerv_RETURN void #define gles_glGetPointerv_ARG_NAMES pname, params #define gles_glGetPointerv_ARG_EXPAND GLenum pname, GLvoid ** params #define gles_glGetPointerv_PACKED PACKED_void_GLenum_GLvoid___GENPT____GENPT__ #define gles_glGetPointerv_INDEXED INDEXED_void_GLenum_GLvoid___GENPT____GENPT__ #define gles_glGetPointerv_FORMAT FORMAT_void_GLenum_GLvoid___GENPT____GENPT__ #define gles_glGetString_INDEX 68 #define gles_glGetString_RETURN const GLubyte * #define gles_glGetString_ARG_NAMES name #define gles_glGetString_ARG_EXPAND GLenum name #define gles_glGetString_PACKED PACKED_const_GLubyte___GENPT___GLenum #define gles_glGetString_INDEXED INDEXED_const_GLubyte___GENPT___GLenum #define gles_glGetString_FORMAT FORMAT_const_GLubyte___GENPT___GLenum #define gles_glGetTexEnvfv_INDEX 69 #define gles_glGetTexEnvfv_RETURN void #define gles_glGetTexEnvfv_ARG_NAMES target, pname, params #define gles_glGetTexEnvfv_ARG_EXPAND GLenum target, GLenum pname, GLfloat * params #define gles_glGetTexEnvfv_PACKED PACKED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexEnvfv_INDEXED INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexEnvfv_FORMAT FORMAT_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexEnviv_INDEX 70 #define gles_glGetTexEnviv_RETURN void #define gles_glGetTexEnviv_ARG_NAMES target, pname, params #define gles_glGetTexEnviv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define gles_glGetTexEnviv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexEnviv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexEnviv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexEnvxv_INDEX 71 #define gles_glGetTexEnvxv_RETURN void #define gles_glGetTexEnvxv_ARG_NAMES target, pname, params #define gles_glGetTexEnvxv_ARG_EXPAND GLenum target, GLenum pname, GLfixed * params #define gles_glGetTexEnvxv_PACKED PACKED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetTexEnvxv_INDEXED INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetTexEnvxv_FORMAT FORMAT_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetTexParameterfv_INDEX 72 #define gles_glGetTexParameterfv_RETURN void #define gles_glGetTexParameterfv_ARG_NAMES target, pname, params #define gles_glGetTexParameterfv_ARG_EXPAND GLenum target, GLenum pname, GLfloat * params #define gles_glGetTexParameterfv_PACKED PACKED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexParameterfv_INDEXED INDEXED_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexParameterfv_FORMAT FORMAT_void_GLenum_GLenum_GLfloat___GENPT__ #define gles_glGetTexParameteriv_INDEX 73 #define gles_glGetTexParameteriv_RETURN void #define gles_glGetTexParameteriv_ARG_NAMES target, pname, params #define gles_glGetTexParameteriv_ARG_EXPAND GLenum target, GLenum pname, GLint * params #define gles_glGetTexParameteriv_PACKED PACKED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexParameteriv_INDEXED INDEXED_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexParameteriv_FORMAT FORMAT_void_GLenum_GLenum_GLint___GENPT__ #define gles_glGetTexParameterxv_INDEX 74 #define gles_glGetTexParameterxv_RETURN void #define gles_glGetTexParameterxv_ARG_NAMES target, pname, params #define gles_glGetTexParameterxv_ARG_EXPAND GLenum target, GLenum pname, GLfixed * params #define gles_glGetTexParameterxv_PACKED PACKED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetTexParameterxv_INDEXED INDEXED_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glGetTexParameterxv_FORMAT FORMAT_void_GLenum_GLenum_GLfixed___GENPT__ #define gles_glHint_INDEX 75 #define gles_glHint_RETURN void #define gles_glHint_ARG_NAMES target, mode #define gles_glHint_ARG_EXPAND GLenum target, GLenum mode #define gles_glHint_PACKED PACKED_void_GLenum_GLenum #define gles_glHint_INDEXED INDEXED_void_GLenum_GLenum #define gles_glHint_FORMAT FORMAT_void_GLenum_GLenum #define gles_glIsBuffer_INDEX 76 #define gles_glIsBuffer_RETURN GLboolean #define gles_glIsBuffer_ARG_NAMES buffer #define gles_glIsBuffer_ARG_EXPAND GLuint buffer #define gles_glIsBuffer_PACKED PACKED_GLboolean_GLuint #define gles_glIsBuffer_INDEXED INDEXED_GLboolean_GLuint #define gles_glIsBuffer_FORMAT FORMAT_GLboolean_GLuint #define gles_glIsEnabled_INDEX 77 #define gles_glIsEnabled_RETURN GLboolean #define gles_glIsEnabled_ARG_NAMES cap #define gles_glIsEnabled_ARG_EXPAND GLenum cap #define gles_glIsEnabled_PACKED PACKED_GLboolean_GLenum #define gles_glIsEnabled_INDEXED INDEXED_GLboolean_GLenum #define gles_glIsEnabled_FORMAT FORMAT_GLboolean_GLenum #define gles_glIsTexture_INDEX 78 #define gles_glIsTexture_RETURN GLboolean #define gles_glIsTexture_ARG_NAMES texture #define gles_glIsTexture_ARG_EXPAND GLuint texture #define gles_glIsTexture_PACKED PACKED_GLboolean_GLuint #define gles_glIsTexture_INDEXED INDEXED_GLboolean_GLuint #define gles_glIsTexture_FORMAT FORMAT_GLboolean_GLuint #define gles_glLightModelf_INDEX 79 #define gles_glLightModelf_RETURN void #define gles_glLightModelf_ARG_NAMES pname, param #define gles_glLightModelf_ARG_EXPAND GLenum pname, GLfloat param #define gles_glLightModelf_PACKED PACKED_void_GLenum_GLfloat #define gles_glLightModelf_INDEXED INDEXED_void_GLenum_GLfloat #define gles_glLightModelf_FORMAT FORMAT_void_GLenum_GLfloat #define gles_glLightModelfv_INDEX 80 #define gles_glLightModelfv_RETURN void #define gles_glLightModelfv_ARG_NAMES pname, params #define gles_glLightModelfv_ARG_EXPAND GLenum pname, const GLfloat * params #define gles_glLightModelfv_PACKED PACKED_void_GLenum_const_GLfloat___GENPT__ #define gles_glLightModelfv_INDEXED INDEXED_void_GLenum_const_GLfloat___GENPT__ #define gles_glLightModelfv_FORMAT FORMAT_void_GLenum_const_GLfloat___GENPT__ #define gles_glLightModelx_INDEX 81 #define gles_glLightModelx_RETURN void #define gles_glLightModelx_ARG_NAMES pname, param #define gles_glLightModelx_ARG_EXPAND GLenum pname, GLfixed param #define gles_glLightModelx_PACKED PACKED_void_GLenum_GLfixed #define gles_glLightModelx_INDEXED INDEXED_void_GLenum_GLfixed #define gles_glLightModelx_FORMAT FORMAT_void_GLenum_GLfixed #define gles_glLightModelxv_INDEX 82 #define gles_glLightModelxv_RETURN void #define gles_glLightModelxv_ARG_NAMES pname, params #define gles_glLightModelxv_ARG_EXPAND GLenum pname, const GLfixed * params #define gles_glLightModelxv_PACKED PACKED_void_GLenum_const_GLfixed___GENPT__ #define gles_glLightModelxv_INDEXED INDEXED_void_GLenum_const_GLfixed___GENPT__ #define gles_glLightModelxv_FORMAT FORMAT_void_GLenum_const_GLfixed___GENPT__ #define gles_glLightf_INDEX 83 #define gles_glLightf_RETURN void #define gles_glLightf_ARG_NAMES light, pname, param #define gles_glLightf_ARG_EXPAND GLenum light, GLenum pname, GLfloat param #define gles_glLightf_PACKED PACKED_void_GLenum_GLenum_GLfloat #define gles_glLightf_INDEXED INDEXED_void_GLenum_GLenum_GLfloat #define gles_glLightf_FORMAT FORMAT_void_GLenum_GLenum_GLfloat #define gles_glLightfv_INDEX 84 #define gles_glLightfv_RETURN void #define gles_glLightfv_ARG_NAMES light, pname, params #define gles_glLightfv_ARG_EXPAND GLenum light, GLenum pname, const GLfloat * params #define gles_glLightfv_PACKED PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glLightfv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glLightfv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glLightx_INDEX 85 #define gles_glLightx_RETURN void #define gles_glLightx_ARG_NAMES light, pname, param #define gles_glLightx_ARG_EXPAND GLenum light, GLenum pname, GLfixed param #define gles_glLightx_PACKED PACKED_void_GLenum_GLenum_GLfixed #define gles_glLightx_INDEXED INDEXED_void_GLenum_GLenum_GLfixed #define gles_glLightx_FORMAT FORMAT_void_GLenum_GLenum_GLfixed #define gles_glLightxv_INDEX 86 #define gles_glLightxv_RETURN void #define gles_glLightxv_ARG_NAMES light, pname, params #define gles_glLightxv_ARG_EXPAND GLenum light, GLenum pname, const GLfixed * params #define gles_glLightxv_PACKED PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glLightxv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glLightxv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glLineWidth_INDEX 87 #define gles_glLineWidth_RETURN void #define gles_glLineWidth_ARG_NAMES width #define gles_glLineWidth_ARG_EXPAND GLfloat width #define gles_glLineWidth_PACKED PACKED_void_GLfloat #define gles_glLineWidth_INDEXED INDEXED_void_GLfloat #define gles_glLineWidth_FORMAT FORMAT_void_GLfloat #define gles_glLineWidthx_INDEX 88 #define gles_glLineWidthx_RETURN void #define gles_glLineWidthx_ARG_NAMES width #define gles_glLineWidthx_ARG_EXPAND GLfixed width #define gles_glLineWidthx_PACKED PACKED_void_GLfixed #define gles_glLineWidthx_INDEXED INDEXED_void_GLfixed #define gles_glLineWidthx_FORMAT FORMAT_void_GLfixed #define gles_glLoadIdentity_INDEX 89 #define gles_glLoadIdentity_RETURN void #define gles_glLoadIdentity_ARG_NAMES #define gles_glLoadIdentity_ARG_EXPAND #define gles_glLoadIdentity_PACKED PACKED_void #define gles_glLoadIdentity_INDEXED INDEXED_void #define gles_glLoadIdentity_FORMAT FORMAT_void #define gles_glLoadMatrixf_INDEX 90 #define gles_glLoadMatrixf_RETURN void #define gles_glLoadMatrixf_ARG_NAMES m #define gles_glLoadMatrixf_ARG_EXPAND const GLfloat * m #define gles_glLoadMatrixf_PACKED PACKED_void_const_GLfloat___GENPT__ #define gles_glLoadMatrixf_INDEXED INDEXED_void_const_GLfloat___GENPT__ #define gles_glLoadMatrixf_FORMAT FORMAT_void_const_GLfloat___GENPT__ #define gles_glLoadMatrixx_INDEX 91 #define gles_glLoadMatrixx_RETURN void #define gles_glLoadMatrixx_ARG_NAMES m #define gles_glLoadMatrixx_ARG_EXPAND const GLfixed * m #define gles_glLoadMatrixx_PACKED PACKED_void_const_GLfixed___GENPT__ #define gles_glLoadMatrixx_INDEXED INDEXED_void_const_GLfixed___GENPT__ #define gles_glLoadMatrixx_FORMAT FORMAT_void_const_GLfixed___GENPT__ #define gles_glLogicOp_INDEX 92 #define gles_glLogicOp_RETURN void #define gles_glLogicOp_ARG_NAMES opcode #define gles_glLogicOp_ARG_EXPAND GLenum opcode #define gles_glLogicOp_PACKED PACKED_void_GLenum #define gles_glLogicOp_INDEXED INDEXED_void_GLenum #define gles_glLogicOp_FORMAT FORMAT_void_GLenum #define gles_glMaterialf_INDEX 93 #define gles_glMaterialf_RETURN void #define gles_glMaterialf_ARG_NAMES face, pname, param #define gles_glMaterialf_ARG_EXPAND GLenum face, GLenum pname, GLfloat param #define gles_glMaterialf_PACKED PACKED_void_GLenum_GLenum_GLfloat #define gles_glMaterialf_INDEXED INDEXED_void_GLenum_GLenum_GLfloat #define gles_glMaterialf_FORMAT FORMAT_void_GLenum_GLenum_GLfloat #define gles_glMaterialfv_INDEX 94 #define gles_glMaterialfv_RETURN void #define gles_glMaterialfv_ARG_NAMES face, pname, params #define gles_glMaterialfv_ARG_EXPAND GLenum face, GLenum pname, const GLfloat * params #define gles_glMaterialfv_PACKED PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glMaterialfv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glMaterialfv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glMaterialx_INDEX 95 #define gles_glMaterialx_RETURN void #define gles_glMaterialx_ARG_NAMES face, pname, param #define gles_glMaterialx_ARG_EXPAND GLenum face, GLenum pname, GLfixed param #define gles_glMaterialx_PACKED PACKED_void_GLenum_GLenum_GLfixed #define gles_glMaterialx_INDEXED INDEXED_void_GLenum_GLenum_GLfixed #define gles_glMaterialx_FORMAT FORMAT_void_GLenum_GLenum_GLfixed #define gles_glMaterialxv_INDEX 96 #define gles_glMaterialxv_RETURN void #define gles_glMaterialxv_ARG_NAMES face, pname, params #define gles_glMaterialxv_ARG_EXPAND GLenum face, GLenum pname, const GLfixed * params #define gles_glMaterialxv_PACKED PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glMaterialxv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glMaterialxv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glMatrixMode_INDEX 97 #define gles_glMatrixMode_RETURN void #define gles_glMatrixMode_ARG_NAMES mode #define gles_glMatrixMode_ARG_EXPAND GLenum mode #define gles_glMatrixMode_PACKED PACKED_void_GLenum #define gles_glMatrixMode_INDEXED INDEXED_void_GLenum #define gles_glMatrixMode_FORMAT FORMAT_void_GLenum #define gles_glMultMatrixf_INDEX 98 #define gles_glMultMatrixf_RETURN void #define gles_glMultMatrixf_ARG_NAMES m #define gles_glMultMatrixf_ARG_EXPAND const GLfloat * m #define gles_glMultMatrixf_PACKED PACKED_void_const_GLfloat___GENPT__ #define gles_glMultMatrixf_INDEXED INDEXED_void_const_GLfloat___GENPT__ #define gles_glMultMatrixf_FORMAT FORMAT_void_const_GLfloat___GENPT__ #define gles_glMultMatrixx_INDEX 99 #define gles_glMultMatrixx_RETURN void #define gles_glMultMatrixx_ARG_NAMES m #define gles_glMultMatrixx_ARG_EXPAND const GLfixed * m #define gles_glMultMatrixx_PACKED PACKED_void_const_GLfixed___GENPT__ #define gles_glMultMatrixx_INDEXED INDEXED_void_const_GLfixed___GENPT__ #define gles_glMultMatrixx_FORMAT FORMAT_void_const_GLfixed___GENPT__ #define gles_glMultiTexCoord4f_INDEX 100 #define gles_glMultiTexCoord4f_RETURN void #define gles_glMultiTexCoord4f_ARG_NAMES target, s, t, r, q #define gles_glMultiTexCoord4f_ARG_EXPAND GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q #define gles_glMultiTexCoord4f_PACKED PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glMultiTexCoord4f_INDEXED INDEXED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glMultiTexCoord4f_FORMAT FORMAT_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glMultiTexCoord4x_INDEX 101 #define gles_glMultiTexCoord4x_RETURN void #define gles_glMultiTexCoord4x_ARG_NAMES target, s, t, r, q #define gles_glMultiTexCoord4x_ARG_EXPAND GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q #define gles_glMultiTexCoord4x_PACKED PACKED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glMultiTexCoord4x_INDEXED INDEXED_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glMultiTexCoord4x_FORMAT FORMAT_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glNormal3f_INDEX 102 #define gles_glNormal3f_RETURN void #define gles_glNormal3f_ARG_NAMES nx, ny, nz #define gles_glNormal3f_ARG_EXPAND GLfloat nx, GLfloat ny, GLfloat nz #define gles_glNormal3f_PACKED PACKED_void_GLfloat_GLfloat_GLfloat #define gles_glNormal3f_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat #define gles_glNormal3f_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat #define gles_glNormal3x_INDEX 103 #define gles_glNormal3x_RETURN void #define gles_glNormal3x_ARG_NAMES nx, ny, nz #define gles_glNormal3x_ARG_EXPAND GLfixed nx, GLfixed ny, GLfixed nz #define gles_glNormal3x_PACKED PACKED_void_GLfixed_GLfixed_GLfixed #define gles_glNormal3x_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed #define gles_glNormal3x_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed #define gles_glNormalPointer_INDEX 104 #define gles_glNormalPointer_RETURN void #define gles_glNormalPointer_ARG_NAMES type, stride, pointer #define gles_glNormalPointer_ARG_EXPAND GLenum type, GLsizei stride, const GLvoid * pointer #define gles_glNormalPointer_PACKED PACKED_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glNormalPointer_INDEXED INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glNormalPointer_FORMAT FORMAT_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glOrthof_INDEX 105 #define gles_glOrthof_RETURN void #define gles_glOrthof_ARG_NAMES left, right, bottom, top, near, far #define gles_glOrthof_ARG_EXPAND GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far #define gles_glOrthof_PACKED PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glOrthof_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glOrthof_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glOrthox_INDEX 106 #define gles_glOrthox_RETURN void #define gles_glOrthox_ARG_NAMES left, right, bottom, top, near, far #define gles_glOrthox_ARG_EXPAND GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far #define gles_glOrthox_PACKED PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glOrthox_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glOrthox_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glPixelStorei_INDEX 107 #define gles_glPixelStorei_RETURN void #define gles_glPixelStorei_ARG_NAMES pname, param #define gles_glPixelStorei_ARG_EXPAND GLenum pname, GLint param #define gles_glPixelStorei_PACKED PACKED_void_GLenum_GLint #define gles_glPixelStorei_INDEXED INDEXED_void_GLenum_GLint #define gles_glPixelStorei_FORMAT FORMAT_void_GLenum_GLint #define gles_glPointParameterf_INDEX 108 #define gles_glPointParameterf_RETURN void #define gles_glPointParameterf_ARG_NAMES pname, param #define gles_glPointParameterf_ARG_EXPAND GLenum pname, GLfloat param #define gles_glPointParameterf_PACKED PACKED_void_GLenum_GLfloat #define gles_glPointParameterf_INDEXED INDEXED_void_GLenum_GLfloat #define gles_glPointParameterf_FORMAT FORMAT_void_GLenum_GLfloat #define gles_glPointParameterfv_INDEX 109 #define gles_glPointParameterfv_RETURN void #define gles_glPointParameterfv_ARG_NAMES pname, params #define gles_glPointParameterfv_ARG_EXPAND GLenum pname, const GLfloat * params #define gles_glPointParameterfv_PACKED PACKED_void_GLenum_const_GLfloat___GENPT__ #define gles_glPointParameterfv_INDEXED INDEXED_void_GLenum_const_GLfloat___GENPT__ #define gles_glPointParameterfv_FORMAT FORMAT_void_GLenum_const_GLfloat___GENPT__ #define gles_glPointParameterx_INDEX 110 #define gles_glPointParameterx_RETURN void #define gles_glPointParameterx_ARG_NAMES pname, param #define gles_glPointParameterx_ARG_EXPAND GLenum pname, GLfixed param #define gles_glPointParameterx_PACKED PACKED_void_GLenum_GLfixed #define gles_glPointParameterx_INDEXED INDEXED_void_GLenum_GLfixed #define gles_glPointParameterx_FORMAT FORMAT_void_GLenum_GLfixed #define gles_glPointParameterxv_INDEX 111 #define gles_glPointParameterxv_RETURN void #define gles_glPointParameterxv_ARG_NAMES pname, params #define gles_glPointParameterxv_ARG_EXPAND GLenum pname, const GLfixed * params #define gles_glPointParameterxv_PACKED PACKED_void_GLenum_const_GLfixed___GENPT__ #define gles_glPointParameterxv_INDEXED INDEXED_void_GLenum_const_GLfixed___GENPT__ #define gles_glPointParameterxv_FORMAT FORMAT_void_GLenum_const_GLfixed___GENPT__ #define gles_glPointSize_INDEX 112 #define gles_glPointSize_RETURN void #define gles_glPointSize_ARG_NAMES size #define gles_glPointSize_ARG_EXPAND GLfloat size #define gles_glPointSize_PACKED PACKED_void_GLfloat #define gles_glPointSize_INDEXED INDEXED_void_GLfloat #define gles_glPointSize_FORMAT FORMAT_void_GLfloat #define gles_glPointSizePointerOES_INDEX 113 #define gles_glPointSizePointerOES_RETURN void #define gles_glPointSizePointerOES_ARG_NAMES type, stride, pointer #define gles_glPointSizePointerOES_ARG_EXPAND GLenum type, GLsizei stride, const GLvoid * pointer #define gles_glPointSizePointerOES_PACKED PACKED_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glPointSizePointerOES_INDEXED INDEXED_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glPointSizePointerOES_FORMAT FORMAT_void_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glPointSizex_INDEX 114 #define gles_glPointSizex_RETURN void #define gles_glPointSizex_ARG_NAMES size #define gles_glPointSizex_ARG_EXPAND GLfixed size #define gles_glPointSizex_PACKED PACKED_void_GLfixed #define gles_glPointSizex_INDEXED INDEXED_void_GLfixed #define gles_glPointSizex_FORMAT FORMAT_void_GLfixed #define gles_glPolygonOffset_INDEX 115 #define gles_glPolygonOffset_RETURN void #define gles_glPolygonOffset_ARG_NAMES factor, units #define gles_glPolygonOffset_ARG_EXPAND GLfloat factor, GLfloat units #define gles_glPolygonOffset_PACKED PACKED_void_GLfloat_GLfloat #define gles_glPolygonOffset_INDEXED INDEXED_void_GLfloat_GLfloat #define gles_glPolygonOffset_FORMAT FORMAT_void_GLfloat_GLfloat #define gles_glPolygonOffsetx_INDEX 116 #define gles_glPolygonOffsetx_RETURN void #define gles_glPolygonOffsetx_ARG_NAMES factor, units #define gles_glPolygonOffsetx_ARG_EXPAND GLfixed factor, GLfixed units #define gles_glPolygonOffsetx_PACKED PACKED_void_GLfixed_GLfixed #define gles_glPolygonOffsetx_INDEXED INDEXED_void_GLfixed_GLfixed #define gles_glPolygonOffsetx_FORMAT FORMAT_void_GLfixed_GLfixed #define gles_glPopMatrix_INDEX 117 #define gles_glPopMatrix_RETURN void #define gles_glPopMatrix_ARG_NAMES #define gles_glPopMatrix_ARG_EXPAND #define gles_glPopMatrix_PACKED PACKED_void #define gles_glPopMatrix_INDEXED INDEXED_void #define gles_glPopMatrix_FORMAT FORMAT_void #define gles_glPushMatrix_INDEX 118 #define gles_glPushMatrix_RETURN void #define gles_glPushMatrix_ARG_NAMES #define gles_glPushMatrix_ARG_EXPAND #define gles_glPushMatrix_PACKED PACKED_void #define gles_glPushMatrix_INDEXED INDEXED_void #define gles_glPushMatrix_FORMAT FORMAT_void #define gles_glReadPixels_INDEX 119 #define gles_glReadPixels_RETURN void #define gles_glReadPixels_ARG_NAMES x, y, width, height, format, type, pixels #define gles_glReadPixels_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels #define gles_glReadPixels_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define gles_glReadPixels_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define gles_glReadPixels_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__ #define gles_glRotatef_INDEX 120 #define gles_glRotatef_RETURN void #define gles_glRotatef_ARG_NAMES angle, x, y, z #define gles_glRotatef_ARG_EXPAND GLfloat angle, GLfloat x, GLfloat y, GLfloat z #define gles_glRotatef_PACKED PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glRotatef_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glRotatef_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat #define gles_glRotatex_INDEX 121 #define gles_glRotatex_RETURN void #define gles_glRotatex_ARG_NAMES angle, x, y, z #define gles_glRotatex_ARG_EXPAND GLfixed angle, GLfixed x, GLfixed y, GLfixed z #define gles_glRotatex_PACKED PACKED_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glRotatex_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glRotatex_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed #define gles_glSampleCoverage_INDEX 122 #define gles_glSampleCoverage_RETURN void #define gles_glSampleCoverage_ARG_NAMES value, invert #define gles_glSampleCoverage_ARG_EXPAND GLclampf value, GLboolean invert #define gles_glSampleCoverage_PACKED PACKED_void_GLclampf_GLboolean #define gles_glSampleCoverage_INDEXED INDEXED_void_GLclampf_GLboolean #define gles_glSampleCoverage_FORMAT FORMAT_void_GLclampf_GLboolean #define gles_glSampleCoveragex_INDEX 123 #define gles_glSampleCoveragex_RETURN void #define gles_glSampleCoveragex_ARG_NAMES value, invert #define gles_glSampleCoveragex_ARG_EXPAND GLclampx value, GLboolean invert #define gles_glSampleCoveragex_PACKED PACKED_void_GLclampx_GLboolean #define gles_glSampleCoveragex_INDEXED INDEXED_void_GLclampx_GLboolean #define gles_glSampleCoveragex_FORMAT FORMAT_void_GLclampx_GLboolean #define gles_glScalef_INDEX 124 #define gles_glScalef_RETURN void #define gles_glScalef_ARG_NAMES x, y, z #define gles_glScalef_ARG_EXPAND GLfloat x, GLfloat y, GLfloat z #define gles_glScalef_PACKED PACKED_void_GLfloat_GLfloat_GLfloat #define gles_glScalef_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat #define gles_glScalef_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat #define gles_glScalex_INDEX 125 #define gles_glScalex_RETURN void #define gles_glScalex_ARG_NAMES x, y, z #define gles_glScalex_ARG_EXPAND GLfixed x, GLfixed y, GLfixed z #define gles_glScalex_PACKED PACKED_void_GLfixed_GLfixed_GLfixed #define gles_glScalex_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed #define gles_glScalex_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed #define gles_glScissor_INDEX 126 #define gles_glScissor_RETURN void #define gles_glScissor_ARG_NAMES x, y, width, height #define gles_glScissor_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height #define gles_glScissor_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei #define gles_glScissor_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei #define gles_glScissor_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei #define gles_glShadeModel_INDEX 127 #define gles_glShadeModel_RETURN void #define gles_glShadeModel_ARG_NAMES mode #define gles_glShadeModel_ARG_EXPAND GLenum mode #define gles_glShadeModel_PACKED PACKED_void_GLenum #define gles_glShadeModel_INDEXED INDEXED_void_GLenum #define gles_glShadeModel_FORMAT FORMAT_void_GLenum #define gles_glStencilFunc_INDEX 128 #define gles_glStencilFunc_RETURN void #define gles_glStencilFunc_ARG_NAMES func, ref, mask #define gles_glStencilFunc_ARG_EXPAND GLenum func, GLint ref, GLuint mask #define gles_glStencilFunc_PACKED PACKED_void_GLenum_GLint_GLuint #define gles_glStencilFunc_INDEXED INDEXED_void_GLenum_GLint_GLuint #define gles_glStencilFunc_FORMAT FORMAT_void_GLenum_GLint_GLuint #define gles_glStencilMask_INDEX 129 #define gles_glStencilMask_RETURN void #define gles_glStencilMask_ARG_NAMES mask #define gles_glStencilMask_ARG_EXPAND GLuint mask #define gles_glStencilMask_PACKED PACKED_void_GLuint #define gles_glStencilMask_INDEXED INDEXED_void_GLuint #define gles_glStencilMask_FORMAT FORMAT_void_GLuint #define gles_glStencilOp_INDEX 130 #define gles_glStencilOp_RETURN void #define gles_glStencilOp_ARG_NAMES fail, zfail, zpass #define gles_glStencilOp_ARG_EXPAND GLenum fail, GLenum zfail, GLenum zpass #define gles_glStencilOp_PACKED PACKED_void_GLenum_GLenum_GLenum #define gles_glStencilOp_INDEXED INDEXED_void_GLenum_GLenum_GLenum #define gles_glStencilOp_FORMAT FORMAT_void_GLenum_GLenum_GLenum #define gles_glTexCoordPointer_INDEX 131 #define gles_glTexCoordPointer_RETURN void #define gles_glTexCoordPointer_ARG_NAMES size, type, stride, pointer #define gles_glTexCoordPointer_ARG_EXPAND GLint size, GLenum type, GLsizei stride, const GLvoid * pointer #define gles_glTexCoordPointer_PACKED PACKED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glTexCoordPointer_INDEXED INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glTexCoordPointer_FORMAT FORMAT_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glTexEnvf_INDEX 132 #define gles_glTexEnvf_RETURN void #define gles_glTexEnvf_ARG_NAMES target, pname, param #define gles_glTexEnvf_ARG_EXPAND GLenum target, GLenum pname, GLfloat param #define gles_glTexEnvf_PACKED PACKED_void_GLenum_GLenum_GLfloat #define gles_glTexEnvf_INDEXED INDEXED_void_GLenum_GLenum_GLfloat #define gles_glTexEnvf_FORMAT FORMAT_void_GLenum_GLenum_GLfloat #define gles_glTexEnvfv_INDEX 133 #define gles_glTexEnvfv_RETURN void #define gles_glTexEnvfv_ARG_NAMES target, pname, params #define gles_glTexEnvfv_ARG_EXPAND GLenum target, GLenum pname, const GLfloat * params #define gles_glTexEnvfv_PACKED PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexEnvfv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexEnvfv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexEnvi_INDEX 134 #define gles_glTexEnvi_RETURN void #define gles_glTexEnvi_ARG_NAMES target, pname, param #define gles_glTexEnvi_ARG_EXPAND GLenum target, GLenum pname, GLint param #define gles_glTexEnvi_PACKED PACKED_void_GLenum_GLenum_GLint #define gles_glTexEnvi_INDEXED INDEXED_void_GLenum_GLenum_GLint #define gles_glTexEnvi_FORMAT FORMAT_void_GLenum_GLenum_GLint #define gles_glTexEnviv_INDEX 135 #define gles_glTexEnviv_RETURN void #define gles_glTexEnviv_ARG_NAMES target, pname, params #define gles_glTexEnviv_ARG_EXPAND GLenum target, GLenum pname, const GLint * params #define gles_glTexEnviv_PACKED PACKED_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexEnviv_INDEXED INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexEnviv_FORMAT FORMAT_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexEnvx_INDEX 136 #define gles_glTexEnvx_RETURN void #define gles_glTexEnvx_ARG_NAMES target, pname, param #define gles_glTexEnvx_ARG_EXPAND GLenum target, GLenum pname, GLfixed param #define gles_glTexEnvx_PACKED PACKED_void_GLenum_GLenum_GLfixed #define gles_glTexEnvx_INDEXED INDEXED_void_GLenum_GLenum_GLfixed #define gles_glTexEnvx_FORMAT FORMAT_void_GLenum_GLenum_GLfixed #define gles_glTexEnvxv_INDEX 137 #define gles_glTexEnvxv_RETURN void #define gles_glTexEnvxv_ARG_NAMES target, pname, params #define gles_glTexEnvxv_ARG_EXPAND GLenum target, GLenum pname, const GLfixed * params #define gles_glTexEnvxv_PACKED PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexEnvxv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexEnvxv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexImage2D_INDEX 138 #define gles_glTexImage2D_RETURN void #define gles_glTexImage2D_ARG_NAMES target, level, internalformat, width, height, border, format, type, pixels #define gles_glTexImage2D_ARG_EXPAND GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels #define gles_glTexImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTexImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTexImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTexParameterf_INDEX 139 #define gles_glTexParameterf_RETURN void #define gles_glTexParameterf_ARG_NAMES target, pname, param #define gles_glTexParameterf_ARG_EXPAND GLenum target, GLenum pname, GLfloat param #define gles_glTexParameterf_PACKED PACKED_void_GLenum_GLenum_GLfloat #define gles_glTexParameterf_INDEXED INDEXED_void_GLenum_GLenum_GLfloat #define gles_glTexParameterf_FORMAT FORMAT_void_GLenum_GLenum_GLfloat #define gles_glTexParameterfv_INDEX 140 #define gles_glTexParameterfv_RETURN void #define gles_glTexParameterfv_ARG_NAMES target, pname, params #define gles_glTexParameterfv_ARG_EXPAND GLenum target, GLenum pname, const GLfloat * params #define gles_glTexParameterfv_PACKED PACKED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexParameterfv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexParameterfv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfloat___GENPT__ #define gles_glTexParameteri_INDEX 141 #define gles_glTexParameteri_RETURN void #define gles_glTexParameteri_ARG_NAMES target, pname, param #define gles_glTexParameteri_ARG_EXPAND GLenum target, GLenum pname, GLint param #define gles_glTexParameteri_PACKED PACKED_void_GLenum_GLenum_GLint #define gles_glTexParameteri_INDEXED INDEXED_void_GLenum_GLenum_GLint #define gles_glTexParameteri_FORMAT FORMAT_void_GLenum_GLenum_GLint #define gles_glTexParameteriv_INDEX 142 #define gles_glTexParameteriv_RETURN void #define gles_glTexParameteriv_ARG_NAMES target, pname, params #define gles_glTexParameteriv_ARG_EXPAND GLenum target, GLenum pname, const GLint * params #define gles_glTexParameteriv_PACKED PACKED_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexParameteriv_INDEXED INDEXED_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexParameteriv_FORMAT FORMAT_void_GLenum_GLenum_const_GLint___GENPT__ #define gles_glTexParameterx_INDEX 143 #define gles_glTexParameterx_RETURN void #define gles_glTexParameterx_ARG_NAMES target, pname, param #define gles_glTexParameterx_ARG_EXPAND GLenum target, GLenum pname, GLfixed param #define gles_glTexParameterx_PACKED PACKED_void_GLenum_GLenum_GLfixed #define gles_glTexParameterx_INDEXED INDEXED_void_GLenum_GLenum_GLfixed #define gles_glTexParameterx_FORMAT FORMAT_void_GLenum_GLenum_GLfixed #define gles_glTexParameterxv_INDEX 144 #define gles_glTexParameterxv_RETURN void #define gles_glTexParameterxv_ARG_NAMES target, pname, params #define gles_glTexParameterxv_ARG_EXPAND GLenum target, GLenum pname, const GLfixed * params #define gles_glTexParameterxv_PACKED PACKED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexParameterxv_INDEXED INDEXED_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexParameterxv_FORMAT FORMAT_void_GLenum_GLenum_const_GLfixed___GENPT__ #define gles_glTexSubImage2D_INDEX 145 #define gles_glTexSubImage2D_RETURN void #define gles_glTexSubImage2D_ARG_NAMES target, level, xoffset, yoffset, width, height, format, type, pixels #define gles_glTexSubImage2D_ARG_EXPAND GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels #define gles_glTexSubImage2D_PACKED PACKED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTexSubImage2D_INDEXED INDEXED_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTexSubImage2D_FORMAT FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__ #define gles_glTranslatef_INDEX 146 #define gles_glTranslatef_RETURN void #define gles_glTranslatef_ARG_NAMES x, y, z #define gles_glTranslatef_ARG_EXPAND GLfloat x, GLfloat y, GLfloat z #define gles_glTranslatef_PACKED PACKED_void_GLfloat_GLfloat_GLfloat #define gles_glTranslatef_INDEXED INDEXED_void_GLfloat_GLfloat_GLfloat #define gles_glTranslatef_FORMAT FORMAT_void_GLfloat_GLfloat_GLfloat #define gles_glTranslatex_INDEX 147 #define gles_glTranslatex_RETURN void #define gles_glTranslatex_ARG_NAMES x, y, z #define gles_glTranslatex_ARG_EXPAND GLfixed x, GLfixed y, GLfixed z #define gles_glTranslatex_PACKED PACKED_void_GLfixed_GLfixed_GLfixed #define gles_glTranslatex_INDEXED INDEXED_void_GLfixed_GLfixed_GLfixed #define gles_glTranslatex_FORMAT FORMAT_void_GLfixed_GLfixed_GLfixed #define gles_glVertexPointer_INDEX 148 #define gles_glVertexPointer_RETURN void #define gles_glVertexPointer_ARG_NAMES size, type, stride, pointer #define gles_glVertexPointer_ARG_EXPAND GLint size, GLenum type, GLsizei stride, const GLvoid * pointer #define gles_glVertexPointer_PACKED PACKED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glVertexPointer_INDEXED INDEXED_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glVertexPointer_FORMAT FORMAT_void_GLint_GLenum_GLsizei_const_GLvoid___GENPT__ #define gles_glViewport_INDEX 149 #define gles_glViewport_RETURN void #define gles_glViewport_ARG_NAMES x, y, width, height #define gles_glViewport_ARG_EXPAND GLint x, GLint y, GLsizei width, GLsizei height #define gles_glViewport_PACKED PACKED_void_GLint_GLint_GLsizei_GLsizei #define gles_glViewport_INDEXED INDEXED_void_GLint_GLint_GLsizei_GLsizei #define gles_glViewport_FORMAT FORMAT_void_GLint_GLint_GLsizei_GLsizei void gles_glActiveTexture(glActiveTexture_ARG_EXPAND); void gles_glAlphaFunc(glAlphaFunc_ARG_EXPAND); void gles_glAlphaFuncx(glAlphaFuncx_ARG_EXPAND); void gles_glBindBuffer(glBindBuffer_ARG_EXPAND); void gles_glBindTexture(glBindTexture_ARG_EXPAND); void gles_glBlendColorOES(glBlendColorOES_ARG_EXPAND); void gles_glBlendEquationOES(glBlendEquationOES_ARG_EXPAND); void gles_glBlendEquationSeparateOES(glBlendEquationSeparateOES_ARG_EXPAND); void gles_glBlendFunc(glBlendFunc_ARG_EXPAND); void gles_glBlendFuncSeparateOES(glBlendFuncSeparateOES_ARG_EXPAND); void gles_glBufferData(glBufferData_ARG_EXPAND); void gles_glBufferSubData(glBufferSubData_ARG_EXPAND); void gles_glClear(glClear_ARG_EXPAND); void gles_glClearColor(glClearColor_ARG_EXPAND); void gles_glClearColorx(glClearColorx_ARG_EXPAND); void gles_glClearDepthf(glClearDepthf_ARG_EXPAND); void gles_glClearDepthx(glClearDepthx_ARG_EXPAND); void gles_glClearStencil(glClearStencil_ARG_EXPAND); void gles_glClientActiveTexture(glClientActiveTexture_ARG_EXPAND); void gles_glClipPlanef(glClipPlanef_ARG_EXPAND); void gles_glClipPlanex(glClipPlanex_ARG_EXPAND); void gles_glColor4f(glColor4f_ARG_EXPAND); void gles_glColor4ub(glColor4ub_ARG_EXPAND); void gles_glColor4x(glColor4x_ARG_EXPAND); void gles_glColorMask(glColorMask_ARG_EXPAND); void gles_glColorPointer(glColorPointer_ARG_EXPAND); void gles_glCompressedTexImage2D(glCompressedTexImage2D_ARG_EXPAND); void gles_glCompressedTexSubImage2D(glCompressedTexSubImage2D_ARG_EXPAND); void gles_glCopyTexImage2D(glCopyTexImage2D_ARG_EXPAND); void gles_glCopyTexSubImage2D(glCopyTexSubImage2D_ARG_EXPAND); void gles_glCullFace(glCullFace_ARG_EXPAND); void gles_glDeleteBuffers(glDeleteBuffers_ARG_EXPAND); void gles_glDeleteTextures(glDeleteTextures_ARG_EXPAND); void gles_glDepthFunc(glDepthFunc_ARG_EXPAND); void gles_glDepthMask(glDepthMask_ARG_EXPAND); void gles_glDepthRangef(glDepthRangef_ARG_EXPAND); void gles_glDepthRangex(glDepthRangex_ARG_EXPAND); void gles_glDisable(glDisable_ARG_EXPAND); void gles_glDisableClientState(glDisableClientState_ARG_EXPAND); void gles_glDrawArrays(glDrawArrays_ARG_EXPAND); void gles_glDrawElements(glDrawElements_ARG_EXPAND); void gles_glEnable(glEnable_ARG_EXPAND); void gles_glEnableClientState(glEnableClientState_ARG_EXPAND); void gles_glFinish(glFinish_ARG_EXPAND); void gles_glFlush(glFlush_ARG_EXPAND); void gles_glFogf(glFogf_ARG_EXPAND); void gles_glFogfv(glFogfv_ARG_EXPAND); void gles_glFogx(glFogx_ARG_EXPAND); void gles_glFogxv(glFogxv_ARG_EXPAND); void gles_glFrontFace(glFrontFace_ARG_EXPAND); void gles_glFrustumf(glFrustumf_ARG_EXPAND); void gles_glFrustumx(glFrustumx_ARG_EXPAND); void gles_glGenBuffers(glGenBuffers_ARG_EXPAND); void gles_glGenTextures(glGenTextures_ARG_EXPAND); void gles_glGetBooleanv(glGetBooleanv_ARG_EXPAND); void gles_glGetBufferParameteriv(glGetBufferParameteriv_ARG_EXPAND); void gles_glGetClipPlanef(glGetClipPlanef_ARG_EXPAND); void gles_glGetClipPlanex(glGetClipPlanex_ARG_EXPAND); GLenum gles_glGetError(glGetError_ARG_EXPAND); void gles_glGetFixedv(glGetFixedv_ARG_EXPAND); void gles_glGetFloatv(glGetFloatv_ARG_EXPAND); void gles_glGetIntegerv(glGetIntegerv_ARG_EXPAND); void gles_glGetLightfv(glGetLightfv_ARG_EXPAND); void gles_glGetLightxv(glGetLightxv_ARG_EXPAND); void gles_glGetMaterialfv(glGetMaterialfv_ARG_EXPAND); void gles_glGetMaterialxv(glGetMaterialxv_ARG_EXPAND); void gles_glGetPointerv(glGetPointerv_ARG_EXPAND); const GLubyte * gles_glGetString(glGetString_ARG_EXPAND); void gles_glGetTexEnvfv(glGetTexEnvfv_ARG_EXPAND); void gles_glGetTexEnviv(glGetTexEnviv_ARG_EXPAND); void gles_glGetTexEnvxv(glGetTexEnvxv_ARG_EXPAND); void gles_glGetTexParameterfv(glGetTexParameterfv_ARG_EXPAND); void gles_glGetTexParameteriv(glGetTexParameteriv_ARG_EXPAND); void gles_glGetTexParameterxv(glGetTexParameterxv_ARG_EXPAND); void gles_glHint(glHint_ARG_EXPAND); GLboolean gles_glIsBuffer(glIsBuffer_ARG_EXPAND); GLboolean gles_glIsEnabled(glIsEnabled_ARG_EXPAND); GLboolean gles_glIsTexture(glIsTexture_ARG_EXPAND); void gles_glLightModelf(glLightModelf_ARG_EXPAND); void gles_glLightModelfv(glLightModelfv_ARG_EXPAND); void gles_glLightModelx(glLightModelx_ARG_EXPAND); void gles_glLightModelxv(glLightModelxv_ARG_EXPAND); void gles_glLightf(glLightf_ARG_EXPAND); void gles_glLightfv(glLightfv_ARG_EXPAND); void gles_glLightx(glLightx_ARG_EXPAND); void gles_glLightxv(glLightxv_ARG_EXPAND); void gles_glLineWidth(glLineWidth_ARG_EXPAND); void gles_glLineWidthx(glLineWidthx_ARG_EXPAND); void gles_glLoadIdentity(glLoadIdentity_ARG_EXPAND); void gles_glLoadMatrixf(glLoadMatrixf_ARG_EXPAND); void gles_glLoadMatrixx(glLoadMatrixx_ARG_EXPAND); void gles_glLogicOp(glLogicOp_ARG_EXPAND); void gles_glMaterialf(glMaterialf_ARG_EXPAND); void gles_glMaterialfv(glMaterialfv_ARG_EXPAND); void gles_glMaterialx(glMaterialx_ARG_EXPAND); void gles_glMaterialxv(glMaterialxv_ARG_EXPAND); void gles_glMatrixMode(glMatrixMode_ARG_EXPAND); void gles_glMultMatrixf(glMultMatrixf_ARG_EXPAND); void gles_glMultMatrixx(glMultMatrixx_ARG_EXPAND); void gles_glMultiTexCoord4f(glMultiTexCoord4f_ARG_EXPAND); void gles_glMultiTexCoord4x(glMultiTexCoord4x_ARG_EXPAND); void gles_glNormal3f(glNormal3f_ARG_EXPAND); void gles_glNormal3x(glNormal3x_ARG_EXPAND); void gles_glNormalPointer(glNormalPointer_ARG_EXPAND); void gles_glOrthof(glOrthof_ARG_EXPAND); void gles_glOrthox(glOrthox_ARG_EXPAND); void gles_glPixelStorei(glPixelStorei_ARG_EXPAND); void gles_glPointParameterf(glPointParameterf_ARG_EXPAND); void gles_glPointParameterfv(glPointParameterfv_ARG_EXPAND); void gles_glPointParameterx(glPointParameterx_ARG_EXPAND); void gles_glPointParameterxv(glPointParameterxv_ARG_EXPAND); void gles_glPointSize(glPointSize_ARG_EXPAND); void gles_glPointSizePointerOES(glPointSizePointerOES_ARG_EXPAND); void gles_glPointSizex(glPointSizex_ARG_EXPAND); void gles_glPolygonOffset(glPolygonOffset_ARG_EXPAND); void gles_glPolygonOffsetx(glPolygonOffsetx_ARG_EXPAND); void gles_glPopMatrix(glPopMatrix_ARG_EXPAND); void gles_glPushMatrix(glPushMatrix_ARG_EXPAND); void gles_glReadPixels(glReadPixels_ARG_EXPAND); void gles_glRotatef(glRotatef_ARG_EXPAND); void gles_glRotatex(glRotatex_ARG_EXPAND); void gles_glSampleCoverage(glSampleCoverage_ARG_EXPAND); void gles_glSampleCoveragex(glSampleCoveragex_ARG_EXPAND); void gles_glScalef(glScalef_ARG_EXPAND); void gles_glScalex(glScalex_ARG_EXPAND); void gles_glScissor(glScissor_ARG_EXPAND); void gles_glShadeModel(glShadeModel_ARG_EXPAND); void gles_glStencilFunc(glStencilFunc_ARG_EXPAND); void gles_glStencilMask(glStencilMask_ARG_EXPAND); void gles_glStencilOp(glStencilOp_ARG_EXPAND); void gles_glTexCoordPointer(glTexCoordPointer_ARG_EXPAND); void gles_glTexEnvf(glTexEnvf_ARG_EXPAND); void gles_glTexEnvfv(glTexEnvfv_ARG_EXPAND); void gles_glTexEnvi(glTexEnvi_ARG_EXPAND); void gles_glTexEnviv(glTexEnviv_ARG_EXPAND); void gles_glTexEnvx(glTexEnvx_ARG_EXPAND); void gles_glTexEnvxv(glTexEnvxv_ARG_EXPAND); void gles_glTexImage2D(glTexImage2D_ARG_EXPAND); void gles_glTexParameterf(glTexParameterf_ARG_EXPAND); void gles_glTexParameterfv(glTexParameterfv_ARG_EXPAND); void gles_glTexParameteri(glTexParameteri_ARG_EXPAND); void gles_glTexParameteriv(glTexParameteriv_ARG_EXPAND); void gles_glTexParameterx(glTexParameterx_ARG_EXPAND); void gles_glTexParameterxv(glTexParameterxv_ARG_EXPAND); void gles_glTexSubImage2D(glTexSubImage2D_ARG_EXPAND); void gles_glTranslatef(glTranslatef_ARG_EXPAND); void gles_glTranslatex(glTranslatex_ARG_EXPAND); void gles_glVertexPointer(glVertexPointer_ARG_EXPAND); void gles_glViewport(glViewport_ARG_EXPAND); #endif #ifdef __cplusplus } // extern "C" #endif #endif |
Added jni/glshim/test/util/run.py.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | import argparse import jinja2 import os import signal import subprocess import sys import traceback from blessings import Terminal from contextlib import contextmanager signals = dict((k, v) for v, k in signal.__dict__.iteritems() if v.startswith('SIG')) term = Terminal() TEST_ROOT = os.getcwd() env = jinja2.Environment( trim_blocks=True, lstrip_blocks=True, loader=jinja2.FileSystemLoader(os.path.join(TEST_ROOT, 'util', 'template')), ) @contextmanager def chdir(d): old = os.getcwd() os.chdir(d) yield os.chdir(old) def shell(*args, **kwargs): p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = p.communicate(kwargs.get('input', '')) out = '\n'.join(((output[0] or '').strip(), (output[1] or '').strip())) if p.returncode < 0: sig = signals.get(-p.returncode) if sig is not None: out += '\n' + sig return out.strip(), p.returncode def walk(base): for root, _, files in os.walk(base): for name in files: yield os.path.join(root, name) class Test: def __init__(self, path, tail): self.path = path self.name = os.path.splitext(tail)[0].strip('/') self.exe = os.path.basename(self.name) self.dir = self.name.rsplit(self.exe, 1)[0].strip('/') self.ran = False self.success = None self.build_failed = False self.output = '' @classmethod def find(cls, base, filt): tests = [] for path in walk(base): tail = path.replace(base, '', 1) test = None if path.endswith('.c'): test = Test(path, tail) elif path.endswith('.py'): test = PythonTest(path, tail) else: continue if test and filt: for f in filt: if test.name.startswith(f): break else: continue tests.append(test) return tests @property def status(self): if self.build_failed: return 'build failed' elif not self.ran: return 'skipped' return 'pass' if self.success else 'fail' @property def status_color(self): if self.build_failed: return term.red elif not self.ran: return term.yellow return term.green if self.success else term.red def build(self, project): junk_dir = os.path.join(TEST_ROOT, 'build') bin_dir = os.path.join(TEST_ROOT, 'bin', self.dir) if not os.path.exists(junk_dir): os.makedirs(junk_dir) cmakelists = os.path.join(junk_dir, 'CMakeLists.txt') t = env.get_template('CMakeLists.txt.j2') txt = t.render( project=args.project, exe=self.exe, sources=self.path, bin_dir=bin_dir, util=os.path.join(TEST_ROOT, 'util'), ) with open(cmakelists, 'w') as f: f.write(txt) out, status = shell('cmake', cmakelists) if status: self.output = out self.build_failed = True return False with chdir(junk_dir): out, status = shell('make', '-j2') if status: self.output = out self.build_failed = True return False tmp = os.path.join(bin_dir, 'tmp') out = os.path.join(bin_dir, self.exe) if os.path.exists(out): os.unlink(out) os.rename(tmp, out) return True def run(self): bin_dir = os.path.join(TEST_ROOT, 'bin', self.dir) with chdir(bin_dir): self.output, status = shell('./' + self.exe) self.ran = True self.success = (status == 0) return self.success def __repr__(self): if self.ran: return '<Test: {} ({})>'.format(self.name, self.status) else: return '<Test: {}>'.format(self.name) class PythonTest(Test): def build(self, project): return True def run(self): with chdir(TEST_ROOT): self.output, status = shell('python', self.path) self.ran = True self.success = (status == 0) return False def run(args): tests = Test.find(args.base, args.tests) if not tests: print 'No tests!' return step_fmt = lambda step: term.bold('[' + step + ']') status_fmt = lambda test: term.bold('[' + test.status_color(test.status) + ']') back = lambda mult: '\b' * mult out = lambda *a: (sys.stdout.write(' '.join(str(s) for s in a)), sys.stdout.flush()) duplicate_errors = set() for i, test in enumerate(tests): headline = '[{}/{}] {} ['.format(i + 1, len(tests), test.name) print term.bold(headline.ljust(79, '-')), out(back(8) + ' ' + step_fmt('build')) try: build = test.build(args.project) except Exception: test.build_failed = True print traceback.print_exc() out(back(7) + step_fmt(' run ')) if not test.build_failed: try: success = test.run() except Exception: test.ran = True success = test.success = False print traceback.print_exc() out(back(max(7, len(test.status) + 3)) + ' ' + status_fmt(test)) print if test.output: if test.build_failed: if test.output in duplicate_errors: continue else: duplicate_errors.add(test.output) for line in test.output.split('\n'): ERROR = term.bold(term.red('ERROR:')) WARNING = term.bold(term.yellow('WARNING:')) if line.startswith('ERROR'): line = line.replace('ERROR:', ERROR, 1) elif line.startswith('WARNING'): line = line.replace('WARNING:', WARNING, 1) if test.build_failed: line = line.replace('error:', ERROR) line = line.replace('warning:', WARNING) print '> {}'.format(line) passed = sum(t.success for t in tests if t.ran) total = sum(t.ran for t in tests) results = '{} / {} passed, {} skipped '.format(passed, total, len(tests) - total) if total > 0: pc = passed / float(total) * 100 percent = '{:.2f}%'.format(pc) if passed == total: percent = term.green('100%') elif pc < 75: percent = term.red(percent) else: percent = term.yellow(percent) print term.bold((results + '[{}]').format(percent).rjust(80 + len(term.green('')))) print if __name__ == '__main__': parser = argparse.ArgumentParser(description='Build and run tests.') parser.add_argument('--project', help='project directory', default='.') parser.add_argument('--base', help='test directories to search', required=True) parser.add_argument('tests', help='test names to run (all by default)', nargs='*') args = parser.parse_args() run(args) |
Added jni/glshim/test/util/template/CMakeLists.txt.j2.
> > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | cmake_minimum_required(VERSION 2.6) project(test) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY {{ bin_dir }}) include_directories({{ util }}) include_directories({{ project }}/include) include_directories({{ project }}/src/gl) include_directories({{ project }}/src/util) add_definitions(-include test.h) include({{ project }}/flags.cmake) file(GLOB_RECURSE GL_SOURCES {{ project }}/src/gl/*.c {{ project }}/src/gl/*.cpp) file(GLOB UTIL_SOURCES {{ project }}/src/util/*.c {{ project }}/src/util/math/*.c) set(GL_SOURCES ${GL_SOURCES} ${UTIL_SOURCES}) add_executable(tmp ${GL_SOURCES} {{ sources }} {{ util }}/mock.c) |
Added jni/glshim/test/util/test.h.
> > > > > > > > > | 1 2 3 4 5 6 7 8 9 | #define LOAD_RAW(...) {} #define PROXY(...) {} #include <stdio.h> #include "mock.h" #define free(...) {} #undef emit_glGetError #define emit_glGetError(...) {} |