diff --git a/project/java/DataDownloader.java b/project/java/DataDownloader.java index c0d276ae8..2c4bad0e4 100644 --- a/project/java/DataDownloader.java +++ b/project/java/DataDownloader.java @@ -287,7 +287,7 @@ class DataDownloader extends Thread Log.i("SDL", "Downloading data to: '" + outFilesDir + "'"); try { File outDir = new File( outFilesDir ); - if( !(outDir.exists() && outDir.isDirectory()) ) + if( !outDir.exists() ) outDir.mkdirs(); OutputStream out = new FileOutputStream( getOutFilePath(".nomedia") ); out.flush(); diff --git a/project/jni/application/commandergenius/commandergenius b/project/jni/application/commandergenius/commandergenius index 2dc893395..ee839fb2d 160000 --- a/project/jni/application/commandergenius/commandergenius +++ b/project/jni/application/commandergenius/commandergenius @@ -1 +1 @@ -Subproject commit 2dc893395b6720d118dda626de8f09561758e66a +Subproject commit ee839fb2d3dc67f271349371fcc4b38c2bf46188 diff --git a/project/jni/application/ninslash/AndroidAppSettings.cfg b/project/jni/application/ninslash/AndroidAppSettings.cfg index f388eb328..5c9f09372 100644 --- a/project/jni/application/ninslash/AndroidAppSettings.cfg +++ b/project/jni/application/ninslash/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="Ninslash" AppFullName=ninslash.com # Application version code (integer) -AppVersionCode=02117 +AppVersionCode=02220 # Application user-visible version name (string) -AppVersionName="0.2.1.17" +AppVersionName="0.2.2.20" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu @@ -21,10 +21,10 @@ AppVersionName="0.2.1.17" AppDataDownloadUrl="!!Game data|data.zip" # Reset SDL config when updating application to the new version (y) / (n) -ResetSdlConfigForThisVersion=y +ResetSdlConfigForThisVersion=n # Delete application data files when upgrading (specify file/dir paths separated by spaces) -DeleteFilesOnUpgrade="libsdl-DownloadFinished-0.flag .ninslash/settings.cfg" +DeleteFilesOnUpgrade="libsdl-DownloadFinished-0.flag" # Here you may type readme text, which will be shown during startup. Format is: # Text in English, use \\\\n to separate lines (that's four backslashes)^de:Text in Deutsch^ru:Text in Russian^button:Button that will open some URL:http://url-to-open/ @@ -226,7 +226,7 @@ TouchscreenKeysTheme=2 RedefinedKeysGamepad="LCTRL M Q TAB SPACE MOUSE_LEFT MOUSE_RIGHT E SPACE E" # How long to show startup menu button, in msec, 0 to disable startup menu -StartupMenuButtonTimeout=3000 +StartupMenuButtonTimeout=0 # Menu items to hide from startup menu, available menu items: # SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.CommandlineConfig SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced diff --git a/project/jni/application/ninslash/src b/project/jni/application/ninslash/src index 9b2cee79d..58d9dd865 160000 --- a/project/jni/application/ninslash/src +++ b/project/jni/application/ninslash/src @@ -1 +1 @@ -Subproject commit 9b2cee79d1e00fb3a19953c43b2e8a1e55538d63 +Subproject commit 58d9dd8655282adef12d648841f9ed837016a153 diff --git a/project/jni/application/openttd/AndroidBuild.sh b/project/jni/application/openttd/AndroidBuild.sh index 7fff92219..f08044bbb 100755 --- a/project/jni/application/openttd/AndroidBuild.sh +++ b/project/jni/application/openttd/AndroidBuild.sh @@ -15,7 +15,7 @@ export ARCH=$1 [ -e openttd-$VER-$1/Makefile ] || { rm -f src/src/rev.cpp env PATH=$LOCAL_PATH/..:$PATH \ - env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --endian=LE" + env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity='pkg-config libtimidity' --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --endian=LE" } || exit 1 NCPU=4 diff --git a/project/jni/application/openttd/src b/project/jni/application/openttd/src index b394d53be..6fe577996 160000 --- a/project/jni/application/openttd/src +++ b/project/jni/application/openttd/src @@ -1 +1 @@ -Subproject commit b394d53be82ec280e9c0909ce42779e6625c107c +Subproject commit 6fe5779964d63624cfc3f0541ad46ad1d65ccc69 diff --git a/project/jni/application/supertux/readme.txt b/project/jni/application/supertux/readme.txt new file mode 100644 index 000000000..e8ace4ff3 --- /dev/null +++ b/project/jni/application/supertux/readme.txt @@ -0,0 +1,10 @@ +To compile Android version: +1. Use Debian or Ubuntu or MacOsX. Windows is not supported, but you can try to use Bash shell on Windows 10. +2. Install Android SDK: https://developer.android.com/studio/index.html#downloads +3. Install Android NDK: https://developer.android.com/ndk/downloads/index.html +4. Install Java and Ant: sudo apt-get install ant openjdk-8-jdk build-essential +5. Download SDL Git repo: git clone https://github.com/pelya/commandergenius +6. git submodule update --init --recursive project/jni/application/supertux/supertux +7. ./build.sh supertux + +You may also use source archive at https://sourceforge.net/projects/libsdl-android/files/apk/SuperTux/ diff --git a/project/jni/application/vice/vice b/project/jni/application/vice/vice index 0b817c357..9f2803c7a 160000 --- a/project/jni/application/vice/vice +++ b/project/jni/application/vice/vice @@ -1 +1 @@ -Subproject commit 0b817c357e5a25d37df98d97930469bd485ebb4c +Subproject commit 9f2803c7abdb760845c2fa64cba0fd1b206d25a5 diff --git a/project/jni/boost/src b/project/jni/boost/src index 5824acb45..bc9ea9d30 160000 --- a/project/jni/boost/src +++ b/project/jni/boost/src @@ -1 +1 @@ -Subproject commit 5824acb451e671205afeb188576be1dd9a2674bd +Subproject commit bc9ea9d3032eb1e2b095484e2052aa2bc2e91767 diff --git a/project/jni/gl4es/Android.mk b/project/jni/gl4es/Android.mk index 4c760222c..600711596 100755 --- a/project/jni/gl4es/Android.mk +++ b/project/jni/gl4es/Android.mk @@ -41,8 +41,6 @@ LOCAL_SRC_FILES := \ src/gl/texture.c \ src/gl/wrap/gl.c \ src/gl/wrap/gles.c \ - src/gl/wrap/gles2.c \ - src/gl/wrap/glesext.c \ src/gl/wrap/glstub.c \ src/gl/math/eval.c \ src/glx/hardext.c \ diff --git a/project/jni/gl4es/README.md b/project/jni/gl4es/README.md index ee7094c94..cf6f33e6f 100755 --- a/project/jni/gl4es/README.md +++ b/project/jni/gl4es/README.md @@ -227,15 +227,28 @@ Initial Hardware test ##### LIBGL_NOVAOCACHE VAO Caching - * 0 : Default, tr to cache vao to avoid memcpy in render list + * 0 : Default, try to cache vao to avoid memcpy in render list * 1 : Don't cache VAO +##### LIBGL_VABGRA +Vertex Array BGRA extension + * 0 : Default, GL_ARB_vertex_array_bgra not exposed (still emulated) + * 1 : Extension exposed may be faster in some cases (Arx Libertatis mainly) + ---- Version history ---- -##### current version +##### Current version + * Added some optimisations for sequencial glBegin/glEnd blocks + * Fixed many issue with Lights introduced with 0.9.4 + * Fixed Android build introduced with 0.9.4 + +##### 0.9.4 + * Fixed some extended functions (like glBlendFuncSeparate) not working inside list (fixing some issues with Batch mode) + * Added back GL_TEXTURE_RECTANGLE_ARB handling (and using npot texture, even limited, if available) + * Added tracking of Lights and Materials * Fixed (Added in fact) support for Multisampling on the GLX Context creation (a bit hacky, but seems to works) * Added LIBGL_NODOWNSAMPLING and associated Hint * Try to implement some caching on VAO to avoid some memcpy in renderlist (with a way to disable it just in case) diff --git a/project/jni/gl4es/spec/build b/project/jni/gl4es/spec/build index cf8d0eaed..034696062 100755 --- a/project/jni/gl4es/spec/build +++ b/project/jni/gl4es/spec/build @@ -2,18 +2,16 @@ cd "$(dirname "$0")" base=../src/ -gles1=$(ls -1 yml/*-1.1.yml | tr '\n' ',' | sed -e 's/,$//') +if [ -e yml/gles-1.1-full.yml ]; then rm yml/gles-1.1-full.yml ;fi +touch yml/gles-1.1-full.yml +cat yml/*-1.1.yml >> yml/gles-1.1-full.yml +gles1=$(ls -1 yml/*-1.1-full.yml | tr '\n' ',' | sed -e 's/,$//') gles=$(ls -1 yml/*es-1.1.yml | tr '\n' ',' | sed -e 's/,$//') glext=$(ls -1 yml/*ext-1.1.yml | tr '\n' ',' | sed -e 's/,$//') -#gles2=$(ls -1 yml/*-2.0.yml | tr '\n' ',' | sed -e 's/,$//') -./gen.py "$gles" --ifndef USE_ES2 gleswrap.c.j2 gleswrap.c gles.h > "$base/gl/wrap/gles.c" -./gen.py "$glext" --ifndef USE_ES2 glextwrap.c.j2 glextwrap.c gles.h > "$base/gl/wrap/glesext.c" -./gen.py "$gles1" --ifndef USE_ES2 glwrap.h.j2 gleswrap.h ../gl.h > "$base/gl/wrap/gles.h" -./gen.py "$gles1" --ifndef USE_ES2 glxfuncs.j2 glxfuncs.inc ../gl/gl.h > "$base/glx/glesfuncs.inc" +#./gen.py "$gles" gleswrap.c.j2 gleswrap.c gles.h > "$base/gl/wrap/gles.c" +#./gen.py "$glext" glextwrap.c.j2 glextwrap.c gles.h > "$base/gl/wrap/glesext.c" +./gen.py "$gles1" gleswrap.c.j2 gleswrap.c gles.h > "$base/gl/wrap/gles.c" +./gen.py "$gles1" glwrap.h.j2 gleswrap.h ../gl.h > "$base/gl/wrap/gles.h" +./gen.py "$gles1" glxfuncs.j2 glxfuncs.inc ../gl/gl.h > "$base/glx/glesfuncs.inc" -#./gen.py "$gles2" --ifdef USE_ES2 gleswrap.c.j2 gles2wrap.c gles2.h > "$base/gl/wrap/gles2.c" -#./gen.py "$gles2" --ifdef USE_ES2 glwrap.h.j2 gles2wrap.h ../gl.h > "$base/gl/wrap/gles2.h" -#./gen.py "$gles2" --ifdef USE_ES2 glxfuncs.j2 gles2funcs.inc ../gl/gl.h > "$base/glx/gles2funcs.inc" - -# ./gen.py "yml/egl.yml" eglwrap.c.j2 eglwrap.c "" > "$base/gl/wrap/egl.c" & diff --git a/project/jni/gl4es/spec/gen.py b/project/jni/gl4es/spec/gen.py index cc0ab3e55..576620626 100755 --- a/project/jni/gl4es/spec/gen.py +++ b/project/jni/gl4es/spec/gen.py @@ -91,6 +91,11 @@ def gen(files, template, guard_name, headers, else: ret = 'void' + loadlib = 'LOAD_GLES' + if name.endswith('_OES_'): + loadlib = 'LOAD_GLES_OES' + name = name[:-5] + args = [split_arg(arg) for arg in args if not arg == 'void'] if any(arg.get('type') == 'unknown' for arg in args): continue @@ -112,6 +117,7 @@ def gen(files, template, guard_name, headers, 'args': args, 'types': types, 'void': ret == 'void', + 'loadlib': loadlib, }) if not types in unique_formats: unique_formats.add(types) diff --git a/project/jni/gl4es/spec/template/base/wrap.c.j2 b/project/jni/gl4es/spec/template/base/wrap.c.j2 index 944fb1508..a87b8888e 100755 --- a/project/jni/gl4es/spec/template/base/wrap.c.j2 +++ b/project/jni/gl4es/spec/template/base/wrap.c.j2 @@ -3,7 +3,7 @@ {% include "base/headers.j2" %} {% for func in functions %} {% block definition scoped %} -{{ func.return }} glshim_{{ func.name }}({{ func.args|args }}) { +{{ func.return }} gl4es_{{ 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) }}); diff --git a/project/jni/gl4es/spec/template/gleswrap.c.j2 b/project/jni/gl4es/spec/template/gleswrap.c.j2 index bb6669b95..b9a1d527d 100755 --- a/project/jni/gl4es/spec/template/gleswrap.c.j2 +++ b/project/jni/gl4es/spec/template/gleswrap.c.j2 @@ -18,7 +18,7 @@ #endif {% endblock %} {% block load %} - LOAD_GLES({{ func.name }}); + {{ func.loadlib }}({{ func.name }}); {% endblock %} {% block call %} #ifndef direct_{{ func.name }} diff --git a/project/jni/gl4es/spec/template/glextwrap.c.j2 b/project/jni/gl4es/spec/template/glextwrap.c.j2 index d4df290f1..6f01c3e3b 100755 --- a/project/jni/gl4es/spec/template/glextwrap.c.j2 +++ b/project/jni/gl4es/spec/template/glextwrap.c.j2 @@ -9,7 +9,7 @@ #endif {% endblock %} {% block load %} - LOAD_GLES_OES({{ func.name }}); + {{ func.loadlib }}({{ func.name }}); {% endblock %} {% block call %} #ifndef direct_{{ func.name }} diff --git a/project/jni/gl4es/spec/template/glwrap.h.j2 b/project/jni/gl4es/spec/template/glwrap.h.j2 index 49e470137..a892e0c46 100755 --- a/project/jni/gl4es/spec/template/glwrap.h.j2 +++ b/project/jni/gl4es/spec/template/glwrap.h.j2 @@ -7,7 +7,7 @@ #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 = glshim_{{ func.name }}; \ + packed_data->func = gl4es_{{ func.name }}; \ {% if func.args %} {% for arg in func.args %} packed_data->args.a{{ loop.index }} = ({{ arg.type|unconst }}){{ arg.name }}; \ diff --git a/project/jni/gl4es/spec/yml/glext-1.1.yml b/project/jni/gl4es/spec/yml/glext-1.1.yml index 87630ef23..c10e0789c 100755 --- a/project/jni/gl4es/spec/yml/glext-1.1.yml +++ b/project/jni/gl4es/spec/yml/glext-1.1.yml @@ -1,30 +1,30 @@ -glBlendColor: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] -glBlendEquation: [void, GLenum mode] -glBlendEquationSeparate: [void, GLenum modeRGB, GLenum modeA] -glBlendFuncSeparate: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] -# glTexGenfOES: [void, GLenum coord, GLenum pname, GLfloat param] -glTexGenfv: [void, GLenum coord, GLenum pname, "const GLfloat *params"] -glTexGeni: [void, GLenum coord, GLenum pname, GLint param] -# glTexGenivOES: [void, GLenum coord, GLenum pname, "const GLint *params"] +glBlendColor_OES_: [void, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha] +glBlendEquation_OES_: [void, GLenum mode] +glBlendEquationSeparate_OES_: [void, GLenum modeRGB, GLenum modeA] +glBlendFuncSeparate_OES_: [void, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha] +# glTexGenfOES_OES_: [void, GLenum coord, GLenum pname, GLfloat param] +glTexGenfv_OES_: [void, GLenum coord, GLenum pname, "const GLfloat *params"] +glTexGeni_OES_: [void, GLenum coord, GLenum pname, GLint param] +# glTexGenivOES_OES_: [void, GLenum coord, GLenum pname, "const GLint *params"] -glGenFramebuffers: [void, GLsizei n, "GLuint *ids"] -glDeleteFramebuffers: [void, GLsizei n, "GLuint *framebuffers"] -glIsFramebuffer: [GLboolean, GLuint framebuffer] -glCheckFramebufferStatus: [GLenum, GLenum target] -glBindFramebuffer: [void, GLenum target, GLuint framebuffer] -glFramebufferTexture2D: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] -glGenRenderbuffers: [void, GLsizei n, "GLuint *renderbuffers"] -glFramebufferRenderbuffer: [void, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] -glDeleteRenderbuffers: [void, GLsizei n, "GLuint *renderbuffers"] -glRenderbufferStorage: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height] -glBindRenderbuffer: [void, GLenum target, GLuint renderbuffer] -glIsRenderbuffer: [GLboolean, GLuint renderbuffer] -glGenerateMipmap: [void, GLenum target] -glGetFramebufferAttachmentParameteriv: [void, GLenum target, GLenum attachment, GLenum pname, "GLint *params"] -glGetRenderbufferParameteriv: [void, GLenum target, GLenum pname, "GLint * params"] +glGenFramebuffers_OES_: [void, GLsizei n, "GLuint *ids"] +glDeleteFramebuffers_OES_: [void, GLsizei n, "GLuint *framebuffers"] +glIsFramebuffer_OES_: [GLboolean, GLuint framebuffer] +glCheckFramebufferStatus_OES_: [GLenum, GLenum target] +glBindFramebuffer_OES_: [void, GLenum target, GLuint framebuffer] +glFramebufferTexture2D_OES_: [void, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level] +glGenRenderbuffers_OES_: [void, GLsizei n, "GLuint *renderbuffers"] +glFramebufferRenderbuffer_OES_: [void, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer] +glDeleteRenderbuffers_OES_: [void, GLsizei n, "GLuint *renderbuffers"] +glRenderbufferStorage_OES_: [void, GLenum target, GLenum internalformat, GLsizei width, GLsizei height] +glBindRenderbuffer_OES_: [void, GLenum target, GLuint renderbuffer] +glIsRenderbuffer_OES_: [GLboolean, GLuint renderbuffer] +glGenerateMipmap_OES_: [void, GLenum target] +glGetFramebufferAttachmentParameteriv_OES_: [void, GLenum target, GLenum attachment, GLenum pname, "GLint *params"] +glGetRenderbufferParameteriv_OES_: [void, GLenum target, GLenum pname, "GLint * params"] -glDrawTexi: [void, GLint x, GLint y, GLint z, GLint width, GLint height] -glDrawTexf: [void, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height] +glDrawTexi_OES_: [void, GLint x, GLint y, GLint z, GLint width, GLint height] +glDrawTexf_OES_: [void, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height] -glMultiDrawArrays: [void, GLenum mode, "const GLint *first", "const GLsizei *count", GLsizei primcount] -glMultiDrawElements: [void, GLenum mode, "GLsizei *count", GLenum type, "const void * const *indices", GLsizei primcount] +glMultiDrawArrays_OES_: [void, GLenum mode, "const GLint *first", "const GLsizei *count", GLsizei primcount] +glMultiDrawElements_OES_: [void, GLenum mode, "GLsizei *count", GLenum type, "const void * const *indices", GLsizei primcount] diff --git a/project/jni/gl4es/src/CMakeLists.txt b/project/jni/gl4es/src/CMakeLists.txt index 29152b34c..1254a671a 100755 --- a/project/jni/gl4es/src/CMakeLists.txt +++ b/project/jni/gl4es/src/CMakeLists.txt @@ -28,8 +28,6 @@ SET(GL_SRC gl/texture.c gl/wrap/gl.c gl/wrap/gles.c - gl/wrap/gles2.c - gl/wrap/glesext.c gl/wrap/glstub.c gl/math/eval.c ) @@ -67,7 +65,6 @@ SET(GL_H gl/texture.h gl/math/eval.h gl/wrap/es.h - gl/wrap/gles2.h gl/wrap/gles.h gl/wrap/gl.h gl/wrap/stub.h diff --git a/project/jni/gl4es/src/config.h b/project/jni/gl4es/src/config.h index b6987af1c..9699f502a 100755 --- a/project/jni/gl4es/src/config.h +++ b/project/jni/gl4es/src/config.h @@ -15,8 +15,6 @@ #define skip_glDisable #define skip_glEnable #define skip_glIsEnabled -#define skip_glMaterialfv -#define skip_glMaterialf #define skip_glNormal3f #define skip_glBindBuffer @@ -51,6 +49,8 @@ #define skip_glGetIntegerv #define skip_glGetFloatv #define skip_glGetString +#define skip_glGetLightfv +#define skip_glGetMaterialfv // hint.c #define skip_glHint @@ -60,6 +60,8 @@ #define skip_glLightModelfv #define skip_glLightfv #define skip_glLightf +#define skip_glMaterialfv +#define skip_glMaterialf // raster.c #define skip_glViewport @@ -139,6 +141,9 @@ // MultiDrawArrays #define skip_glMultiDrawArrays #define skip_glMultiDrawElements +// this is to avoid a warning. I don't Push those anyway +#define direct_glMultiDrawArrays +#define direct_glMultiDrawElements // don't compile these into display lists #define direct_glColorPointer @@ -146,7 +151,7 @@ #define direct_glDisableClientState #define direct_glEdgeFlagPointer #define direct_glEnableClientState -#define direct_glClientActiveTexture +//#define direct_glClientActiveTexture // will use it in Batch mode #define direct_glFeedbackBuffer #define direct_glGenLists #define direct_glIndexPointer diff --git a/project/jni/gl4es/src/gl/buffers.c b/project/jni/gl4es/src/gl/buffers.c index 2ece32c9c..159f8b47f 100755 --- a/project/jni/gl4es/src/gl/buffers.c +++ b/project/jni/gl4es/src/gl/buffers.c @@ -69,9 +69,8 @@ void gl4es_glGenBuffers(GLsizei n, GLuint * buffers) { void gl4es_glBindBuffer(GLenum target, GLuint buffer) { //printf("glBindBuffer(%s, %u)\n", PrintEnum(target), buffer); - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) flush(); - } khint_t k; int ret; @@ -162,9 +161,8 @@ void gl4es_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, cons void gl4es_glDeleteBuffers(GLsizei n, const GLuint * buffers) { //printf("glDeleteBuffers(%i, %p)\n", n, buffers); - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) flush(); - } VaoSharedClear(glstate->vao); khash_t(buff) *list = glstate->buffers; @@ -272,6 +270,10 @@ void *gl4es_glMapBuffer(GLenum target, GLenum access) { GLboolean gl4es_glUnmapBuffer(GLenum target) { //printf("glUnmapBuffer(%s)\n", PrintEnum(target)); + if(glstate->list.compiling) {errorShim(GL_INVALID_OPERATION); return GL_FALSE;} + if(glstate->list.active) + flush(); + if (!buffer_target(target)) { errorShim(GL_INVALID_ENUM); return GL_FALSE; @@ -368,9 +370,8 @@ void gl4es_glGenVertexArrays(GLsizei n, GLuint *arrays) { } void gl4es_glBindVertexArray(GLuint array) { //printf("glBindVertexArray(%u)\n", array); - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) flush(); - } khint_t k; int ret; @@ -412,9 +413,9 @@ void gl4es_glBindVertexArray(GLuint array) { } void gl4es_glDeleteVertexArrays(GLsizei n, const GLuint *arrays) { //printf("glDeleteVertexArrays(%i, %p)\n", n, arrays); - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) flush(); - } + khash_t(glvao) *list = glstate->vaos; if (list) { khint_t k; diff --git a/project/jni/gl4es/src/gl/const.h b/project/jni/gl4es/src/gl/const.h index a8705409e..b70e5fb53 100755 --- a/project/jni/gl4es/src/gl/const.h +++ b/project/jni/gl4es/src/gl/const.h @@ -2,6 +2,8 @@ #define GL_QUAD_STRIP 8 #define GL_POLYGON 9 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C /* texture mapping */ #define GL_TEXTURE_ENV 0x2300 #define GL_TEXTURE_ENV_MODE 0x2200 @@ -10,6 +12,7 @@ #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TEXTURE_WRAP_R 0x8072 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_ENV_COLOR 0x2201 diff --git a/project/jni/gl4es/src/gl/debug.c b/project/jni/gl4es/src/gl/debug.c index 0a7cb4692..165d6643a 100755 --- a/project/jni/gl4es/src/gl/debug.c +++ b/project/jni/gl4es/src/gl/debug.c @@ -135,6 +135,30 @@ const char* PrintEnum(GLenum what) { p(GL_PROJECTION); p(GL_MODELVIEW); p(GL_TEXTURE); + // blend + p(GL_SRC_ALPHA); + p(GL_DST_ALPHA); + p(GL_ONE_MINUS_SRC_ALPHA); + p(GL_ONE_MINUS_DST_ALPHA); + // lights + p(GL_LIGHT0); + p(GL_LIGHT1); + p(GL_LIGHT2); + p(GL_LIGHT3); + p(GL_LIGHT4); + p(GL_LIGHT5); + p(GL_LIGHT6); + p(GL_LIGHT7); + p(GL_AMBIENT); + p(GL_DIFFUSE); + p(GL_SPECULAR); + p(GL_POSITION); + p(GL_SPOT_DIRECTION); + p(GL_SPOT_EXPONENT); + p(GL_SPOT_CUTOFF); + p(GL_CONSTANT_ATTENUATION); + p(GL_LINEAR_ATTENUATION); + p(GL_QUADRATIC_ATTENUATION); default: sprintf(fallback, "0x%04X", what); } diff --git a/project/jni/gl4es/src/gl/getter.c b/project/jni/gl4es/src/gl/getter.c index ddc9cd50e..3854e9332 100755 --- a/project/jni/gl4es/src/gl/getter.c +++ b/project/jni/gl4es/src/gl/getter.c @@ -3,6 +3,7 @@ #include "texgen.h" #include "../glx/hardext.h" #include "gl4eshint.h" +#include "light.h" GLenum gl4es_glGetError() { LOAD_GLES(glGetError); @@ -99,10 +100,11 @@ const GLubyte *gl4es_glGetString(GLenum name) { "GL_EXT_texture_object " "GL_EXT_polygon_offset " "GL_GL4ES_hint " - "GL_ARB_vertex_array_bgra " + "GL_ARB_texture_rectangle " // "GL_EXT_blend_logic_op " -// "GL_ARB_texture_cube_map " ); + if(globals4es.vabgra) + strcat(extensions, "GL_ARB_vertex_array_bgra "); if(globals4es.npot>=1) strcat(extensions, "GL_APPLE_texture_2D_limited_npot "); if(globals4es.npot>=2) @@ -159,6 +161,12 @@ void gl4es_glGetIntegerv(GLenum pname, GLint *params) { if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) flush(); noerrorShim(); switch (pname) { + case GL_MAJOR_VERSION: + *params = 1; + break; + case GL_MINOR_VERSION: + *params = 5; + break; case GL_MAX_ELEMENTS_INDICES: *params = 1024; break; @@ -295,6 +303,16 @@ void gl4es_glGetIntegerv(GLenum pname, GLint *params) { case GL_MATRIX_MODE: *params=glstate->matrix_mode; break; + case GL_LIGHT_MODEL_TWO_SIDE: + *params=glstate->light.two_side; + break; + case GL_LIGHT_MODEL_AMBIENT: + for (dummy=0; dummy<4; dummy++) + params[dummy]=glstate->light.ambient[dummy]; + break; + case GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB: + *params=hardext.maxsize; + break; case GL_SHRINK_HINT_GL4ES: *params=globals4es.texshrink; break; @@ -337,6 +355,12 @@ void gl4es_glGetFloatv(GLenum pname, GLfloat *params) { if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) flush(); noerrorShim(); switch (pname) { + case GL_MAJOR_VERSION: + *params = 1; + break; + case GL_MINOR_VERSION: + *params = 5; + break; case GL_MAX_ELEMENTS_INDICES: *params = 1024; break; @@ -459,6 +483,15 @@ void gl4es_glGetFloatv(GLenum pname, GLfloat *params) { case GL_TEXTURE_MATRIX: memcpy(params, TOP(texture_matrix[glstate->texture.active]), 16*sizeof(GLfloat)); break; + case GL_LIGHT_MODEL_TWO_SIDE: + *params=glstate->light.two_side; + break; + case GL_LIGHT_MODEL_AMBIENT: + memcpy(params, glstate->light.ambient, 4*sizeof(GLfloat)); + break; + case GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB: + *params=hardext.maxsize; + break; case GL_SHRINK_HINT_GL4ES: *params=globals4es.texshrink; break; @@ -498,3 +531,103 @@ void gl4es_glGetFloatv(GLenum pname, GLfloat *params) { } } void glGetFloatv(GLenum pname, GLfloat *params) AliasExport("gl4es_glGetFloatv"); + +void gl4es_glGetLightfv(GLenum light, GLenum pname, GLfloat * params) { + const int nl = light-GL_LIGHT0; + if(nl<0 || nl>=hardext.maxlights) { + errorShim(GL_INVALID_ENUM); + return; + } + switch(pname) { + case GL_AMBIENT: + memcpy(params, glstate->light.lights[nl].ambient, 4*sizeof(GLfloat)); + break; + case GL_DIFFUSE: + memcpy(params, glstate->light.lights[nl].diffuse, 4*sizeof(GLfloat)); + break; + case GL_SPECULAR: + memcpy(params, glstate->light.lights[nl].specular, 4*sizeof(GLfloat)); + break; + case GL_POSITION: + memcpy(params, glstate->light.lights[nl].position, 4*sizeof(GLfloat)); + break; + case GL_SPOT_DIRECTION: + memcpy(params, glstate->light.lights[nl].spotDirection, 3*sizeof(GLfloat)); + break; + case GL_SPOT_EXPONENT: + params[0] = glstate->light.lights[nl].spotExponent; + break; + case GL_SPOT_CUTOFF: + params[0] = glstate->light.lights[nl].spotCutoff; + break; + case GL_CONSTANT_ATTENUATION: + params[0] = glstate->light.lights[nl].constantAttenuation; + break; + case GL_LINEAR_ATTENUATION: + params[0] = glstate->light.lights[nl].linearAttenuation; + break; + case GL_QUADRATIC_ATTENUATION: + params[0] = glstate->light.lights[nl].quadraticAttenuation; + break; + default: + errorShim(GL_INVALID_ENUM); + return; + } + noerrorShim(); +} +void glGetLightfv(GLenum pname, GLfloat *params) AliasExport("gl4es_glGetLightfv"); + +void gl4es_glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) { + if(face!=GL_FRONT && face!=GL_BACK) { + errorShim(GL_INVALID_ENUM); + return; + } + switch(pname) { + case GL_AMBIENT: + if(face==GL_FRONT) + memcpy(params, glstate->material.front.ambient, 4*sizeof(GLfloat)); + if(face==GL_BACK) + memcpy(params, glstate->material.back.ambient, 4*sizeof(GLfloat)); + break; + case GL_DIFFUSE: + if(face==GL_FRONT) + memcpy(params, glstate->material.front.diffuse, 4*sizeof(GLfloat)); + if(face==GL_BACK) + memcpy(params, glstate->material.back.diffuse, 4*sizeof(GLfloat)); + break; + case GL_SPECULAR: + if(face==GL_FRONT) + memcpy(params, glstate->material.front.specular, 4*sizeof(GLfloat)); + if(face==GL_BACK) + memcpy(params, glstate->material.back.specular, 4*sizeof(GLfloat)); + break; + case GL_EMISSION: + if(face==GL_FRONT) + memcpy(params, glstate->material.front.emission, 4*sizeof(GLfloat)); + if(face==GL_BACK) + memcpy(params, glstate->material.back.emission, 4*sizeof(GLfloat)); + break; + case GL_SHININESS: + if(face==GL_FRONT) + *params = glstate->material.front.shininess; + if(face==GL_BACK) + *params = glstate->material.back.shininess; + break; + case GL_COLOR_INDEXES: + if(face==GL_FRONT) { + params[0] = glstate->material.front.indexes[0]; + params[1] = glstate->material.front.indexes[1]; + params[2] = glstate->material.front.indexes[2]; + } + if(face==GL_BACK) { + params[0] = glstate->material.back.indexes[0]; + params[1] = glstate->material.back.indexes[1]; + params[2] = glstate->material.back.indexes[2]; + } + default: + errorShim(GL_INVALID_ENUM); + return; + } + noerrorShim(); +} +void glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) AliasExport("gl4es_glGetMaterialfv"); \ No newline at end of file diff --git a/project/jni/gl4es/src/gl/gl.c b/project/jni/gl4es/src/gl/gl.c index f3d3e27ad..00f09dab1 100755 --- a/project/jni/gl4es/src/gl/gl.c +++ b/project/jni/gl4es/src/gl/gl.c @@ -20,7 +20,7 @@ void* NewGLState(void* shared_glstate) { memset(glstate, 0, sizeof(glstate_t)); memcpy(glstate->color, white, sizeof(GLfloat)*4); glstate->last_error = GL_NO_ERROR; - glstate->normal[3] = 1.0f; // default normal is 0/0/1 + glstate->normal[2] = 1.0f; // default normal is 0/0/1 glstate->matrix_mode = GL_MODELVIEW; // add default VBO @@ -66,6 +66,35 @@ void* NewGLState(void* shared_glstate) { // init the matrix tracking init_matrix(glstate); + // init the light tracking + glstate->light.ambient[0]=glstate->light.ambient[1]=glstate->light.ambient[2]=0.2f; + glstate->light.ambient[3]=1.0f; + glstate->light.lights[0].diffuse[0]= + glstate->light.lights[0].diffuse[1]= + glstate->light.lights[0].diffuse[2]= + glstate->light.lights[0].diffuse[3]=1.0f; + memcpy(glstate->light.lights[0].specular, glstate->light.lights[0].diffuse, 4*sizeof(GLfloat)); + for (int i=0; ilight.lights[i].ambient[3] = 1.0f; + glstate->light.lights[i].position[2] = 1.0f; + glstate->light.lights[i].spotDirection[2] = -1.0f; + glstate->light.lights[i].spotCutoff = 180; + glstate->light.lights[i].constantAttenuation = 1; + } + // Materials + glstate->material.front.ambient[0] = + glstate->material.front.ambient[1] = + glstate->material.front.ambient[2] = 0.2f; + glstate->material.front.ambient[3] = 1.0f; + glstate->material.front.diffuse[0] = + glstate->material.front.diffuse[1] = + glstate->material.front.diffuse[2] = 0.8f; + glstate->material.front.diffuse[3] = 1.0f; + glstate->material.front.specular[3] = 1.0f; + glstate->material.front.emission[3] = 1.0f; + glstate->material.front.colormat = GL_AMBIENT_AND_DIFFUSE; + memcpy(&glstate->material.back, &glstate->material.front, sizeof(material_t)); + for(int i=0; i<4; i++) glstate->raster.raster_scale[i] = 1.0f; LOAD_GLES(glGetFloatv); @@ -235,6 +264,12 @@ static void proxy_glEnable(GLenum cap, bool enable, void (*next)(GLenum)) { else glstate->enable.texture[glstate->texture.active] &= ~(1<enable.texture[glstate->texture.active] |= (1<enable.texture[glstate->texture.active] &= ~(1<enable.texture[glstate->texture.active] |= (1<list.active && (glstate->gl_batch && !glstate->list.compiling)) + if (glstate->list.active && !glstate->list.compiling) flush(); LOAD_GLES(glEnableClientState); proxy_glEnable(cap, true, gles_glEnableClientState); @@ -322,8 +358,9 @@ void gl4es_glEnableClientState(GLenum cap) { void glEnableClientState(GLenum cap) AliasExport("gl4es_glEnableClientState"); void gl4es_glDisableClientState(GLenum cap) { + ERROR_IN_BEGIN // should flush for now... to be optimized later! - if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) + if (glstate->list.active && !glstate->list.compiling) flush(); LOAD_GLES(glDisableClientState); proxy_glEnable(cap, false, gles_glDisableClientState); @@ -337,8 +374,10 @@ void glDisableClientState(GLenum cap) AliasExport("gl4es_glDisableClientState"); case what: return glstate->vao->where GLboolean gl4es_glIsEnabled(GLenum cap) { + if(glstate->list.begin) {errorShim(GL_INVALID_OPERATION); return GL_FALSE;} + if(glstate->list.compiling) {errorShim(GL_INVALID_OPERATION); return GL_FALSE;} // should flush for now... to be optimized later! - if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) + if (glstate->list.active) flush(); LOAD_GLES(glIsEnabled); noerrorShim(); @@ -517,7 +556,7 @@ static inline bool should_intercept_render(GLenum mode) { return ( (glstate->vao->vertex_array && ! valid_vertex_type(glstate->vao->pointers.vertex.type)) || (mode == GL_LINES && glstate->enable.line_stipple) || - /*(mode == GL_QUADS) ||*/ (glstate->list.active && (glstate->list.compiling || glstate->gl_batch)) + /*(mode == GL_QUADS) ||*/ (glstate->list.active) ); } @@ -525,6 +564,8 @@ void gl4es_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid //printf("glDrawElements(%s, %d, %s, %p), vtx=%p map=%p\n", PrintEnum(mode), count, PrintEnum(type), indices, (glstate->vao->vertex)?glstate->vao->vertex->data:NULL, (glstate->vao->elements)?glstate->vao->elements->data:NULL); // TODO: split for count > 65535? // special check for QUADS and TRIANGLES that need multiple of 4 or 3 vertex... + if(glstate->list.active && !glstate->list.compiling && glstate->gl_batch) + flush(); if (mode == GL_QUADS) while(count%4) count--; else if (mode == GL_TRIANGLES) while(count%3) count--; @@ -545,7 +586,7 @@ void gl4es_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid type, 1, 0, GL_UNSIGNED_SHORT, 1, 0, count); else sindices = (glstate->vao->elements)?(glstate->vao->elements->data + (uintptr_t)indices):(GLvoid*)indices; - bool compiling = (glstate->list.active && (glstate->list.compiling || glstate->gl_batch)); + bool compiling = (glstate->list.active); if (compiling) { renderlist_t *list = NULL; @@ -648,7 +689,7 @@ void gl4es_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid // get 1st enabled target const GLint itarget = get_target(glstate->enable.texture[aa]); if (itarget>=0) { - if (itarget==ENABLED_TEX1D || itarget==ENABLED_TEX3D) { + if (!IS_TEX2D(glstate->enable.texture[aa]) && (IS_ANYTEX(glstate->enable.texture[aa]))) { TEXTURE(aa); gles_glEnable(GL_TEXTURE_2D); } @@ -686,6 +727,8 @@ void gl4es_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) AliasExport("gl4es_glDrawElements"); void gl4es_glDrawArrays(GLenum mode, GLint first, GLsizei count) { + if(glstate->list.active && !glstate->list.compiling && glstate->gl_batch) + flush(); // special check for QUADS and TRIANGLES that need multiple of 4 or 3 vertex... if (mode == GL_QUADS) while(count%4) count--; else if (mode == GL_TRIANGLES) while(count%3) count--; @@ -719,7 +762,7 @@ void gl4es_glDrawArrays(GLenum mode, GLint first, GLsizei count) { LOAD_GLES(glDisableClientState); LOAD_GLES(glMultiTexCoord4f); - if (glstate->list.active && (glstate->list.compiling || glstate->gl_batch)) { + if (glstate->list.active) { NewStage(glstate->list.active, STAGE_DRAW); glstate->list.active = arrays_to_renderlist(glstate->list.active, mode, first, count+first); glstate->list.active = extend_renderlist(glstate->list.active); @@ -795,7 +838,7 @@ void gl4es_glDrawArrays(GLenum mode, GLint first, GLsizei count) { // get 1st enabled target const GLint itarget = get_target(glstate->enable.texture[aa]); if(itarget>=0) { - if (itarget==ENABLED_TEX1D || itarget==ENABLED_TEX3D) { + if (itarget==ENABLED_TEX1D || itarget==ENABLED_TEX3D || itarget==ENABLED_TEXTURE_RECTANGLE) { TEXTURE(aa); gles_glEnable(GL_TEXTURE_2D); } @@ -817,7 +860,8 @@ void gl4es_glDrawArrays(GLenum mode, GLint first, GLsizei count) { gles_glDrawArrays(mode, first, count); for (int aa=0; aaenable.texture[aa]) && (IS_ANYTEX(glstate->enable.texture[aa]))) { + const GLint itarget = get_target(glstate->enable.texture[aa]); + if (itarget==ENABLED_TEX1D || itarget==ENABLED_TEX3D || itarget==ENABLED_TEXTURE_RECTANGLE) { TEXTURE(aa); gles_glDisable(GL_TEXTURE_2D); } @@ -983,9 +1027,12 @@ void glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer) A // immediate mode functions void gl4es_glBegin(GLenum mode) { + glstate->list.begin = 1; + glstate->list.pending = 0; if (!glstate->list.active) glstate->list.active = alloc_renderlist(); - NewStage(glstate->list.active, STAGE_DRAW); + // small optim... continue a render command if possible + NewDrawStage(glstate->list.active, mode); glstate->list.active->mode = mode; glstate->list.active->mode_init = mode; noerrorShim(); // TODO, check Enum validity @@ -994,19 +1041,24 @@ void glBegin(GLenum mode) AliasExport("gl4es_glBegin"); void gl4es_glEnd() { if (!glstate->list.active) return; + glstate->list.begin = 0; // check if TEXTUREx is activate and no TexCoord (or texgen), in that case, create a dummy one base on glstate->.. for (int a=0; aenable.texture[a] && ((glstate->list.active->tex[a]==0) && !(glstate->enable.texgen_s[a] || glstate->texture.pscoordreplace[a]))) rlMultiTexCoord4f(glstate->list.active, GL_TEXTURE0+a, glstate->texcoord[a][0], glstate->texcoord[a][1], glstate->texcoord[a][2], glstate->texcoord[a][3]); // render if we're not in a display list - if (!(glstate->list.compiling || glstate->gl_batch)) { + if (!(glstate->list.compiling || glstate->gl_batch) && (!(globals4es.mergelist) || (glstate->polygon_mode==GL_LINE))) { renderlist_t *mylist = glstate->list.active; glstate->list.active = NULL; mylist = end_renderlist(mylist); draw_renderlist(mylist); free_renderlist(mylist); } else { - glstate->list.active = extend_renderlist(glstate->list.active); + if(!(glstate->list.compiling || glstate->gl_batch)) { + glstate->list.pending = 1; + NewStage(glstate->list.active, STAGE_POSTDRAW); + } + else glstate->list.active = extend_renderlist(glstate->list.active); } noerrorShim(); } @@ -1015,12 +1067,16 @@ void glEnd() AliasExport("gl4es_glEnd"); void gl4es_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) { if (glstate->list.active) { if (glstate->list.active->stage != STAGE_DRAW) { - if (glstate->list.active->stage != STAGE_DRAW) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - glstate->list.active->lastNormal[0] = nx; glstate->list.active->lastNormal[1] = ny; glstate->list.active->lastNormal[2] = nz; - } - PUSH_IF_COMPILING(glNormal3f); + if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { + glstate->list.active->lastNormal[0] = nx; glstate->list.active->lastNormal[1] = ny; glstate->list.active->lastNormal[2] = nz; + } else if (glstate->list.pending && glstate->list.active->stage==STAGE_POSTDRAW) { + glstate->list.active->post_normals[0] = nx; glstate->list.active->post_normals[1] = ny; + glstate->list.active->post_normals[2] = nz; + glstate->list.active->post_normal = 1; + return; } + + PUSH_IF_COMPILING(glNormal3f); } else { rlNormal3f(glstate->list.active, nx, ny, nz); glstate->list.active->lastNormal[0] = nx; glstate->list.active->lastNormal[1] = ny; glstate->list.active->lastNormal[2] = nz; @@ -1049,13 +1105,23 @@ void glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) AliasExport("gl4es_g void gl4es_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { if (glstate->list.active) { if (glstate->list.active->stage != STAGE_DRAW) { - glstate->list.active->lastColors[0] = red; glstate->list.active->lastColors[1] = green; - glstate->list.active->lastColors[2] = blue; glstate->list.active->lastColors[3] = alpha; - glstate->list.active->lastColorsSet = 1; + if (glstate->list.compiling || glstate->gl_batch || glstate->list.active->stagelist.active->lastColors[0] = red; glstate->list.active->lastColors[1] = green; + glstate->list.active->lastColors[2] = blue; glstate->list.active->lastColors[3] = alpha; + glstate->list.active->lastColorsSet = 1; + PUSH_IF_COMPILING(glColor4f); + } + else if (glstate->list.pending && glstate->list.active->stage==STAGE_POSTDRAW) { + glstate->list.active->post_colors[0] = red; glstate->list.active->post_colors[1] = green; + glstate->list.active->post_colors[2] = blue; glstate->list.active->post_colors[3] = alpha; + glstate->list.active->post_color = 1; + return; + } PUSH_IF_COMPILING(glColor4f); + } else { + rlColor4f(glstate->list.active, red, green, blue, alpha); + noerrorShim(); } - rlColor4f(glstate->list.active, red, green, blue, alpha); - noerrorShim(); } #ifndef USE_ES2 else { @@ -1072,9 +1138,14 @@ void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) AliasExp void gl4es_glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b) { if (glstate->list.active) { - rlSecondary3f(glstate->list.active, r, g, b); - glstate->list.active->lastSecondaryColors[0] = r; glstate->list.active->lastSecondaryColors[1] = g; - glstate->list.active->lastSecondaryColors[2] = b; + if(glstate->list.pending) + flush(); + else + { + rlSecondary3f(glstate->list.active, r, g, b); + glstate->list.active->lastSecondaryColors[0] = r; glstate->list.active->lastSecondaryColors[1] = g; + glstate->list.active->lastSecondaryColors[2] = b; + } noerrorShim(); } else { noerrorShim(); @@ -1085,46 +1156,13 @@ void gl4es_glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b) { } void glSecondaryColor3f(GLfloat r, GLfloat g, GLfloat b) AliasExport("gl4es_glSecondaryColor3f"); -#ifndef USE_ES2 -void gl4es_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) { - LOAD_GLES(glMaterialfv); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - //TODO: Materialfv can be done per vertex, how to handle that ?! - //NewStage(glstate->list.active, STAGE_MATERIAL); - rlMaterialfv(glstate->list.active, face, pname, params); - noerrorShim(); - } else { - if (face!=GL_FRONT_AND_BACK) { - face=GL_FRONT_AND_BACK; - } - gles_glMaterialfv(face, pname, params); - errorGL(); - } -} -void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) AliasExport("gl4es_glMaterialfv"); -void gl4es_glMaterialf(GLenum face, GLenum pname, const GLfloat param) { - LOAD_GLES(glMaterialf); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - GLfloat params[4]; - memset(params, 0, 4*sizeof(GLfloat)); - params[0] = param; - NewStage(glstate->list.active, STAGE_MATERIAL); - rlMaterialfv(glstate->list.active, face, pname, params); - noerrorShim(); - } else { - if (face!=GL_FRONT_AND_BACK) { - face=GL_FRONT_AND_BACK; - } - gles_glMaterialf(face, pname, param); - errorGL(); - } -} -void glMaterialf(GLenum face, GLenum pname, const GLfloat param) AliasExport("gl4es_glMaterialf"); -#endif void gl4es_glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) { if (glstate->list.active) { - rlTexCoord4f(glstate->list.active, s, t, r, q); + if(glstate->list.pending) + flush(); + else + rlMultiTexCoord4f(glstate->list.active, GL_TEXTURE0, s, t, r, q); } noerrorShim(); glstate->texcoord[0][0] = s; glstate->texcoord[0][1] = t; @@ -1135,7 +1173,10 @@ void glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) AliasExport("gl4es void gl4es_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { // TODO, error if target is unsuported texture.... if (glstate->list.active) { - rlMultiTexCoord4f(glstate->list.active, target, s, t, r, q); + if(glstate->list.pending) + flush(); + else + rlMultiTexCoord4f(glstate->list.active, target, s, t, r, q); } noerrorShim(); glstate->texcoord[target-GL_TEXTURE0][0] = s; glstate->texcoord[target-GL_TEXTURE0][1] = t; @@ -1298,7 +1339,7 @@ void glEndList() AliasExport("gl4es_glEndList"); renderlist_t* append_calllist(renderlist_t *list, renderlist_t *a); void gl4es_glCallList(GLuint list) { noerrorShim(); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { + if (glstate->list.active) { glstate->list.active = append_calllist(glstate->list.active, gl4es_glGetList(list)); return; } @@ -1310,7 +1351,7 @@ void gl4es_glCallList(GLuint list) { void glCallList(GLuint list) AliasExport("gl4es_glCallList"); void glPushCall(void *call) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { + if (glstate->list.active) { NewStage(glstate->list.active, STAGE_GLCALL); rlPushCall(glstate->list.active, call); } @@ -1390,16 +1431,19 @@ GLboolean gl4es_glIsList(GLuint list) { GLboolean glIsList(GLuint list) AliasExport("gl4es_glIsList"); void gl4es_glPolygonMode(GLenum face, GLenum mode) { + ERROR_IN_BEGIN noerrorShim(); if (face != GL_FRONT_AND_BACK) errorShim(GL_INVALID_ENUM); if (face == GL_BACK) return; //TODO, handle face enum for polygon mode != GL_FILL - if ((glstate->list.compiling || glstate->gl_batch) && (glstate->list.active)) { - NewStage(glstate->list.active, STAGE_POLYGON); - glstate->list.active->polygon_mode = mode; - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_POLYGON); + glstate->list.active->polygon_mode = mode; + return; + } + else flush(); switch(mode) { case GL_LINE: case GL_POINT: @@ -1455,17 +1499,17 @@ void glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) AliasExport("gl4es_gl void glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeA) AliasExport("gl4es_glBlendEquationSeparate"); void gl4es_glBlendFunc(GLenum sfactor, GLenum dfactor) { - if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) { - if ((glstate->statebatch.blendfunc_s == sfactor) && (glstate->statebatch.blendfunc_d == dfactor)) - return; // nothing to do... - if (!glstate->statebatch.blendfunc_s) { - glstate->statebatch.blendfunc_s = sfactor; - glstate->statebatch.blendfunc_d = dfactor; - } else { - flush(); - } - } - PUSH_IF_COMPILING(glBlendFunc); + if (glstate->list.active) + if (!glstate->list.compiling && glstate->gl_batch) { + if ((glstate->statebatch.blendfunc_s == sfactor) && (glstate->statebatch.blendfunc_d == dfactor)) + return; // nothing to do... + if (!glstate->statebatch.blendfunc_s) { + glstate->statebatch.blendfunc_s = sfactor; + glstate->statebatch.blendfunc_d = dfactor; + } + } + + PUSH_IF_COMPILING(glBlendFunc) LOAD_GLES(glBlendFunc); LOAD_GLES_OES(glBlendFuncSeparate); errorGL(); @@ -1549,6 +1593,7 @@ void flush() { if (mylist) { GLuint old = glstate->gl_batch; glstate->list.active = NULL; + glstate->list.pending = 0; glstate->gl_batch = 0; mylist = end_renderlist(mylist); draw_renderlist(mylist); @@ -1571,12 +1616,8 @@ extern void BlitEmulatedPixmap(); void gl4es_glFlush() { LOAD_GLES(glFlush); - if (glstate->list.active && !glstate->gl_batch) { - errorShim(GL_INVALID_OPERATION); - return; - } - - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); + PUSH_IF_COMPILING(glFlush); gles_glFlush(); errorGL(); @@ -1591,11 +1632,8 @@ void glFlush() AliasExport("gl4es_glFlush"); void gl4es_glFinish() { LOAD_GLES(glFinish); - if (glstate->list.active && !glstate->gl_batch) { - errorShim(GL_INVALID_OPERATION); - return; - } - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); + PUSH_IF_COMPILING(glFinish); gles_glFinish(); errorGL(); @@ -1603,17 +1641,16 @@ void gl4es_glFinish() { void glFinish() AliasExport("gl4es_glFinish"); void gl4es_glFogfv(GLenum pname, const GLfloat* params) { - LOAD_GLES(glFogfv); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - if (pname == GL_FOG_COLOR) { - NewStage(glstate->list.active, STAGE_FOG); - rlFogOp(glstate->list.active, 1, params); - return; - } - } - PUSH_IF_COMPILING(glFogfv); - + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_FOG); + rlFogOp(glstate->list.active, pname, params); + return; + } + else flush(); + + LOAD_GLES(glFogfv); gles_glFogfv(pname, params); } void glFogfv(GLenum pname, const GLfloat* params) AliasExport("gl4es_glFogfv"); @@ -1659,16 +1696,18 @@ void gl4es_glPointParameterf(GLenum pname, GLfloat param) { void gl4es_glPointParameterfv(GLenum pname, const GLfloat * params) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - if (pname == GL_POINT_DISTANCE_ATTENUATION) { - NewStage(glstate->list.active, STAGE_POINTPARAM); - rlPointParamOp(glstate->list.active, 1, params); - return; - } else { - gl4es_glPointParameterf(pname, params[0]); - return; - } - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + if (pname == GL_POINT_DISTANCE_ATTENUATION) { + NewStage(glstate->list.active, STAGE_POINTPARAM); + rlPointParamOp(glstate->list.active, 1, params); + return; + } else { + gl4es_glPointParameterf(pname, params[0]); + return; + } + } else flush(); + LOAD_GLES(glPointParameterfv); gles_glPointParameterfv(pname, params); @@ -1680,6 +1719,7 @@ void glPointParameterfv(GLenum pname, const GLfloat * params) AliasExport("gl4es void gl4es_glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount) { LOAD_GLES_EXT(glMultiDrawArrays); + if(glstate->list.pending) flush(); if((!gles_glMultiDrawArrays) || should_intercept_render(mode) || (mode==GL_QUADS) || (glstate->list.active && (glstate->list.compiling || glstate->gl_batch)) || (glstate->render_mode == GL_SELECT) || ((glstate->polygon_mode == GL_LINE) || (glstate->polygon_mode == GL_POINT)) ) { @@ -1702,6 +1742,7 @@ void glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GL void gl4es_glMultiDrawElements( GLenum mode, GLsizei *count, GLenum type, const void * const *indices, GLsizei primcount) { LOAD_GLES_EXT(glMultiDrawElements); + if(glstate->list.pending) flush(); if((!gles_glMultiDrawElements) || should_intercept_render(mode) || (mode==GL_QUADS) || (glstate->list.active && (glstate->list.compiling || glstate->gl_batch)) || (glstate->render_mode == GL_SELECT) || ((glstate->polygon_mode == GL_LINE) || (glstate->polygon_mode == GL_POINT)) || (type != GL_UNSIGNED_SHORT) ) { diff --git a/project/jni/gl4es/src/gl/gl.h b/project/jni/gl4es/src/gl/gl.h index 04da0ef92..b588e0bcd 100755 --- a/project/jni/gl4es/src/gl/gl.h +++ b/project/jni/gl4es/src/gl/gl.h @@ -190,11 +190,14 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed); } #define PUSH_IF_COMPILING_EXT(nam, ...) \ - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { \ - NewStage(glstate->list.active, STAGE_GLCALL); \ - push_##nam(__VA_ARGS__); \ - noerrorShim(); \ - return (nam##_RETURN)0; \ + if (glstate->list.active) { \ + if (!glstate->list.pending) { \ + NewStage(glstate->list.active, STAGE_GLCALL); \ + push_##nam(__VA_ARGS__); \ + noerrorShim(); \ + return (nam##_RETURN)0; \ + } \ + else if(glstate->list.pending) flush(); \ } //printf("list:%i, " #nam "\n", state.list.name); @@ -203,6 +206,8 @@ const char* PrintEnum(GLenum what); #define PUSH_IF_COMPILING(name) PUSH_IF_COMPILING_EXT(name, name##_ARG_NAMES) +#define ERROR_IN_BEGIN if(glstate->list.begin) {errorShim(GL_INVALID_OPERATION); return;} + static const GLsizei gl_sizeof(GLenum type) { // types switch (type) { diff --git a/project/jni/gl4es/src/gl/hint.c b/project/jni/gl4es/src/gl/hint.c index 47c40ffc5..253833bef 100755 --- a/project/jni/gl4es/src/gl/hint.c +++ b/project/jni/gl4es/src/gl/hint.c @@ -3,7 +3,10 @@ #include "init.h" void gl4es_glHint(GLenum pname, GLenum mode) { - if(glstate->gl_batch) flush(); + + if (glstate->gl_batch || glstate->list.pending) + flush(); + LOAD_GLES(glHint); noerrorShim(); switch(pname) { diff --git a/project/jni/gl4es/src/gl/init.c b/project/jni/gl4es/src/gl/init.c index 5e399f10e..732a4e632 100755 --- a/project/jni/gl4es/src/gl/init.c +++ b/project/jni/gl4es/src/gl/init.c @@ -221,6 +221,7 @@ void initialize_gl4es() { env(LIBGL_BLENDCOLOR, globals4es.blendcolor, "Export a (faked) glBlendColor"); env(LIBGL_NOERROR, globals4es.noerror, "glGetError() always return GL_NOERROR"); env(LIBGL_SILENTSTUB, globals4es.silentstub, "Stub/non present functions are not printed"); + env(LIBGL_VABGRA, globals4es.vabgra, "Export GL_ARB_vertex_array_bgra extension"); char *env_version = getenv("LIBGL_VERSION"); if (env_version) { diff --git a/project/jni/gl4es/src/gl/init.h b/project/jni/gl4es/src/gl/init.h index dc3dd3219..5ee201397 100755 --- a/project/jni/gl4es/src/gl/init.h +++ b/project/jni/gl4es/src/gl/init.h @@ -34,6 +34,7 @@ typedef struct _globals4es { int silentstub; int glx_surface_srgb; int nodownsampling; + int vabgra; #ifdef PANDORA float gamma; #endif diff --git a/project/jni/gl4es/src/gl/light.c b/project/jni/gl4es/src/gl/light.c index 6839541c7..72dbc139b 100755 --- a/project/jni/gl4es/src/gl/light.c +++ b/project/jni/gl4es/src/gl/light.c @@ -1,62 +1,165 @@ #include "light.h" +#include "../glx/hardext.h" +#include "matrix.h" +#include "matvec.h" -#ifndef USE_ES2 void gl4es_glLightModelf(GLenum pname, GLfloat param) { //printf("%sglLightModelf(%04X, %.2f)\n", (state.list.compiling)?"list":"", pname, param); - if (glstate->list.compiling && glstate->list.active) { - GLfloat dummy[4]; - dummy[0]=param; - gl4es_glLightModelfv(pname, dummy); - return; - } - LOAD_GLES(glLightModelf); + ERROR_IN_BEGIN + if(glstate->list.active) + if ((glstate->list.compiling || glstate->gl_batch)) { + GLfloat dummy[4]; + dummy[0]=param; + gl4es_glLightModelfv(pname, dummy); + return; + } else flush(); switch (pname) { - case GL_LIGHT_MODEL_AMBIENT: case GL_LIGHT_MODEL_TWO_SIDE: errorGL(); - gles_glLightModelf(pname, param); + glstate->light.two_side = param; break; + case GL_LIGHT_MODEL_AMBIENT: default: errorShim(GL_INVALID_ENUM); - //printf("stubbed glLightModelf(%i, %.2f)\n", pname, param); - break; + return; } + LOAD_GLES(glLightModelf); + gles_glLightModelf(pname, param); } void gl4es_glLightModelfv(GLenum pname, const GLfloat* params) { //printf("%sglLightModelfv(%04X, [%.2f, %.2f, %.2f, %.2f])\n", (state.list.compiling)?"list":"", pname, params[0], params[1], params[2], params[3]); - if (glstate->list.compiling && glstate->list.active) { - NewStage(glstate->list.active, STAGE_LIGHTMODEL); -/* if (glstate->list.active->lightmodel) - glstate->list.active = extend_renderlist(glstate->list.active);*/ - glstate->list.active->lightmodelparam = pname; - glstate->list.active->lightmodel = (GLfloat*)malloc(4*sizeof(GLfloat)); - memcpy(glstate->list.active->lightmodel, params, 4*sizeof(GLfloat)); - noerrorShim(); - return; - } - LOAD_GLES(glLightModelfv); + ERROR_IN_BEGIN + if(glstate->list.active) + if ((glstate->list.compiling || glstate->gl_batch)) { + NewStage(glstate->list.active, STAGE_LIGHTMODEL); + /* if (glstate->list.active->lightmodel) + glstate->list.active = extend_renderlist(glstate->list.active);*/ + glstate->list.active->lightmodelparam = pname; + glstate->list.active->lightmodel = (GLfloat*)malloc(4*sizeof(GLfloat)); + memcpy(glstate->list.active->lightmodel, params, 4*sizeof(GLfloat)); + noerrorShim(); + return; + } else flush(); switch (pname) { case GL_LIGHT_MODEL_AMBIENT: - case GL_LIGHT_MODEL_TWO_SIDE: + if(memcmp(glstate->light.ambient, params, 4*sizeof(GLfloat))==0) { + noerrorShim(); + return; + } errorGL(); - gles_glLightModelfv(pname, params); + memcpy(glstate->light.ambient, params, 4*sizeof(GLfloat)); + break; + case GL_LIGHT_MODEL_TWO_SIDE: + if(glstate->light.two_side == params[0]) { + noerrorShim(); + return; + } + errorGL(); + glstate->light.two_side = params[0]; break; default: errorShim(GL_INVALID_ENUM); - //printf("stubbed glLightModelfv(%i, %p [%.2f])\n", pname, params, params[0]); - break; + return; } + LOAD_GLES(glLightModelfv); + gles_glLightModelfv(pname, params); } void gl4es_glLightfv(GLenum light, GLenum pname, const GLfloat* params) { -//printf("%sglLightfv(%04X, %04X, %p=[%.2f, %.2f, %.2f, %.2f])\n", (glstate->list.compiling)?"list":"", light, pname, params, (params)?params[0]:0.0f, (params)?params[1]:0.0f, (params)?params[2]:0.0f, (params)?params[3]:0.0f); - if (glstate->list.compiling && glstate->list.active) { - NewStage(glstate->list.active, STAGE_LIGHT); - rlLightfv(glstate->list.active, light, pname, params); - noerrorShim(); - return; - } +//printf("%sglLightfv(%s, %s, %p=[%.2f, %.2f, %.2f, %.2f])\n", (glstate->list.compiling)?"list":"", PrintEnum(light), PrintEnum(pname), params, (params)?params[0]:0.0f, (params)?params[1]:0.0f, (params)?params[2]:0.0f, (params)?params[3]:0.0f); + const int nl = light-GL_LIGHT0; + if(nl<0 || nl>=hardext.maxlights) { + errorShim(GL_INVALID_ENUM); + return; + } + ERROR_IN_BEGIN + if(glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_LIGHT); + rlLightfv(glstate->list.active, light, pname, params); + noerrorShim(); + return; + } else flush(); + + GLfloat tmp[4]; + noerrorShim(); + switch(pname) { + case GL_AMBIENT: + if(memcmp(glstate->light.lights[nl].ambient, params, 4*sizeof(GLfloat))==0) + return; + memcpy(glstate->light.lights[nl].ambient, params, 4*sizeof(GLfloat)); + break; + case GL_DIFFUSE: + if(memcmp(glstate->light.lights[nl].diffuse, params, 4*sizeof(GLfloat))==0) + return; + memcpy(glstate->light.lights[nl].diffuse, params, 4*sizeof(GLfloat)); + break; + case GL_SPECULAR: + if(memcmp(glstate->light.lights[nl].specular, params, 4*sizeof(GLfloat))==0) + return; + memcpy(glstate->light.lights[nl].specular, params, 4*sizeof(GLfloat)); + break; + case GL_POSITION: + vector_matrix(params, getMVMat(), tmp); + if(memcmp(glstate->light.lights[nl].position, tmp, 4*sizeof(GLfloat))==0) + return; + memcpy(glstate->light.lights[nl].position, tmp, 4*sizeof(GLfloat)); + break; + case GL_SPOT_DIRECTION: + memcpy(tmp, params, 3*sizeof(GLfloat)); + tmp[3] = 0.0f; + vector_matrix(tmp, getMVMat(), tmp); + if(memcmp(glstate->light.lights[nl].spotDirection, tmp, 4*sizeof(GLfloat))==0) + return; + memcpy(glstate->light.lights[nl].spotDirection, tmp, 4*sizeof(GLfloat)); + break; + case GL_SPOT_EXPONENT: + if(params[0]<0 || params[0]>128) { + errorShim(GL_INVALID_VALUE); + return; + } + if(glstate->light.lights[nl].spotExponent == params[0]) + return; + glstate->light.lights[nl].spotExponent = params[0]; + break; + case GL_SPOT_CUTOFF: + if(params[0]<0 || (params[0]>90 && params[0]!=180)) { + errorShim(GL_INVALID_VALUE); + return; + } + if(glstate->light.lights[nl].spotCutoff == params[0]) + return; + glstate->light.lights[nl].spotCutoff = params[0]; + break; + case GL_CONSTANT_ATTENUATION: + if(params[0]<0) { + errorShim(GL_INVALID_VALUE); + return; + } + if(glstate->light.lights[nl].constantAttenuation == params[0]) + return; + glstate->light.lights[nl].constantAttenuation = params[0]; + break; + case GL_LINEAR_ATTENUATION: + if(params[0]<0) { + errorShim(GL_INVALID_VALUE); + return; + } + if(glstate->light.lights[nl].linearAttenuation == params[0]) + return; + glstate->light.lights[nl].linearAttenuation = params[0]; + break; + case GL_QUADRATIC_ATTENUATION: + if(params[0]<0) { + errorShim(GL_INVALID_VALUE); + return; + } + if(glstate->light.lights[nl].quadraticAttenuation == params[0]) + return; + glstate->light.lights[nl].quadraticAttenuation = params[0]; + break; + } LOAD_GLES(glLightfv); gles_glLightfv(light, pname, params); errorGL(); @@ -69,8 +172,150 @@ void gl4es_glLightf(GLenum light, GLenum pname, const GLfloat params) { errorGL(); } +void gl4es_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) { + ERROR_IN_BEGIN // that not true, but don't know how to handle it + if(glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + //TODO: Materialfv can be done per vertex, how to handle that ?! + //NewStage(glstate->list.active, STAGE_MATERIAL); + rlMaterialfv(glstate->list.active, face, pname, params); + noerrorShim(); + return; + } else flush(); + + if(face!=GL_FRONT_AND_BACK && face!=GL_FRONT && face!=GL_BACK) { + errorShim(GL_INVALID_ENUM); + return; + } + switch(pname) { + case GL_AMBIENT: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + memcpy(glstate->material.front.ambient, params, 4*sizeof(GLfloat)); + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + memcpy(glstate->material.back.ambient, params, 4*sizeof(GLfloat)); + break; + case GL_DIFFUSE: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + memcpy(glstate->material.front.diffuse, params, 4*sizeof(GLfloat)); + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + memcpy(glstate->material.back.diffuse, params, 4*sizeof(GLfloat)); + break; + case GL_SPECULAR: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + memcpy(glstate->material.front.specular, params, 4*sizeof(GLfloat)); + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + memcpy(glstate->material.back.specular, params, 4*sizeof(GLfloat)); + break; + case GL_EMISSION: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + memcpy(glstate->material.front.emission, params, 4*sizeof(GLfloat)); + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + memcpy(glstate->material.back.emission, params, 4*sizeof(GLfloat)); + break; + case GL_AMBIENT_AND_DIFFUSE: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) { + memcpy(glstate->material.front.ambient, params, 4*sizeof(GLfloat)); + memcpy(glstate->material.front.diffuse, params, 4*sizeof(GLfloat)); + } + if(face==GL_FRONT_AND_BACK || face==GL_BACK) { + memcpy(glstate->material.back.ambient, params, 4*sizeof(GLfloat)); + memcpy(glstate->material.back.diffuse, params, 4*sizeof(GLfloat)); + } + break; + case GL_SHININESS: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + glstate->material.front.shininess = *params; + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + glstate->material.back.shininess = *params; + break; + case GL_COLOR_INDEXES: + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) { + glstate->material.front.indexes[0] = params[0]; + glstate->material.front.indexes[1] = params[1]; + glstate->material.front.indexes[2] = params[2]; + } + if(face==GL_FRONT_AND_BACK || face==GL_BACK) { + glstate->material.back.indexes[0] = params[0]; + glstate->material.back.indexes[1] = params[1]; + glstate->material.back.indexes[2] = params[2]; + } + break; + } + + if(face==GL_BACK) { // lets ignore GL_BACK in GLES 1.1 + noerrorShim(); + return; + } + LOAD_GLES(glMaterialfv); + gles_glMaterialfv(GL_FRONT_AND_BACK, pname, params); + errorGL(); +} + +void gl4es_glMaterialf(GLenum face, GLenum pname, const GLfloat param) { + ERROR_IN_BEGIN + if(glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + GLfloat params[4]; + memset(params, 0, 4*sizeof(GLfloat)); + params[0] = param; + NewStage(glstate->list.active, STAGE_MATERIAL); + rlMaterialfv(glstate->list.active, face, pname, params); + noerrorShim(); + return; + } else flush(); + + if(face!=GL_FRONT_AND_BACK && face!=GL_FRONT && face!=GL_BACK) { + errorShim(GL_INVALID_ENUM); + return; + } + if(pname!=GL_SHININESS) { + errorShim(GL_INVALID_ENUM); + return; + } + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + glstate->material.front.shininess = param; + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + glstate->material.back.shininess = param; + + LOAD_GLES(glMaterialf); + if(face==GL_BACK) { // lets ignore GL_BACK in GLES 1.1 + noerrorShim(); + return; + } + gles_glMaterialf(GL_FRONT_AND_BACK, pname, param); + errorGL(); +} + +void gl4es_glColorMaterial(GLenum face, GLenum mode) { + ERROR_IN_BEGIN + if(glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_COLOR_MATERIAL); + glstate->list.active->colormat_face = face; + glstate->list.active->colormat_mode = mode; + noerrorShim(); + return; + } else flush(); + + if(face!=GL_FRONT_AND_BACK && face!=GL_FRONT && face!=GL_BACK) { + errorShim(GL_INVALID_ENUM); + return; + } + if(mode!=GL_EMISSION && mode!=GL_AMBIENT && mode!=GL_DIFFUSE && mode!=GL_SPECULAR && mode!=GL_AMBIENT_AND_DIFFUSE) { + errorShim(GL_INVALID_ENUM); + return; + } + if(face==GL_FRONT_AND_BACK || face==GL_FRONT) + glstate->material.front.colormat = mode; + if(face==GL_FRONT_AND_BACK || face==GL_BACK) + glstate->material.back.colormat = mode; + noerrorShim(); +} + void glLightModelf(GLenum pname, GLfloat param) AliasExport("gl4es_glLightModelf"); void glLightModelfv(GLenum pname, const GLfloat* params) AliasExport("gl4es_glLightModelfv"); void glLightfv(GLenum light, GLenum pname, const GLfloat* params) AliasExport("gl4es_glLightfv"); void glLightf(GLenum light, GLenum pname, const GLfloat params) AliasExport("gl4es_glLightf"); -#endif +void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) AliasExport("gl4es_glMaterialfv"); +void glMaterialf(GLenum face, GLenum pname, const GLfloat param) AliasExport("gl4es_glMaterialf"); +void glColorMaterial(GLenum face, GLenum mode) AliasExport("gl4es_glColorMaterial"); diff --git a/project/jni/gl4es/src/gl/light.h b/project/jni/gl4es/src/gl/light.h index d8d2b3f9f..e61a12f3a 100755 --- a/project/jni/gl4es/src/gl/light.h +++ b/project/jni/gl4es/src/gl/light.h @@ -1,6 +1,50 @@ #include "gl.h" +#ifndef __LIGHT_H_ +#define __LIGHT_H_ + +typedef struct { + GLfloat ambient[4]; + GLfloat diffuse[4]; + GLfloat specular[4]; + GLfloat constantAttenuation, linearAttenuation, quadraticAttenuation; + GLfloat position[4]; + GLfloat spotDirection[4]; // It's only 3 in fact, because it's a direction + GLfloat spotExponent; + GLfloat spotCutoff; +} light_t; + +typedef struct { + light_t lights[MAX_LIGHT]; + GLfloat ambient[4]; + GLboolean two_side; +} light_state_t; + +typedef struct { + GLfloat ambient[4]; + GLfloat diffuse[4]; + GLfloat specular[4]; + GLfloat emission[4]; + GLfloat shininess; + int indexes[3]; + GLenum colormat; +} material_t; + +typedef struct { + material_t front; + material_t back; +} material_state_t; + void gl4es_glLightModelf(GLenum pname, GLfloat param); void gl4es_glLightModelfv(GLenum pname, const GLfloat* params); void gl4es_glLightfv(GLenum light, GLenum pname, const GLfloat* params); void gl4es_glLightf(GLenum light, GLenum pname, const GLfloat params); + +void gl4es_glGetLightfv(GLenum light, GLenum pname, GLfloat * params); +void gl4es_glGetLightiv(GLenum light, GLenum pname, GLint * params); + +void gl4es_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) ; +void gl4es_glMaterialf(GLenum face, GLenum pname, const GLfloat param); +void gl4es_glColorMaterial(GLenum face, GLenum mode); + +#endif //__LIGHT_H_ \ No newline at end of file diff --git a/project/jni/gl4es/src/gl/line.c b/project/jni/gl4es/src/gl/line.c index 47a5a4ace..a6bc7c10a 100755 --- a/project/jni/gl4es/src/gl/line.c +++ b/project/jni/gl4es/src/gl/line.c @@ -6,6 +6,15 @@ GLubyte *stippleData = NULL; GLuint stippleTexture = 0; void gl4es_glLineStipple(GLuint factor, GLushort pattern) { + if(glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_LINESTIPPLE); + glstate->list.active->linestipple_op = 1; + glstate->list.active->linestipple_factor = factor; + glstate->list.active->linestipple_pattern = pattern; + return; + } else if(glstate->list.pending) flush(); + stippleFactor = factor; stipplePattern = pattern; if (stippleData != NULL) { diff --git a/project/jni/gl4es/src/gl/list.c b/project/jni/gl4es/src/gl/list.c index df33de80e..00e4d15ce 100755 --- a/project/jni/gl4es/src/gl/list.c +++ b/project/jni/gl4es/src/gl/list.c @@ -46,7 +46,7 @@ bool ispurerender_renderlist(renderlist_t *list) { return false; if (list->popattribute) return false; - if (list->material || list->light || list->lightmodel || list->texgen || list->texenv) + if (list->material || list->colormat_face || list->light || list->lightmodel || list->texgen || list->texenv) return false; if (list->fog_op) return false; @@ -103,6 +103,8 @@ bool islistscompatible_renderlist(renderlist_t *a, renderlist_t *b) { if (a_mode != b_mode) return false; } + if(!a->open || !b->open) + return false; /* if ((a->indices==NULL) != (b->indices==NULL)) return false;*/ if (a->polygon_mode != b->polygon_mode) @@ -126,6 +128,8 @@ bool islistscompatible_renderlist(renderlist_t *a, renderlist_t *b) { // polygon mode if(a->polygon_mode!=b->polygon_mode) return false; + if(a->post_color || b->post_color || a->post_normal || b->post_normal) + return false; // Check the size of a list, if it"s too big, don't merge... if ((a->len+b->len)>30000) @@ -454,6 +458,8 @@ renderlist_t *extend_renderlist(renderlist_t *list) { // just in case memcpy(new->lastNormal, list->lastNormal, 3*sizeof(GLfloat)); memcpy(new->lastSecondaryColors, list->lastSecondaryColors, 3*sizeof(GLfloat)); + memcpy(new->lastColors, list->lastColors, 4*sizeof(GLfloat)); + new->lastColorsSet = list->lastColorsSet; // detach list->prev = NULL; // free list now @@ -682,7 +688,7 @@ void adjust_renderlist(renderlist_t *list) { list->open = false; for (int a=0; aenable.texture[a]); - gltexture_t *bound = glstate->texture.bound[a][itarget]; + gltexture_t *bound = (itarget>=0)?glstate->texture.bound[a][itarget]:NULL; // in case of Texture bounding inside a list if (list->set_texture && (list->tmu == a)) bound = gl4es_getTexture(list->target_texture, list->texture); @@ -725,6 +731,29 @@ renderlist_t* end_renderlist(renderlist_t *list) { return list; } +renderlist_t* recycle_renderlist(renderlist_t *list) { + if(isempty_renderlist(list)) { + renderlist_t* old=list; + list = list->prev; + old->prev = NULL; + list->next = NULL; + free_renderlist(old); + } + // check if pending color... + if (list->post_color) { + list->post_color = 0; + rlColor4f(list, list->post_colors[0], list->post_colors[1], list->post_colors[2], list->post_colors[3]); + } + if (list->post_normal) { + list->post_normal = 0; + rlNormal3f(list, list->post_normals[0], list->post_normals[1], list->post_normals[2]); + } + // All done + list->stage=STAGE_DRAW; + + return list; +} + void draw_renderlist(renderlist_t *list) { if (!list) return; // go to 1st... @@ -765,13 +794,17 @@ void draw_renderlist(renderlist_t *list) { glPackedCall(cl->calls[i]); } } - if (list->fog_op) { - switch (list->fog_op) { - case 1: // GL_FOG_COLOR - gl4es_glFogfv(GL_FOG_COLOR, list->fog_val); - break; + if(list->render_op) { + switch(list->render_op) { + case 1: gl4es_glInitNames(); break; + case 2: gl4es_glPopName(); break; + case 3: gl4es_glPushName(list->render_arg); break; + case 4: gl4es_glLoadName(list->render_arg); break; } } + if (list->fog_op) { + gl4es_glFogfv(GL_FOG_COLOR, list->fog_val); + } if (list->pointparam_op) { switch (list->pointparam_op) { case 1: // GL_POINT_DISTANCE_ATTENUATION @@ -821,13 +854,15 @@ void draw_renderlist(renderlist_t *list) { kh_foreach_value(map, m, switch (m->pname) { case GL_SHININESS: - gl4es_glMaterialf(GL_FRONT_AND_BACK, m->pname, m->color[0]); + gl4es_glMaterialf(m->face, m->pname, m->color[0]); break; default: - gl4es_glMaterialfv(GL_FRONT_AND_BACK, m->pname, m->color); + gl4es_glMaterialfv(m->face, m->pname, m->color); } ) } + if (list->colormat_face) + gl4es_glColorMaterial(list->colormat_face, list->colormat_mode); if (list->light) { khash_t(light) *lig = list->light; renderlight_t *m; @@ -841,6 +876,10 @@ void draw_renderlist(renderlist_t *list) { if (list->lightmodel) { gl4es_glLightModelfv(list->lightmodelparam, list->lightmodel); } + + if (list->linestipple_op) { + gl4es_glLineStipple(list->linestipple_factor, list->linestipple_pattern); + } if (list->texenv) { khash_t(texenv) *tgn = list->texenv; @@ -1203,6 +1242,8 @@ void draw_renderlist(renderlist_t *list) { gl4es_glPopAttrib(); } #endif + if(list->post_color) gl4es_glColor4fv(list->post_colors); + if(list->post_normal) gl4es_glNormal3fv(list->post_normals); } while ((list = list->next)); gl4es_glPopClientAttrib(); } @@ -1382,21 +1423,6 @@ void rlTexGenfv(renderlist_t *list, GLenum coord, GLenum pname, const GLfloat * memcpy(m->color, params, 4*sizeof(GLfloat)); } -void rlTexCoord4f(renderlist_t *list, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { - if (list->tex[0] == NULL) { - list->tex[0] = alloc_sublist(4, list->cap); - // catch up - GLfloat *tex = list->tex[0]; - if (list->len) for (int i = 0; i < list->len; i++) { - memcpy(tex, glstate->texcoord[0], sizeof(GLfloat) * 4); - tex += 4; - } - } - GLfloat *tex = glstate->texcoord[0]; - tex[0] = s; tex[1] = t; - tex[2] = r; tex[3] = q; -} - void rlMultiTexCoord4f(renderlist_t *list, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { const int tmu = target - GL_TEXTURE0; if (list->tex[tmu] == NULL) { @@ -1432,11 +1458,13 @@ void rlRasterOp(renderlist_t *list, int op, GLfloat x, GLfloat y, GLfloat z) { } void rlFogOp(renderlist_t *list, int op, const GLfloat* v) { + int n = 1; + if (op==GL_FOG_COLOR) n = 4; list->fog_op = op; list->fog_val[0] = v[0]; - list->fog_val[1] = v[1]; - list->fog_val[2] = v[2]; - list->fog_val[3] = v[3]; + if (n>1) list->fog_val[1] = v[1]; + if (n>2) list->fog_val[2] = v[2]; + if (n>3) list->fog_val[3] = v[3]; } void rlPointParamOp(renderlist_t *list, int op, const GLfloat* v) { diff --git a/project/jni/gl4es/src/gl/list.h b/project/jni/gl4es/src/gl/list.h index 5376a4d48..ead2930cd 100755 --- a/project/jni/gl4es/src/gl/list.h +++ b/project/jni/gl4es/src/gl/list.h @@ -9,6 +9,7 @@ typedef enum { STAGE_POP, STAGE_CALLLIST, STAGE_GLCALL, + STAGE_RENDER, STAGE_FOG, STAGE_POINTPARAM, STAGE_MATRIX, @@ -16,21 +17,25 @@ typedef enum { STAGE_BINDTEX, STAGE_RASTER, STAGE_MATERIAL, + STAGE_COLOR_MATERIAL, STAGE_LIGHT, STAGE_LIGHTMODEL, + STAGE_LINESTIPPLE, STAGE_TEXENV, STAGE_TEXGEN, STAGE_POLYGON, STAGE_DRAW, + STAGE_POSTDRAW, STAGE_LAST } liststage_t; -static int StageExclusive[STAGE_LAST] = { +static int StageExclusive[] = { 0, // STAGE_NONE 1, // STAGE_PUSH 1, // STAGE_POP 1, // STAGE_CALLLIST 0, // STAGE_GLCALL + 1, // STAGE_RENDER 1, // STAGE_FOG 1, // STAGE_POINTPARAM 1, // STAGE_MATRIX @@ -38,12 +43,16 @@ static int StageExclusive[STAGE_LAST] = { 1, // STAGE_BINDTEX 1, // STAGE_RASTER 0, // STAGE_MATERIAL + 1, // STAGE_COLOR_MATERIAL 0, // STAGE_LIGHT 1, // STAGE_LIGTMODEL + 1, // STAGE_LINESTIPPLE 0, // STAGE_TEXENV 0, // STAGE_TEXGEN 1, // STAGE_POLYGON - 1 // STAGE_DRAW + 1, // STAGE_DRAW + 1, // STAGE_POSTDRAW (used for "pending", i.e. post glEnd(), in case a similar glBegin occurs) + 0 // STAGE_LAST }; typedef struct { @@ -131,6 +140,9 @@ typedef struct _renderlist_t { GLbitfield pushattribute; GLboolean popattribute; + int render_op; + GLuint render_arg; + int raster_op; GLfloat raster_xyz[3]; @@ -142,8 +154,18 @@ typedef struct _renderlist_t { int pointparam_op; GLfloat pointparam_val[4]; + + int linestipple_op; + GLuint linestipple_factor, linestipple_pattern; + + int post_color; + GLfloat post_colors[4]; + int post_normal; + GLfloat post_normals[3]; khash_t(material) *material; + GLenum colormat_face; + GLenum colormat_mode; khash_t(light) *light; khash_t(texgen) *texgen; khash_t(texenv) *texenv; @@ -163,6 +185,13 @@ typedef struct _renderlist_t { #define DEFAULT_CALL_LIST_CAPACITY 20 #define DEFAULT_RENDER_LIST_CAPACITY 64 +renderlist_t* recycle_renderlist(renderlist_t* list); +#define NewDrawStage(l, m) if(globals4es.mergelist \ + && ((l->prev && isempty_renderlist(l) && l->prev->open && l->prev->mode==mode && l->prev->mode_init==mode) \ + || (l->stage==STAGE_POSTDRAW && l->open && l->mode==mode && l->mode_init==mode)) && \ + mode!=GL_POLYGON && mode!=GL_LINE_STRIP && mode!=GL_LINE_LOOP && \ + mode!=GL_TRIANGLE_FAN && mode!=GL_TRIANGLE_STRIP && mode!=GL_QUAD_STRIP) \ + l=recycle_renderlist(l); else NewStage(l, STAGE_DRAW) #define NewStage(l, s) if (l->stage+StageExclusive[l->stage] > s) {l = extend_renderlist(l);} l->stage = s renderlist_t* GetFirst(renderlist_t* list); @@ -172,6 +201,7 @@ renderlist_t *extend_renderlist(renderlist_t *list); void free_renderlist(renderlist_t *list); void draw_renderlist(renderlist_t *list); renderlist_t* end_renderlist(renderlist_t *list); +bool isempty_renderlist(renderlist_t *list); void rlActiveTexture(renderlist_t *list, GLenum texture ); void rlBindTexture(renderlist_t *list, GLenum target, GLuint texture); @@ -183,7 +213,6 @@ void rlTexEnvfv(renderlist_t *list, GLenum target, GLenum pname, const GLfloat * void rlTexEnviv(renderlist_t *list, GLenum target, GLenum pname, const GLint * params); void rlNormal3f(renderlist_t *list, GLfloat x, GLfloat y, GLfloat z) FASTMATH; void rlPushCall(renderlist_t *list, packed_call_t *data); -void rlTexCoord4f(renderlist_t *list, GLfloat s, GLfloat t, GLfloat r, GLfloat q) FASTMATH; void rlMultiTexCoord4f(renderlist_t *list, GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q) FASTMATH; void rlVertex4f(renderlist_t *list, GLfloat x, GLfloat y, GLfloat z, GLfloat w) FASTMATH; void rlSecondary3f(renderlist_t *list, GLfloat r, GLfloat g, GLfloat b) FASTMATH; diff --git a/project/jni/gl4es/src/gl/loader.c b/project/jni/gl4es/src/gl/loader.c index ab28abea7..738ed442b 100755 --- a/project/jni/gl4es/src/gl/loader.c +++ b/project/jni/gl4es/src/gl/loader.c @@ -1,5 +1,6 @@ #include "loader.h" #include "logs.h" +#include "init.h" #include void *gles = NULL, *egl = NULL, *bcm_host = NULL, *vcos = NULL; @@ -48,7 +49,7 @@ void *open_lib(const char **names, const char *override) { if (override) { if ((lib = dlopen(override, flags))) { strncpy(path_name, override, PATH_MAX); - LOGD("LIBGL:loaded: %s\n", path_name); + if(!globals4es.nobanner) LOGD("LIBGL:loaded: %s\n", path_name); return lib; } else { LOGE("LIBGL_GLES override failed: %s\n", dlerror()); @@ -59,7 +60,7 @@ void *open_lib(const char **names, const char *override) { for (int e = 0; lib_ext[e]; e++) { snprintf(path_name, PATH_MAX, "%s%s.%s", path_prefix[p], names[i], lib_ext[e]); if ((lib = dlopen(path_name, flags))) { - LOGD("LIBGL:loaded: %s\n", path_name); + if(!globals4es.nobanner) LOGD("LIBGL:loaded: %s\n", path_name); return lib; } } diff --git a/project/jni/gl4es/src/gl/matrix.c b/project/jni/gl4es/src/gl/matrix.c index 10eaa7319..8ef889d5f 100755 --- a/project/jni/gl4es/src/gl/matrix.c +++ b/project/jni/gl4es/src/gl/matrix.c @@ -154,11 +154,14 @@ DBG(printf("glLoadMatrix(%f, %f, %f, %f, %f, %f, %f...), list=%p\n", m[0], m[1], LOAD_GLES(glLoadMatrixf); LOAD_GLES(glLoadIdentity); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_MATRIX); - glstate->list.active->matrix_op = 1; - memcpy(glstate->list.active->matrix_val, m, 16*sizeof(GLfloat)); - return; + if (glstate->list.active) { + if(glstate->list.pending) flush(); + else { + NewStage(glstate->list.active, STAGE_MATRIX); + glstate->list.active->matrix_op = 1; + memcpy(glstate->list.active->matrix_val, m, 16*sizeof(GLfloat)); + return; + } } memcpy(update_current_mat(), m, 16*sizeof(GLfloat)); const int id = update_current_identity(0); @@ -171,17 +174,20 @@ void gl4es_glMultMatrixf(const GLfloat * m) { DBG(printf("glMultMatrix(%f, %f, %f, %f, %f, %f, %f...), list=%p\n", m[0], m[1], m[2], m[3], m[4], m[5], m[6], glstate->list.active);) LOAD_GLES(glLoadMatrixf); LOAD_GLES(glLoadIdentity); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - if(glstate->list.active->stage == STAGE_MATRIX) { - // multiply the matrix mith the current one.... - matrix_mul(glstate->list.active->matrix_val, m, glstate->list.active->matrix_val); + if (glstate->list.active) { + if(glstate->list.pending) flush(); + else { + if(glstate->list.active->stage == STAGE_MATRIX) { + // multiply the matrix mith the current one.... + matrix_mul(glstate->list.active->matrix_val, m, glstate->list.active->matrix_val); + return; + } + NewStage(glstate->list.active, STAGE_MATRIX); + glstate->list.active->matrix_op = 2; + memcpy(glstate->list.active->matrix_val, m, 16*sizeof(GLfloat)); return; } - NewStage(glstate->list.active, STAGE_MATRIX); - glstate->list.active->matrix_op = 2; - memcpy(glstate->list.active->matrix_val, m, 16*sizeof(GLfloat)); - return; - } + } GLfloat *current_mat = update_current_mat(); matrix_mul(current_mat, m, current_mat); const int id = update_current_identity(0); @@ -193,13 +199,15 @@ DBG(printf("glMultMatrix(%f, %f, %f, %f, %f, %f, %f...), list=%p\n", m[0], m[1], void gl4es_glLoadIdentity() { DBG(printf("glLoadIdentity(), list=%p\n", glstate->list.active);) LOAD_GLES(glLoadIdentity); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_MATRIX); - glstate->list.active->matrix_op = 1; - set_identity(glstate->list.active->matrix_val); - return; - } - + if (glstate->list.active) { + if(glstate->list.pending) flush(); + else { + NewStage(glstate->list.active, STAGE_MATRIX); + glstate->list.active->matrix_op = 1; + set_identity(glstate->list.active->matrix_val); + return; + } + } set_identity(update_current_mat()); update_current_identity(1); if(send_to_hardware()) gles_glLoadIdentity(); diff --git a/project/jni/gl4es/src/gl/matrix.h b/project/jni/gl4es/src/gl/matrix.h index 8bb94065d..5c6d663b7 100755 --- a/project/jni/gl4es/src/gl/matrix.h +++ b/project/jni/gl4es/src/gl/matrix.h @@ -15,3 +15,7 @@ void gl4es_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, static inline GLfloat* getTexMat(int tmu) { return glstate->texture_matrix[tmu]->stack+glstate->texture_matrix[tmu]->top*16; } + +static inline GLfloat* getMVMat() { + return glstate->modelview_matrix->stack+glstate->modelview_matrix->top*16; +} \ No newline at end of file diff --git a/project/jni/gl4es/src/gl/matvec.c b/project/jni/gl4es/src/gl/matvec.c index be3b9efc0..dda872204 100755 --- a/project/jni/gl4es/src/gl/matvec.c +++ b/project/jni/gl4es/src/gl/matvec.c @@ -82,9 +82,9 @@ void vector3_matrix(const float *a, const float *b, float *c) { const float* b4=b+12; asm volatile ( //"vld1.f32 {q0}, [%1] \n" // %q0 = a(0..2) - "vld1.32 {d4}, [%1] \n" - "flds s10, [%1, #8] \n" - "vsub.f32 s11, s11, s11 \n" + "vld1.32 {d0}, [%1] \n" + "flds s2, [%1, #8] \n" + "vsub.f32 s3, s3, s3 \n" "vld1.f32 {q1}, [%2] \n" // %q1 = b(0..3) "vmul.f32 q1, q1, d0[0] \n" // %q1 = b(0..3)*a[0] "vld1.f32 {q2}, [%3] \n" // %q2 = b(4..7) diff --git a/project/jni/gl4es/src/gl/pixel.c b/project/jni/gl4es/src/gl/pixel.c index 56326dfe2..6aa208d0a 100755 --- a/project/jni/gl4es/src/gl/pixel.c +++ b/project/jni/gl4es/src/gl/pixel.c @@ -1129,6 +1129,41 @@ bool pixel_quarterscale(const GLvoid *old, GLvoid **new, return true; } +bool pixel_doublescale(const GLvoid *old, GLvoid **new, + GLuint width, GLuint height, + GLenum format, GLenum type) { + GLuint pixel_size, new_width, new_height; + new_width = width * 2; + new_height = height * 2; + //printf("LIBGL: doublescaling %ux%u -> %ux%u (%s / %s)\n", width, height, new_width, new_height, PrintEnum(format), PrintEnum(type)); + const colorlayout_t *src_color; + src_color = get_color_map(format); + GLvoid *dst; + uintptr_t src, pos, pix0, pix1, pix2, pix3; + + pixel_size = pixel_sizeof(format, type); + dst = malloc(pixel_size * new_width * new_height); + src = (uintptr_t)old; + pos = (uintptr_t)dst; + const int dx = (width>1)?1:0; + const int dy = (height>1)?1:0; + for (int y = 0; y+1 < new_height; y+=2) { + for (int x = 0; x+1 < new_width; x+=2) { + pix0 = src + ((x / 2) + + (y / 2) * width) * pixel_size; + memcpy((void*)pos, (void*)pix0, pixel_size); + memcpy((void*)(pos+new_width*pixel_size), (void*)pix0, pixel_size); + pos += pixel_size; + memcpy((void*)pos, (void*)pix0, pixel_size); + memcpy((void*)(pos+new_width*pixel_size), (void*)pix0, pixel_size); + pos += pixel_size; + } + pos += new_width*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) diff --git a/project/jni/gl4es/src/gl/pixel.h b/project/jni/gl4es/src/gl/pixel.h index 96ba9341c..798d856b7 100755 --- a/project/jni/gl4es/src/gl/pixel.h +++ b/project/jni/gl4es/src/gl/pixel.h @@ -39,6 +39,10 @@ bool pixel_quarterscale(const GLvoid *src, GLvoid **dst, GLuint width, GLuint height, GLenum format, GLenum type); +bool pixel_doublescale(const GLvoid *src, GLvoid **dst, + GLuint width, GLuint height, + GLenum format, GLenum type); + bool pixel_to_ppm(const GLvoid *pixels, GLuint width, GLuint height, GLenum format, GLenum type, GLuint name); diff --git a/project/jni/gl4es/src/gl/queries.c b/project/jni/gl4es/src/gl/queries.c index bd59dc499..b23478220 100755 --- a/project/jni/gl4es/src/gl/queries.c +++ b/project/jni/gl4es/src/gl/queries.c @@ -4,6 +4,8 @@ static GLuint lastquery = 0; static glquery_t *active_samples_passed = 0; void gl4es_glGenQueries(GLsizei n, GLuint * ids) { + if (glstate->gl_batch || glstate->list.pending) + flush(); noerrorShim(); if (n<1) { errorShim(GL_INVALID_VALUE); @@ -15,6 +17,8 @@ void gl4es_glGenQueries(GLsizei n, GLuint * ids) { } GLboolean gl4es_glIsQuery(GLuint id) { + if(glstate->list.compiling) {errorShim(GL_INVALID_OPERATION); return GL_FALSE;} + if(glstate->list.active) flush(); khash_t(queries) *list = glstate->queries; khint_t k; noerrorShim(); @@ -28,6 +32,8 @@ GLboolean gl4es_glIsQuery(GLuint id) { } void gl4es_glDeleteQueries(GLsizei n, const GLuint* ids) { + if (glstate->gl_batch || glstate->list.pending) + flush(); khash_t(queries) *list = glstate->queries; if (list) { khint_t k; @@ -54,9 +60,9 @@ void gl4es_glBeginQuery(GLenum target, GLuint id) { errorShim(GL_INVALID_ENUM); return; } - if (glstate->gl_batch) { - flush(); - } + if (glstate->gl_batch || glstate->list.pending) + flush(); + khint_t k; int ret; glquery_t *query; @@ -89,9 +95,9 @@ void gl4es_glEndQuery(GLenum target) { errorShim(GL_INVALID_OPERATION); return; } - if (glstate->gl_batch) { - flush(); - } + if (glstate->gl_batch || glstate->list.pending) + flush(); + active_samples_passed = NULL; noerrorShim(); } @@ -101,6 +107,9 @@ void gl4es_glGetQueryiv(GLenum target, GLenum pname, GLint* params) { errorShim(GL_INVALID_ENUM); return; } + if (glstate->gl_batch || glstate->list.pending) + flush(); + noerrorShim(); switch (pname) { case GL_CURRENT_QUERY: @@ -117,6 +126,9 @@ void gl4es_glGetQueryiv(GLenum target, GLenum pname, GLint* params) { void gl4es_glGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { khint_t k; int ret; + if (glstate->gl_batch || glstate->list.pending) + flush(); + glquery_t *query = NULL; khash_t(queries) *list = glstate->queries; if (! list) { @@ -150,6 +162,9 @@ void gl4es_glGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { void gl4es_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) { khint_t k; int ret; + if (glstate->gl_batch || glstate->list.pending) + flush(); + glquery_t *query = NULL; khash_t(queries) *list = glstate->queries; if (! list) { diff --git a/project/jni/gl4es/src/gl/raster.c b/project/jni/gl4es/src/gl/raster.c index 01fcf5573..99dd80c70 100755 --- a/project/jni/gl4es/src/gl/raster.c +++ b/project/jni/gl4es/src/gl/raster.c @@ -17,12 +17,14 @@ void matrix_transpose(const GLfloat *a, GLfloat *b); void matrix_vector(const GLfloat *a, const GLfloat *b, GLfloat *c); void gl4es_glRasterPos3f(GLfloat x, GLfloat y, GLfloat z) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_RASTER); - rlRasterOp(glstate->list.active, 1, x, y, z); - noerrorShim(); - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_RASTER); + rlRasterOp(glstate->list.active, 1, x, y, z); + noerrorShim(); + return; + } else flush(); + // Transform xyz coordinates with current modelview and projection matrix... GLfloat glmatrix[16], projection[16], modelview[16]; GLfloat t[4], transl[4] = {x, y, z, 1.0f}; @@ -41,12 +43,14 @@ void gl4es_glRasterPos3f(GLfloat x, GLfloat y, GLfloat z) { } void gl4es_glWindowPos3f(GLfloat x, GLfloat y, GLfloat z) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_RASTER); - rlRasterOp(glstate->list.active, 2, x, y, z); - noerrorShim(); - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_RASTER); + rlRasterOp(glstate->list.active, 2, x, y, z); + noerrorShim(); + return; + } else flush(); + glstate->raster.rPos.x = x; glstate->raster.rPos.y = y; glstate->raster.rPos.z = z; @@ -76,24 +80,28 @@ void popViewport() { void gl4es_glPixelZoom(GLfloat xfactor, GLfloat yfactor) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_RASTER); - rlRasterOp(glstate->list.active, 3, xfactor, yfactor, 0.0f); - noerrorShim(); - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_RASTER); + rlRasterOp(glstate->list.active, 3, xfactor, yfactor, 0.0f); + noerrorShim(); + return; + } else flush(); + glstate->raster.raster_zoomx = xfactor; glstate->raster.raster_zoomy = yfactor; //printf("LIBGL: glPixelZoom(%f, %f)\n", xfactor, yfactor); } void gl4es_glPixelTransferf(GLenum pname, GLfloat param) { - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_RASTER); - rlRasterOp(glstate->list.active, pname|0x10000, param, 0.0f, 0.0f); - noerrorShim(); - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_RASTER); + rlRasterOp(glstate->list.active, pname|0x10000, param, 0.0f, 0.0f); + noerrorShim(); + return; + } else flush(); + //printf("LIBGL: glPixelTransferf(%04x, %f)\n", pname, param); switch(pname) { case GL_RED_SCALE: @@ -229,7 +237,7 @@ void gl4es_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, // TODO: negative width/height mirrors bitmap? noerrorShim(); if ((!width && !height) || (bitmap==0)) { - if (glstate->list.compiling || glstate->gl_batch) { + if (glstate->list.active) { if (glstate->list.active->raster) glstate->list.active = extend_renderlist(glstate->list.active); // already a raster in the list, create a new one rasterlist_t *r = glstate->list.active->raster = (rasterlist_t*)malloc(sizeof(rasterlist_t)); @@ -288,7 +296,7 @@ void gl4es_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, rasterlist_t rast; rasterlist_t *r; - if (glstate->list.compiling || glstate->gl_batch) { + if (glstate->list.active) { NewStage(glstate->list.active, STAGE_RASTER); r = glstate->list.active->raster = (rasterlist_t*)malloc(sizeof(rasterlist_t)); r->shared = (int*)malloc(sizeof(int)); @@ -307,7 +315,7 @@ void gl4es_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, r->zoomx = glstate->raster.raster_zoomx; r->zoomy = glstate->raster.raster_zoomy; LOAD_GLES(glDeleteTextures); - if (!(glstate->list.compiling || glstate->gl_batch)) { + if (!(glstate->list.active)) { render_raster_list(r); gles_glDeleteTextures(1, &r->texture); r->texture = 0; @@ -371,7 +379,7 @@ void gl4es_glDrawPixels(GLsizei width, GLsizei height, GLenum format, static rasterlist_t rast = {.texture=0, .shared=NULL}; rasterlist_t *r; - if (glstate->list.compiling || globals4es.batch) { + if (glstate->list.active) { NewStage(glstate->list.active, STAGE_RASTER); rasterlist_t *r = glstate->list.active->raster = (rasterlist_t*)malloc(sizeof(rasterlist_t)); r->shared = (int*)malloc(sizeof(int)); @@ -391,7 +399,7 @@ void gl4es_glDrawPixels(GLsizei width, GLsizei height, GLenum format, r->bitmap = false; r->zoomx = glstate->raster.raster_zoomx; r->zoomy = glstate->raster.raster_zoomy; - if (!(glstate->list.compiling || glstate->gl_batch)) { + if (!(glstate->list.active)) { render_raster_list(r); /* gles_glDeleteTextures(1, &r->texture); r->texture = 0;*/ diff --git a/project/jni/gl4es/src/gl/render.c b/project/jni/gl4es/src/gl/render.c index 2c960087d..2ab7a114b 100755 --- a/project/jni/gl4es/src/gl/render.c +++ b/project/jni/gl4es/src/gl/render.c @@ -37,6 +37,9 @@ void push_hit() { GLint gl4es_glRenderMode(GLenum mode) { + if(glstate->list.compiling) {errorShim(GL_INVALID_OPERATION); return 0;} + if(glstate->list.active) flush(); + int ret = 0; if ((mode==GL_SELECT) || (mode==GL_RENDER)) { // missing GL_FEEDBACK noerrorShim(); @@ -77,6 +80,12 @@ GLint gl4es_glRenderMode(GLenum mode) { } void gl4es_glInitNames() { + if(glstate->list.active) { + NewStage(glstate->list.active, STAGE_RENDER); + glstate->list.active->render_op = 1; + return; + } + //TODO list stuffs if (glstate->namestack.names == 0) { glstate->namestack.names = (GLuint*)malloc(1024*sizeof(GLuint)); } @@ -85,6 +94,11 @@ void gl4es_glInitNames() { } void gl4es_glPopName() { + if(glstate->list.active) { + NewStage(glstate->list.active, STAGE_RENDER); + glstate->list.active->render_op = 2; + return; + } noerrorShim(); if (glstate->render_mode != GL_SELECT) return; @@ -96,6 +110,12 @@ void gl4es_glPopName() { } void gl4es_glPushName(GLuint name) { + if(glstate->list.active) { + NewStage(glstate->list.active, STAGE_RENDER); + glstate->list.active->render_op = 3; + glstate->list.active->render_arg = name; + return; + } noerrorShim(); if (glstate->render_mode != GL_SELECT) return; @@ -108,6 +128,12 @@ void gl4es_glPushName(GLuint name) { } void gl4es_glLoadName(GLuint name) { + if(glstate->list.active) { + NewStage(glstate->list.active, STAGE_RENDER); + glstate->list.active->render_op = 4; + glstate->list.active->render_arg = name; + return; + } noerrorShim(); if (glstate->render_mode != GL_SELECT) return; @@ -120,6 +146,9 @@ void gl4es_glLoadName(GLuint name) { } void gl4es_glSelectBuffer(GLsizei size, GLuint *buffer) { + if (glstate->gl_batch || glstate->list.pending) + flush(); + noerrorShim(); glstate->selectbuf.buffer = buffer; glstate->selectbuf.size = size; diff --git a/project/jni/gl4es/src/gl/stack.c b/project/jni/gl4es/src/gl/stack.c index c9b860a76..5c66a62e8 100755 --- a/project/jni/gl4es/src/gl/stack.c +++ b/project/jni/gl4es/src/gl/stack.c @@ -1,14 +1,17 @@ #include "stack.h" #include "../glx/hardext.h" +#include "matrix.h" void gl4es_glPushAttrib(GLbitfield mask) { //printf("glPushAttrib(0x%04X)\n", mask); noerrorShim(); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_PUSH); - glstate->list.active->pushattribute = mask; - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_PUSH); + glstate->list.active->pushattribute = mask; + return; + } else flush(); + if (glstate->stack == NULL) { glstate->stack = (glstack_t *)malloc(STACK_SIZE * sizeof(glstack_t)); glstate->stack->len = 0; @@ -161,8 +164,9 @@ void gl4es_glPushAttrib(GLbitfield mask) { #undef L } j=0; - cur->materials = (GLfloat *)malloc(1 * sizeof(GLfloat)*(5*4)); - #define M(A) gl4es_glGetMaterialfv(GL_FRONT, A, cur->materials+j); j+=4 + cur->materials = (GLfloat *)malloc(2 * sizeof(GLfloat)*(5*4)); + memset(cur->materials, 0, 2 * sizeof(GLfloat)*(5*4)); + #define M(A) gl4es_glGetMaterialfv(GL_BACK, A, cur->materials+j); j+=4; gl4es_glGetMaterialfv(GL_FRONT, A, cur->materials+j); j+=4 M(GL_AMBIENT); M(GL_DIFFUSE); M(GL_SPECULAR); M(GL_EMISSION); M(GL_SHININESS); // handle both face at some point? #undef M gl4es_glGetIntegerv(GL_SHADE_MODEL, &cur->shade_model); @@ -279,7 +283,7 @@ void gl4es_glPushAttrib(GLbitfield mask) { void gl4es_glPushClientAttrib(GLbitfield mask) { noerrorShim(); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -337,11 +341,13 @@ void gl4es_glPushClientAttrib(GLbitfield mask) { void gl4es_glPopAttrib() { //printf("glPopAttrib()\n"); noerrorShim(); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_POP); - glstate->list.active->popattribute = true; - return; - } + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_POP); + glstate->list.active->popattribute = true; + return; + } else flush(); + if (glstate->stack == NULL || glstate->stack->len == 0) { errorShim(GL_STACK_UNDERFLOW); return; @@ -468,6 +474,14 @@ void gl4es_glPopAttrib() { int i; int j=0; + int old_matrixmode = glstate->matrix_mode; + // Light position / direction is transformed. So load identity in modelview to restore correct stuff + int identity = is_identity(getMVMat()); + if(!identity) { + if(old_matrixmode != GL_MODELVIEW) gl4es_glMatrixMode(GL_MODELVIEW); + gl4es_glPushMatrix(); + gl4es_glLoadIdentity(); + } for (i = 0; i < hardext.maxlights; i++) { enable_disable(GL_LIGHT0 + i, *(cur->lights_enabled + i)); #define L(A) gl4es_glLightfv(GL_LIGHT0 + i, A, cur->lights+j); j+=4 @@ -483,8 +497,15 @@ void gl4es_glPopAttrib() { L(GL_QUADRATIC_ATTENUATION); #undef L } + if(!identity) { + gl4es_glPopMatrix(); + if(old_matrixmode != GL_MODELVIEW) gl4es_glMatrixMode(old_matrixmode); + } j=0; - #define M(A) gl4es_glMaterialfv(GL_FRONT_AND_BACK, A, cur->materials+j); j+=4 + #define M(A) if(memcmp(cur->materials+j, cur->materials+j+4, 4*sizeof(GLfloat))==0) \ + {gl4es_glMaterialfv(GL_FRONT_AND_BACK, A, cur->materials+j); j+=8;} \ + else \ + {gl4es_glMaterialfv(GL_BACK, A, cur->materials+j); j+=4; gl4es_glMaterialfv(GL_FRONT, A, cur->materials+j); j+=4;} M(GL_AMBIENT); M(GL_DIFFUSE); M(GL_SPECULAR); M(GL_EMISSION); M(GL_SHININESS); // handle both face at some point? #undef M @@ -603,7 +624,7 @@ void gl4es_glPopAttrib() { void gl4es_glPopClientAttrib() { noerrorShim(); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } diff --git a/project/jni/gl4es/src/gl/state.h b/project/jni/gl4es/src/gl/state.h index f148393bc..9c3a638dd 100755 --- a/project/jni/gl4es/src/gl/state.h +++ b/project/jni/gl4es/src/gl/state.h @@ -7,6 +7,7 @@ #include "texture.h" #include "buffers.h" #include "queries.h" +#include "light.h" typedef struct _glstack_t glstack_t; typedef struct _glclientstack_t glclientstack_t; @@ -61,6 +62,8 @@ typedef struct { typedef struct { renderlist_t *active; GLboolean compiling; + GLboolean pending; + GLboolean begin; GLboolean locked; GLuint base; GLuint name; @@ -189,6 +192,8 @@ typedef struct { int emulatedPixmap; int emulatedWin; int shared_cnt; + light_state_t light; + material_state_t material; } glstate_t; #endif diff --git a/project/jni/gl4es/src/gl/texgen.c b/project/jni/gl4es/src/gl/texgen.c index d71ca7670..691145517 100755 --- a/project/jni/gl4es/src/gl/texgen.c +++ b/project/jni/gl4es/src/gl/texgen.c @@ -23,12 +23,14 @@ void gl4es_glTexGenfv(GLenum coord, GLenum pname, const GLfloat *param) { */ //printf("glTexGenf(%s, %s, %s/%f), texture=%i\n", PrintEnum(coord), PrintEnum(pname), PrintEnum(param[0]), param[0], glstate->texture.active); - if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { - NewStage(glstate->list.active, STAGE_TEXGEN); - rlTexGenfv(glstate->list.active, coord, pname, param); - noerrorShim(); - return; - } + ERROR_IN_BEGIN + if (glstate->list.active) + if (glstate->list.compiling || glstate->gl_batch) { + NewStage(glstate->list.active, STAGE_TEXGEN); + rlTexGenfv(glstate->list.active, coord, pname, param); + noerrorShim(); + return; + } else flush(); // pname is in: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE, GL_EYE_PLANE noerrorShim(); @@ -84,7 +86,8 @@ void gl4es_glTexGenfv(GLenum coord, GLenum pname, const GLfloat *param) { } } void gl4es_glGetTexGenfv(GLenum coord,GLenum pname,GLfloat *params) { - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) + flush(); noerrorShim(); switch(pname) { case GL_TEXTURE_GEN_MODE: @@ -224,7 +227,26 @@ void eye_loop(const GLfloat *verts, const GLfloat *param, GLfloat *out, GLint co matrix_vector(ModelviewMatrix, verts+k*4, tmp); out[k*4]=dot4(plane, tmp); } +} +void eye_loop_dual(const GLfloat *verts, const GLfloat *param1, const GLfloat* param2, GLfloat *out, GLint count, GLushort *indices) { + // based on https://www.opengl.org/wiki/Mathematics_of_glTexGen + // First get the ModelviewMatrix + GLfloat ModelviewMatrix[16], InvModelview[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, InvModelview); + // column major -> row major + matrix_transpose(InvModelview, ModelviewMatrix); + // And get the inverse + matrix_inverse(ModelviewMatrix, InvModelview); + GLfloat plane1[4], plane2[4], tmp[4]; + vector_matrix(param1, InvModelview, plane1); + vector_matrix(param2, InvModelview, plane2); + for (int i=0; ienable.texgen_s[texture]) - tex_coord_loop(verts, norm, (*coords), (indices)?ilen:count, glstate->texgen[texture].S, glstate->texgen[texture].S_O, glstate->texgen[texture].S_E, indices); - if (glstate->enable.texgen_t[texture]) - tex_coord_loop(verts, norm, (*coords)+1, (indices)?ilen:count, glstate->texgen[texture].T, glstate->texgen[texture].T_O, glstate->texgen[texture].T_E, indices); + if ( (glstate->enable.texgen_s[texture] && glstate->texgen[texture].S==GL_EYE_LINEAR) + && (glstate->enable.texgen_t[texture] && glstate->texgen[texture].T==GL_EYE_LINEAR) ) + { + eye_loop_dual(verts, glstate->texgen[texture].S_E, glstate->texgen[texture].T_E, (*coords), (indices)?ilen:count, indices); + } else { + if (glstate->enable.texgen_s[texture]) + tex_coord_loop(verts, norm, (*coords), (indices)?ilen:count, glstate->texgen[texture].S, glstate->texgen[texture].S_O, glstate->texgen[texture].S_E, indices); + if (glstate->enable.texgen_t[texture]) + tex_coord_loop(verts, norm, (*coords)+1, (indices)?ilen:count, glstate->texgen[texture].T, glstate->texgen[texture].T_O, glstate->texgen[texture].T_E, indices); + } if (glstate->enable.texgen_r[texture]) tex_coord_loop(verts, norm, (*coords)+2, (indices)?ilen:count, glstate->texgen[texture].R, glstate->texgen[texture].R_O, glstate->texgen[texture].R_E, indices); else diff --git a/project/jni/gl4es/src/gl/texture.c b/project/jni/gl4es/src/gl/texture.c index 4f6547de9..30802f8bc 100755 --- a/project/jni/gl4es/src/gl/texture.c +++ b/project/jni/gl4es/src/gl/texture.c @@ -167,6 +167,10 @@ void internal2format_type(GLenum internalformat, GLenum *format, GLenum *type) *format = GL_RGBA; *type = GL_UNSIGNED_BYTE; break; + case GL_BGRA: + *format = GL_BGRA; + *type = GL_UNSIGNED_BYTE; + break; case GL_DEPTH_COMPONENT: *format = GL_DEPTH_COMPONENT; *type = GL_UNSIGNED_SHORT; @@ -229,6 +233,12 @@ static void *swizzle_texture(GLsizei width, GLsizei height, dest_format = GL_RGBA; *format = GL_RGBA; break; + case GL_BGRA: + if(hardext.bgra8888 && ((*type)==GL_UNSIGNED_BYTE)) { + dest_format = GL_BGRA; + *format = GL_BGRA; + } else convert = true; + break; default: convert = true; break; @@ -336,7 +346,7 @@ static void *swizzle_texture(GLsizei width, GLsizei height, return (void *)data; } -GLenum swizzle_internalformat(GLenum *internalformat) { +GLenum swizzle_internalformat(GLenum *internalformat, GLenum format) { GLenum ret = *internalformat; GLenum sret; switch(*internalformat) { @@ -372,13 +382,16 @@ GLenum swizzle_internalformat(GLenum *internalformat) { break; case GL_RGBA: case GL_RGBA8: - case GL_BGRA: case GL_RGBA16: case GL_RGBA16F: case GL_RGBA32F: case GL_RGB10_A2: case 4: - ret = GL_RGBA; sret = GL_RGBA; + if(format==GL_BGRA && hardext.bgra8888) { + ret = GL_BGRA; sret = GL_BGRA; + } else { + ret = GL_RGBA; sret = GL_RGBA; + } break; case GL_ALPHA8: case GL_ALPHA: @@ -431,6 +444,15 @@ GLenum swizzle_internalformat(GLenum *internalformat) { ret = GL_COMPRESSED_RGBA; sret = GL_RGBA; break; + case GL_BGRA: + if(hardext.bgra8888) { + ret = GL_BGRA; + sret = GL_BGRA; + } else { + ret = GL_RGBA; + sret = GL_RGBA; + } + break; default: ret = GL_RGBA; sret = GL_RGBA; @@ -531,23 +553,27 @@ void gl4es_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *data) { - //printf("glTexImage2D on target=%s with unpack_row_length(%i), size(%i,%i) and skip(%i,%i), format(internal)=%s(%s), type=%s, data=%08x, level=%i (mipmap_need=%i, mipmap_auto=%i) => texture=%u (streamed=%i), glstate->list.compiling=%d\n", PrintEnum(target), glstate->texture.unpack_row_length, width, height, glstate->texture.unpack_skip_pixels, glstate->texture.unpack_skip_rows, PrintEnum(format), PrintEnum(internalformat), PrintEnum(type), data, level, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_need:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_auto:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->texture:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->streamed:0, glstate->list.compiling); + //printf("glTexImage2D on target=%s with unpack_row_length(%i), size(%i,%i) and skip(%i,%i), format(internal)=%s(%s), type=%s, data=%08x, level=%i (mipmap_need=%i, mipmap_auto=%i, base_level=%i, max_level=%i) => texture=%u (streamed=%i), glstate->list.compiling=%d\n", PrintEnum(target), glstate->texture.unpack_row_length, width, height, glstate->texture.unpack_skip_pixels, glstate->texture.unpack_skip_rows, PrintEnum(format), PrintEnum(internalformat), PrintEnum(type), data, level, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_need:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_auto:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->base_level:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->max_level:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->texture:0, (glstate->texture.bound[glstate->texture.active][what_target(target)])?glstate->texture.bound[glstate->texture.active][what_target(target)]->streamed:0, glstate->list.compiling); // proxy case - if (target == GL_PROXY_TEXTURE_2D || target == GL_PROXY_TEXTURE_1D || target == GL_PROXY_TEXTURE_3D) { - proxy_width = ((width<(globals4es.texshrink>=8)?8192:2048)?0:width; - proxy_height = ((height<(globals4es.texshrink>=8)?8192:2048)?0:height; - proxy_intformat = swizzle_internalformat(&internalformat); + + const GLuint itarget = what_target(target); + const GLuint rtarget = map_tex_target(target); + + if (rtarget == GL_PROXY_TEXTURE_2D) { + int max1=hardext.maxsize; + if (globals4es.texshrink>=8 && max1>8192) max1=8192; + proxy_width = ((width<max1)?0:width; + proxy_height = ((height<max1)?0:height; + proxy_intformat = swizzle_internalformat(&internalformat, format); return; } //PUSH_IF_COMPILING(glTexImage2D); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } - GLuint itarget = what_target(target); - GLvoid *datab = (GLvoid*)data; if (glstate->vao->unpack) @@ -568,7 +594,7 @@ void gl4es_glTexImage2D(GLenum target, GLint level, GLint internalformat, else bound->mipmap_need = 1; } - GLenum new_format = swizzle_internalformat(&internalformat); + GLenum new_format = swizzle_internalformat(&internalformat, format); if (bound && (level==0)) { bound->orig_internal = internalformat; bound->internalformat = new_format; @@ -698,6 +724,10 @@ void gl4es_glTexImage2D(GLenum target, GLint level, GLint internalformat, { GLsizei nheight = (hardext.npot==2)?height:npot(height), nwidth = (hardext.npot==2)?width:npot(width); + if(target==GL_TEXTURE_RECTANGLE_ARB && hardext.npot==1) { + nheight = height; + nwidth = width; + } #ifdef PANDORA #define NO_1x1 #endif @@ -724,48 +754,105 @@ void gl4es_glTexImage2D(GLenum target, GLint level, GLint internalformat, } if ((bound) && (globals4es.automipmap==4) && (nwidth!=nheight)) bound->mipmap_auto = 0; - + + if((bound) && (target==GL_TEXTURE_RECTANGLE_ARB && hardext.npot==1)) { + gl4es_glTexParameteri(rtarget, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + gl4es_glTexParameteri(rtarget, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + } + if (!(globals4es.texstream && bound && bound->streamed)) { - if (bound && ((bound->mipmap_need && (globals4es.automipmap!=3)) || (bound->mipmap_auto))) - gles_glTexParameteri( target, GL_GENERATE_MIPMAP, GL_TRUE ); + if (bound && (target!=GL_TEXTURE_RECTANGLE_ARB) && ((bound->mipmap_need && (globals4es.automipmap!=3)) || (bound->mipmap_auto))) + gles_glTexParameteri( rtarget, GL_GENERATE_MIPMAP, GL_TRUE ); else { - if(itarget!=ENABLED_CUBE_MAP) gles_glTexParameteri( target, GL_GENERATE_MIPMAP, GL_FALSE ); - if ((bound) && (bound->mipmap_need)) { + //if(target!=GL_TEXTURE_RECTANGLE_ARB) gles_glTexParameteri( rtarget, GL_GENERATE_MIPMAP, GL_FALSE ); + if ((bound) && (itarget!=ENABLED_CUBE_MAP && target!=GL_TEXTURE_RECTANGLE_ARB) && (bound->mipmap_need)) { // remove the need for mipmap... bound->mipmap_need = 0; - gl4es_glTexParameteri(target, GL_TEXTURE_MIN_FILTER, bound->min_filter); - gl4es_glTexParameteri(target, GL_TEXTURE_MAG_FILTER, bound->mag_filter); + gl4es_glTexParameteri(rtarget, GL_TEXTURE_MIN_FILTER, bound->min_filter); + gl4es_glTexParameteri(rtarget, GL_TEXTURE_MAG_FILTER, bound->mag_filter); } } if (height != nheight || width != nwidth) { - gles_glTexImage2D(target, level, format, nwidth, nheight, border, + gles_glTexImage2D(rtarget, level, format, nwidth, nheight, border, format, type, NULL); - if (pixels) gles_glTexSubImage2D(target, level, 0, 0, width, height, + if (pixels) gles_glTexSubImage2D(rtarget, level, 0, 0, width, height, format, type, pixels); errorGL(); #ifdef NO_1x1 if(level==0 && (width==1 || height==1 && pixels)) { - // complete the texture, juste in ase it use GL_REPEAT + // complete the texture, juste in case it use GL_REPEAT // also, don't keep the fact we have resized, the non-adjusted coordinates will work (as the texture is enlarged) - if(width==1) {gles_glTexSubImage2D(target, level, 1, 0, width, height, format, type, pixels); nwidth=1;} - if(height==1) {gles_glTexSubImage2D(target, level, 0, 1, width, height, format, type, pixels); nheight=1;} + if(width==1) {gles_glTexSubImage2D(rtarget, level, 1, 0, width, height, format, type, pixels); nwidth=1;} + if(height==1) {gles_glTexSubImage2D(rtarget, level, 0, 1, width, height, format, type, pixels); nheight=1;} if(width==1 && height==1) { // create a manual mipmap just in case_state - gles_glTexSubImage2D(target, level, 1, 1, width, height, format, type, pixels); - gles_glTexImage2D(target, 1, format, 1, 1, 0, format, type, pixels); + gles_glTexSubImage2D(rtarget, level, 1, 1, width, height, format, type, pixels); + gles_glTexImage2D(rtarget, 1, format, 1, 1, 0, format, type, pixels); } } #endif } else { - gles_glTexImage2D(target, level, format, width, height, border, + gles_glTexImage2D(rtarget, level, format, width, height, border, format, type, pixels); errorGL(); } + // check if base_level is set... and calculate lower level mipmap + if(bound->base_level == level) { + int leveln = level, nw = width, nh = height, nww=nwidth, nhh=nheight; + int pot = (nh==nhh && nw==nww); + void *ndata = pixels; + while(leveln) { + if(pixels) { + GLvoid *out = ndata; + pixel_doublescale(ndata, &out, nw, nh, format, type); + if (out != ndata && ndata!=pixels) + free(ndata); + ndata = out; + } + nw <<= 1; + nh <<= 1; + nww <<= 1; + nhh <<= 1; + --leveln; + gles_glTexImage2D(rtarget, leveln, format, nww, nhh, border, + format, type, (pot)?ndata:NULL); + if(!pot && pixels) gles_glTexSubImage2D(rtarget, leveln, 0, 0, nw, nh, + format, type, ndata); + } + if (ndata!=pixels) + free(ndata); + } + // check if max_level is set... and calculate highr level mipmap + if(bound->max_level == level) { + int leveln = level, nw = nwidth, nh = nheight, nww=width, nhh=height; + int pot = (nh==nhh && nw==nww); + void *ndata = pixels; + while(nw!=1 && nh!=1) { + if(pixels) { + GLvoid *out = ndata; + pixel_halfscale(ndata, &out, nww, nhh, format, type); + if (out != ndata && ndata!=pixels) + free(ndata); + ndata = out; + } + nw = nlevel(nw, 1); + nh = nlevel(nh, 1); + nww = nlevel(nww, 1); + nhh = nlevel(nhh, 1); + ++leveln; + gles_glTexImage2D(rtarget, leveln, format, nw, nh, border, + format, type, (pot)?ndata:NULL); + if(!pot && pixels) gles_glTexSubImage2D(rtarget, leveln, 0, 0, nww, nhh, + format, type, ndata); + } + if (ndata!=pixels) + free(ndata); + } /*if (bound && bound->mipmap_need && !bound->mipmap_auto && (globals4es.automipmap!=3)) - gles_glTexParameteri( target, GL_GENERATE_MIPMAP, GL_FALSE );*/ + gles_glTexParameteri( rtarget, GL_GENERATE_MIPMAP, GL_FALSE );*/ } else { if (pixels) - gl4es_glTexSubImage2D(target, level, 0, 0, width, height, format, type, pixels); // (should never happens) updload the 1st data... + gl4es_glTexSubImage2D(rtarget, level, 0, 0, width, height, format, type, pixels); // (should never happens) updload the 1st data... } } if ((target==GL_TEXTURE_2D) && globals4es.texcopydata && bound && ((globals4es.texstream && !bound->streamed) || !globals4es.texstream)) { @@ -792,7 +879,7 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff //PUSH_IF_COMPILING(glTexSubImage2D); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -803,6 +890,7 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff GLvoid *pixels = (GLvoid*)datab; const GLuint itarget = what_target(target); + const GLuint rtarget = map_tex_target(target); LOAD_GLES(glTexSubImage2D); LOAD_GLES(glTexParameteri); @@ -812,7 +900,6 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff glstate->gl_batch = old_glbatch; return; } - target = map_tex_target(target); gltexture_t *bound = glstate->texture.bound[glstate->texture.active][itarget]; if (globals4es.automipmap) { @@ -843,10 +930,11 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff // compressed format are not handled here, so mask them.... GLenum orig_internal = bound->orig_internal; GLenum internalformat = bound->internalformat; - if (orig_internal==GL_COMPRESSED_RGB) orig_internal=GL_RGB; - if (orig_internal==GL_COMPRESSED_RGBA) orig_internal=GL_RGBA; - if (internalformat==GL_COMPRESSED_RGB) internalformat=GL_RGB; - if (internalformat==GL_COMPRESSED_RGBA) internalformat=GL_RGBA; + // compressed format are not handled here, so mask them.... + if (is_fake_compressed_rgb(orig_internal)) orig_internal=GL_RGB; + if (is_fake_compressed_rgba(orig_internal)) orig_internal=GL_RGBA; + if (is_fake_compressed_rgb(internalformat)) internalformat=GL_RGB; + if (is_fake_compressed_rgba(internalformat)) internalformat=GL_RGBA; GLvoid *old = pixels; @@ -926,7 +1014,7 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff } if (bound && bound->mipmap_need && !bound->mipmap_auto && (globals4es.automipmap!=3) && (!globals4es.texstream || (globals4es.texstream && !bound->streamed))) - gles_glTexParameteri( target, GL_GENERATE_MIPMAP, GL_TRUE ); + gles_glTexParameteri( rtarget, GL_GENERATE_MIPMAP, GL_TRUE ); if (bound && globals4es.texstream && bound->streamed) { /* // copy the texture to the buffer @@ -935,13 +1023,60 @@ void gl4es_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoff memcpy(tmp+((yy+yoffset)*bound->width+xoffset)*2, pixels+(yy*width)*2, width*2); }*/ } else { - gles_glTexSubImage2D(target, level, xoffset, yoffset, + gles_glTexSubImage2D(rtarget, level, xoffset, yoffset, width, height, format, type, pixels); errorGL(); + // check if base_level is set... and calculate lower level mipmap + if(bound->base_level == level) { + int leveln = level, nw = width, nh = height, xx=xoffset, yy=yoffset; + void *ndata = pixels; + while(leveln) { + if(pixels) { + GLvoid *out = ndata; + pixel_doublescale(ndata, &out, nw, nh, format, type); + if (out != ndata && ndata!=pixels) + free(ndata); + ndata = out; + } + nw <<= 1; + nh <<= 1; + xx <<= 1; + yy <<= 1; + --leveln; + gles_glTexSubImage2D(rtarget, leveln, xx, yy, nw, nh, + format, type, ndata); + } + if (ndata!=pixels) + free(ndata); + } + // check if max_level is set... and calculate highr level mipmap + if(bound->max_level == level) { + int leveln = level, nw = width, nh = height, xx=xoffset, yy=yoffset; + void *ndata = pixels; + while(nw!=1 && nh!=1) { + if(pixels) { + GLvoid *out = ndata; + pixel_halfscale(ndata, &out, nw, nh, format, type); + if (out != ndata && ndata!=pixels) + free(ndata); + ndata = out; + } + nw = nlevel(nw, 1); + nh = nlevel(nh, 1); + xx = nlevel(xx, 1); + yy = nlevel(yy, 1); + ++leveln; + gles_glTexSubImage2D(rtarget, leveln, xx, yy, nw, nh, + format, type, ndata); + } + if (ndata!=pixels) + free(ndata); + } + } /*if (bound && bound->mipmap_need && !bound->mipmap_auto && (globals4es.automipmap!=3) && (!globals4es.texstream || (globals4es.texstream && !bound->streamed))) - gles_glTexParameteri( target, GL_GENERATE_MIPMAP, GL_FALSE );*/ + gles_glTexParameteri( rtarget, GL_GENERATE_MIPMAP, GL_FALSE );*/ if ((target==GL_TEXTURE_2D) && globals4es.texcopydata && bound && ((globals4es.texstream && !bound->streamed) || !globals4es.texstream)) { //printf("*texcopy* glTexSubImage2D, xy=%i,%i, size=%i,%i=>%i,%i, format=%s, type=%s, tex=%u\n", xoffset, yoffset, width, height, bound->width, bound->height, PrintEnum(format), PrintEnum(type), bound->glname); @@ -1078,7 +1213,7 @@ GLboolean gl4es_glIsTexture(GLuint texture) { gltexture_t* gl4es_getTexture(GLenum target, GLuint texture) { // Get a texture based on glID gltexture_t* tex = NULL; - if (texture == 0) return tex; + //if (texture == 0) return tex; // texture 0 is a texture like any other... it is not "unbind" texture in fact!! int ret; khint_t k; khash_t(tex) *list = glstate->texture.list; @@ -1102,14 +1237,15 @@ gltexture_t* gl4es_getTexture(GLenum target, GLuint texture) { tex->uploaded = false; tex->mipmap_auto = default_tex_mipmap || (globals4es.automipmap==1); tex->mipmap_need = (globals4es.automipmap==1)?1:0; - tex->alpha = true; - tex->streamed = false; tex->streamingID = -1; + tex->base_level = -1; + tex->max_level = -1; + tex->streamed = false; + tex->alpha = true; + tex->compressed = false; tex->min_filter = tex->mag_filter = (globals4es.automipmap==1)?GL_LINEAR_MIPMAP_LINEAR:GL_LINEAR; tex->format = GL_RGBA; tex->type = GL_UNSIGNED_BYTE; - tex->orig_internal = GL_RGBA; - tex->internalformat = GL_RGBA; tex->shrink = 0; tex->data = NULL; } else { @@ -1120,8 +1256,9 @@ gltexture_t* gl4es_getTexture(GLenum target, GLuint texture) { #define batch_activetex (glstate->statebatch.active_tex_changed?(glstate->statebatch.active_tex-GL_TEXTURE0):glstate->texture.active) void gl4es_glBindTexture(GLenum target, GLuint texture) { noerrorShim(); + //printf("glBindTexture(%s, %u), active=%i, client=%i\n", PrintEnum(target), texture, glstate->texture.active, glstate->texture.client); + if(glstate->list.pending) flush(); if ((target!=GL_PROXY_TEXTURE_2D) && (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling))) { - //printf("=> glBindTexture(0x%04X, %u), active=%i, client=%i, batch_active=%i, batch_bound=0x%04X, batch_tex=%u\n", target, texture, glstate->texture.active, glstate->texture.client, batch_activetex, glstate->statebatch.bound_targ[batch_activetex], glstate->statebatch.bound_tex[batch_activetex]); if ((glstate->statebatch.bound_targ[batch_activetex] == target) && (glstate->statebatch.bound_tex[batch_activetex] == texture)) return; // nothing to do... if (glstate->statebatch.bound_targ[batch_activetex]) { @@ -1129,7 +1266,6 @@ void gl4es_glBindTexture(GLenum target, GLuint texture) { } glstate->statebatch.bound_targ[batch_activetex] = target; glstate->statebatch.bound_tex[batch_activetex] = texture; - //printf(" <= glBindTexture(0x%04X, %u), active=%i, client=%i, batch_active=%i, batch_bound=0x%04X, batch_tex=%u\n", target, texture, glstate->texture.active, glstate->texture.client, batch_activetex, glstate->statebatch.bound_targ[batch_activetex], glstate->statebatch.bound_tex[batch_activetex]); } if ((target!=GL_PROXY_TEXTURE_2D) && ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active)) { // check if already a texture binded, if yes, create a new list @@ -1140,18 +1276,13 @@ void gl4es_glBindTexture(GLenum target, GLuint texture) { int streamingID = -1; gltexture_t *tex = NULL; const GLuint itarget = what_target(target); - //printf("glBindTexture(0x%04X, %u), active=%i, client=%i\n", target, texture, glstate->texture.active, glstate->texture.client); - if (texture) { - tex = gl4es_getTexture(target, texture); - if (glstate->texture.bound[glstate->texture.active][itarget] == tex) - tex_changed = 0; - texture = tex->glname; - if (globals4es.texstream && tex->streamed) - streamingID = tex->streamingID; - } else { - if (glstate->texture.bound[glstate->texture.active][itarget] == NULL) - tex_changed = 0; - } + + tex = gl4es_getTexture(target, texture); + if (glstate->texture.bound[glstate->texture.active][itarget] == tex) + tex_changed = 0; + texture = tex->glname; + if (globals4es.texstream && tex->streamed) + streamingID = tex->streamingID; LOAD_GLES(glDisable); LOAD_GLES(glEnable); @@ -1173,7 +1304,7 @@ tex_changed=1; // seems buggy, temporary disabling that... } #endif - target = map_tex_target(target); + const GLuint rtarget = map_tex_target(target); glstate->texture.bound[glstate->texture.active][itarget] = tex; @@ -1188,7 +1319,7 @@ tex_changed=1; // seems buggy, temporary disabling that... } else #endif { - gles_glBindTexture(target, texture); + gles_glBindTexture(rtarget, texture); errorGL(); } } @@ -1201,7 +1332,7 @@ void gl4es_glTexParameteri(GLenum target, GLenum pname, GLint param) { PUSH_IF_COMPILING(glTexParameteri); LOAD_GLES(glTexParameteri); const GLint itarget = what_target(target); - target = map_tex_target(target); + const GLuint rtarget = map_tex_target(target); gltexture_t *texture = glstate->texture.bound[glstate->texture.active][itarget]; switch (pname) { case GL_TEXTURE_MIN_FILTER: @@ -1238,11 +1369,17 @@ void gl4es_glTexParameteri(GLenum target, GLenum pname, GLint param) { if (pname==GL_TEXTURE_WRAP_S) if (texture) texture->wrap_s = param; if (pname==GL_TEXTURE_WRAP_T) if (texture) texture->wrap_t = param; break; + case GL_TEXTURE_WRAP_R: + // ignore it on GLES... + break; case GL_TEXTURE_MAX_LEVEL: if (texture) - texture->mipmap_auto = (param)?1:0; + texture->max_level = param; return; // not on GLES case GL_TEXTURE_BASE_LEVEL: + if (texture) + texture->base_level = param; + return; // not on GLES case GL_TEXTURE_MIN_LOD: case GL_TEXTURE_MAX_LOD: case GL_TEXTURE_LOD_BIAS: @@ -1254,9 +1391,10 @@ void gl4es_glTexParameteri(GLenum target, GLenum pname, GLint param) { default_tex_mipmap = texture->mipmap_auto; } else default_tex_mipmap = (param)?1:0; // default? - return; // We control the behavour later + //return; // We control the behavour later + break; } - gles_glTexParameteri(target, pname, param); + gles_glTexParameteri(rtarget, pname, param); errorGL(); } @@ -1265,7 +1403,7 @@ void gl4es_glTexParameterf(GLenum target, GLenum pname, GLfloat param) { } void gl4es_glDeleteTextures(GLsizei n, const GLuint *textures) { - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); noerrorShim(); LOAD_GLES(glDeleteTextures); khash_t(tex) *list = glstate->texture.list; @@ -1308,7 +1446,7 @@ void gl4es_glDeleteTextures(GLsizei n, const GLuint *textures) { void gl4es_glGenTextures(GLsizei n, GLuint * textures) { if (n<=0) return; - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); LOAD_GLES(glGenTextures); gles_glGenTextures(n, textures); errorGL(); @@ -1334,13 +1472,15 @@ void gl4es_glGenTextures(GLsizei n, GLuint * textures) { tex->width = 0; tex->height = 0; tex->uploaded = false; - tex->mipmap_auto = 0; - tex->mipmap_need = 0; + tex->mipmap_auto = default_tex_mipmap || (globals4es.automipmap==1); + tex->mipmap_need = (globals4es.automipmap==1)?1:0; tex->streamingID = -1; + tex->base_level = -1; + tex->max_level = -1; tex->streamed = false; tex->alpha = true; tex->compressed = false; - tex->min_filter = tex->mag_filter = GL_NEAREST; + tex->min_filter = tex->mag_filter = (globals4es.automipmap==1)?GL_LINEAR_MIPMAP_LINEAR:GL_LINEAR; tex->format = GL_RGBA; tex->type = GL_UNSIGNED_BYTE; tex->shrink = 0; @@ -1362,15 +1502,15 @@ GLboolean gl4es_glAreTexturesResident(GLsizei n, const GLuint *textures, GLboole void gl4es_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params) { //printf("glGetTexLevelParameteriv(%s, %d, %s, %p)\n", PrintEnum(target), level, PrintEnum(pname), params); // simplification: (mostly) not taking "target" into account here - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); *params = 0; noerrorShim(); const GLuint itarget = what_target(target); - target = map_tex_target(target); + const GLuint rtarget = map_tex_target(target); gltexture_t* bound = glstate->texture.bound[glstate->texture.active][itarget]; switch (pname) { case GL_TEXTURE_WIDTH: - if (target==GL_PROXY_TEXTURE_2D) + if (rtarget==GL_PROXY_TEXTURE_2D) (*params) = nlevel(proxy_width,level); else { (*params) = nlevel((bound)?bound->width:2048,level); @@ -1379,7 +1519,7 @@ void gl4es_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GL } break; case GL_TEXTURE_HEIGHT: - if (target==GL_PROXY_TEXTURE_2D) + if (rtarget==GL_PROXY_TEXTURE_2D) (*params) = nlevel(proxy_height,level); else { (*params) = nlevel((bound)?bound->height:2048,level); @@ -1388,7 +1528,7 @@ void gl4es_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GL } break; case GL_TEXTURE_INTERNAL_FORMAT: - if (target==GL_PROXY_TEXTURE_2D) + if (rtarget==GL_PROXY_TEXTURE_2D) (*params) = proxy_intformat; else { if (bound && bound->compressed) @@ -1476,7 +1616,7 @@ void popViewport(); void gl4es_glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * img) { //printf("glGetTexImage(%s, %i, %s, %s, %p)\n", PrintEnum(target), level, PrintEnum(format), PrintEnum(type), img); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -1493,7 +1633,7 @@ void gl4es_glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, //printf("STUBBED glGetTexImage with level=%i\n", level); void* tmp = malloc(width*height*pixel_sizeof(format, type)); // tmp space... void* tmp2; - gl4es_glGetTexImage(target, 0, format, type, tmp); + gl4es_glGetTexImage(map_tex_target(target), 0, format, type, tmp); for (int i=0; ilist.pending) flush(); if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) { if (glstate->statebatch.active_tex_changed) { if(glstate->statebatch.active_tex == texture) @@ -1708,7 +1849,7 @@ void gl4es_glClientActiveTexture( GLenum texture ) { // try to speed-up things... if (glstate->texture.client == (texture - GL_TEXTURE0)) return; - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); glstate->texture.client = texture - GL_TEXTURE0; LOAD_GLES(glClientActiveTexture); gles_glClientActiveTexture(texture); @@ -1717,7 +1858,7 @@ void gl4es_glClientActiveTexture( GLenum texture ) { void gl4es_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * data) { //printf("glReadPixels(%i, %i, %i, %i, %s, %s, 0x%p)\n", x, y, width, height, PrintEnum(format), PrintEnum(type), data); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -1765,7 +1906,7 @@ void gl4es_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint //printf("glCopyTexSubImage2D(%s, %i, %i, %i, %i, %i, %i, %i), bounded texture=%u format/type=%s, %s\n", PrintEnum(target), level, xoffset, yoffset, x, y, width, height, (glstate->texture.bound[glstate->texture.active])?glstate->texture.bound[glstate->texture.active]->texture:0, PrintEnum((glstate->texture.bound[glstate->texture.active])?glstate->texture.bound[glstate->texture.active]->format:0), PrintEnum((glstate->texture.bound[glstate->texture.active])?glstate->texture.bound[glstate->texture.active]->type:0)); // PUSH_IF_COMPILING(glCopyTexSubImage2D); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -1826,7 +1967,7 @@ void gl4es_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, //printf("glCopyTexImage2D(0x%04X, %i, 0x%04X, %i, %i, %i, %i, %i), current_fb=%u\n", target, level, internalformat, x, y, width, height, border, current_fb); //PUSH_IF_COMPILING(glCopyTexImage2D); GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -1932,14 +2073,14 @@ void gl4es_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalfor GLsizei imageSize, const GLvoid *data) { const GLuint itarget = what_target(target); - target = map_tex_target(target); + const GLuint rtarget = map_tex_target(target); if (target == GL_PROXY_TEXTURE_2D) { proxy_width = (width>2048)?0:width; proxy_height = (height>2048)?0:height; return; } GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -2029,7 +2170,7 @@ void gl4es_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalfor gl4es_glGetIntegerv(GL_UNPACK_ALIGNMENT, &oldalign); if (oldalign!=1) gl4es_glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - gl4es_glTexImage2D(target, level, format==GL_RGBA?GL_COMPRESSED_RGBA:GL_COMPRESSED_RGB, nlevel(width,fact), nlevel(height,fact), border, format, type, half); + gl4es_glTexImage2D(rtarget, level, format==GL_RGBA?GL_COMPRESSED_RGBA:GL_COMPRESSED_RGB, nlevel(width,fact), nlevel(height,fact), border, format, type, half); // re-update bounded texture info bound->compressed = true; bound->internalformat = internalformat; @@ -2045,7 +2186,7 @@ void gl4es_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalfor bound->type = GL_UNSIGNED_BYTE; bound->internalformat = internalformat; bound->compressed = true; - gles_glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, datab); + gles_glCompressedTexImage2D(rtarget, level, internalformat, width, height, border, imageSize, datab); } glstate->vao->unpack = unpack; glstate->gl_batch = old_glbatch; @@ -2057,7 +2198,7 @@ void gl4es_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, { const GLuint itarget = what_target(target); const GLuint old_glbatch = glstate->gl_batch; - if (glstate->gl_batch) { + if (glstate->gl_batch || glstate->list.pending) { flush(); glstate->gl_batch = 0; } @@ -2124,7 +2265,7 @@ void gl4es_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, } void gl4es_glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img) { - if (glstate->gl_batch) flush(); + if (glstate->gl_batch || glstate->list.pending) flush(); const GLuint itarget = what_target(target); gltexture_t* bound = glstate->texture.bound[glstate->texture.active][itarget]; @@ -2227,6 +2368,7 @@ void gl4es_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *param) { gles_glTexEnvfv(target, pname, param); } void gl4es_glTexEnviv(GLenum target, GLenum pname, const GLint *param) { + if (glstate->list.pending) flush(); if ((glstate->list.compiling || glstate->gl_batch) && glstate->list.active) { NewStage(glstate->list.active, STAGE_TEXENV); rlTexEnviv(glstate->list.active, target, pname, param); @@ -2238,6 +2380,7 @@ void gl4es_glTexEnviv(GLenum target, GLenum pname, const GLint *param) { } void gl4es_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) { LOAD_GLES(glGetTexEnvfv); + if (glstate->list.pending) flush(); if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) flush(); if(target==GL_POINT_SPRITE && pname==GL_COORD_REPLACE) *params = glstate->texture.pscoordreplace[glstate->texture.active]; @@ -2247,6 +2390,7 @@ void gl4es_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) { } void gl4es_glGetTexEnviv(GLenum target, GLenum pname, GLint * params) { LOAD_GLES(glGetTexEnviv); + if (glstate->list.pending) flush(); if (glstate->list.active && (glstate->gl_batch && !glstate->list.compiling)) flush(); if(target==GL_POINT_SPRITE && pname==GL_COORD_REPLACE) *params = glstate->texture.pscoordreplace[glstate->texture.active]; @@ -2316,4 +2460,4 @@ void glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLi void glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data) AliasExport("gl4es_glCompressedTexSubImage1D"); void glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data) AliasExport("gl4es_glCompressedTexSubImage3D"); void glGetCompressedTexImageARB(GLenum target, GLint lod, GLvoid *img) AliasExport("gl4es_glGetCompressedTexImage"); -void glCopyTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) AliasExport("gl4es_glCopyTexSubImage3D"); +void glCopyTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) AliasExport("gl4es_glCopyTexSubImage3D"); \ No newline at end of file diff --git a/project/jni/gl4es/src/gl/texture.h b/project/jni/gl4es/src/gl/texture.h index 9ddcef64e..a7d0f4f70 100755 --- a/project/jni/gl4es/src/gl/texture.h +++ b/project/jni/gl4es/src/gl/texture.h @@ -126,6 +126,8 @@ typedef struct { GLboolean compressed; GLboolean streamed; int streamingID; + int base_level; + int max_level; GLvoid *data; // in case we want to keep a copy of it (it that case, always RGBA/GL_UNSIGNED_BYTE } gltexture_t; @@ -140,6 +142,7 @@ static inline GLenum map_tex_target(GLenum target) { break; case GL_PROXY_TEXTURE_1D: case GL_PROXY_TEXTURE_3D: + case GL_PROXY_TEXTURE_RECTANGLE_ARB: target = GL_PROXY_TEXTURE_2D; break; } @@ -184,7 +187,7 @@ static inline GLenum to_target(GLuint itarget) { } } #define IS_TEX2D(T) (T&(1<>16)*1.0f/32767.f; } gl4es_glFogfv(pname, params); break; @@ -85,17 +85,33 @@ void gl4es_glGetMaterialiv(GLenum face, GLenum pname, GLint * params) { GLfloat fparams[4]; gl4es_glGetMaterialfv(face, pname, fparams); if (pname==GL_SHININESS) *params=fparams[0]; - else for (int i=0; i<4; i++) params[i]=fparams[i]; + else { + if (pname==GL_COLOR_INDEXES) + for (int i=0; i<3; i++) params[i]=fparams[i]; + else + for (int i=0; i<4; i++) params[i]=((int)fparams[i]*32767)<<16; + } } void gl4es_glGetLightiv(GLenum light, GLenum pname, GLint * params) { GLfloat fparams[4]; gl4es_glGetLightfv(light, pname, fparams); int n=4; - if (pname==GL_SPOT_EXPONENT) n=1; - if (pname==GL_SPOT_CUTOFF) n=1; - if (pname==GL_SPOT_EXPONENT) n=1; - if (pname==GL_SPOT_DIRECTION) n=3; - else for (int i=0; i>16)*(1.0f/32767.f); + } + gl4es_glLightfv(light, pname, params); + break; + case GL_POSITION: for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } gl4es_glLightfv(light, pname, params); break; - } - case GL_SPOT_DIRECTION: { - GLfloat params[4]; + case GL_SPOT_DIRECTION: for (int i = 0; i < 4; i++) { params[i] = iparams[i]; } gl4es_glLightfv(light, pname, params); break; - } case GL_SPOT_EXPONENT: case GL_SPOT_CUTOFF: case GL_CONSTANT_ATTENUATION: @@ -163,7 +181,7 @@ void gl4es_glLightModeliv(GLenum pname, GLint *iparams) { case GL_LIGHT_MODEL_AMBIENT: { GLfloat params[4]; for (int i = 0; i < 4; i++) { - params[i] = iparams[i]; + params[i] = (iparams[i]>>16)*1.f/32767.f; } gl4es_glLightModelfv(pname, params); break; @@ -186,24 +204,17 @@ printf("glMaterialiv(%04X, %04X, [%i,...]\n", face, pname, iparams[0]); case GL_DIFFUSE: case GL_SPECULAR: case GL_EMISSION: + case GL_AMBIENT_AND_DIFFUSE: { GLfloat params[4]; for (int i = 0; i < 4; i++) { - params[i] = iparams[i]; // should divide by MAX_INT + params[i] = (iparams[i]>>16)*1.f/32767.f; } gl4es_glMaterialfv(face, pname, params); break; } case GL_SHININESS: { - GLfloat params[2]; - for (int i = 0; i < 2; i++) { - params[i] = iparams[i]; - } - gl4es_glMaterialfv(face, pname, params); - break; - } - case GL_AMBIENT_AND_DIFFUSE: { gl4es_glMaterialf(face, pname, *iparams); break; } diff --git a/project/jni/gl4es/src/gl/wrap/gles.c b/project/jni/gl4es/src/gl/wrap/gles.c old mode 100755 new mode 100644 index a4cb640c9..fdb427cc1 --- a/project/jni/gl4es/src/gl/wrap/gles.c +++ b/project/jni/gl4es/src/gl/wrap/gles.c @@ -1,4 +1,3 @@ -#ifndef USE_ES2 #include "gles.h" #ifndef skip_glActiveTexture void gl4es_glActiveTexture(GLenum texture) { @@ -40,6 +39,26 @@ void gl4es_glBindBuffer(GLenum target, GLuint buffer) { } void glBindBuffer(GLenum target, GLuint buffer) __attribute__((alias("gl4es_glBindBuffer"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glBindFramebuffer +void gl4es_glBindFramebuffer(GLenum target, GLuint framebuffer) { + LOAD_GLES_OES(glBindFramebuffer); +#ifndef direct_glBindFramebuffer + PUSH_IF_COMPILING(glBindFramebuffer) +#endif + gles_glBindFramebuffer(target, framebuffer); +} +void glBindFramebuffer(GLenum target, GLuint framebuffer) __attribute__((alias("gl4es_glBindFramebuffer"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glBindRenderbuffer +void gl4es_glBindRenderbuffer(GLenum target, GLuint renderbuffer) { + LOAD_GLES_OES(glBindRenderbuffer); +#ifndef direct_glBindRenderbuffer + PUSH_IF_COMPILING(glBindRenderbuffer) +#endif + gles_glBindRenderbuffer(target, renderbuffer); +} +void glBindRenderbuffer(GLenum target, GLuint renderbuffer) __attribute__((alias("gl4es_glBindRenderbuffer"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glBindTexture void gl4es_glBindTexture(GLenum target, GLuint texture) { LOAD_GLES(glBindTexture); @@ -50,6 +69,36 @@ void gl4es_glBindTexture(GLenum target, GLuint texture) { } void glBindTexture(GLenum target, GLuint texture) __attribute__((alias("gl4es_glBindTexture"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glBlendColor +void gl4es_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { + LOAD_GLES_OES(glBlendColor); +#ifndef direct_glBlendColor + PUSH_IF_COMPILING(glBlendColor) +#endif + gles_glBlendColor(red, green, blue, alpha); +} +void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) __attribute__((alias("gl4es_glBlendColor"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glBlendEquation +void gl4es_glBlendEquation(GLenum mode) { + LOAD_GLES_OES(glBlendEquation); +#ifndef direct_glBlendEquation + PUSH_IF_COMPILING(glBlendEquation) +#endif + gles_glBlendEquation(mode); +} +void glBlendEquation(GLenum mode) __attribute__((alias("gl4es_glBlendEquation"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glBlendEquationSeparate +void gl4es_glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) { + LOAD_GLES_OES(glBlendEquationSeparate); +#ifndef direct_glBlendEquationSeparate + PUSH_IF_COMPILING(glBlendEquationSeparate) +#endif + gles_glBlendEquationSeparate(modeRGB, modeA); +} +void glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) __attribute__((alias("gl4es_glBlendEquationSeparate"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glBlendFunc void gl4es_glBlendFunc(GLenum sfactor, GLenum dfactor) { LOAD_GLES(glBlendFunc); @@ -60,6 +109,16 @@ void gl4es_glBlendFunc(GLenum sfactor, GLenum dfactor) { } void glBlendFunc(GLenum sfactor, GLenum dfactor) __attribute__((alias("gl4es_glBlendFunc"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glBlendFuncSeparate +void gl4es_glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { + LOAD_GLES_OES(glBlendFuncSeparate); +#ifndef direct_glBlendFuncSeparate + PUSH_IF_COMPILING(glBlendFuncSeparate) +#endif + gles_glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); +} +void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) __attribute__((alias("gl4es_glBlendFuncSeparate"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glBufferData void gl4es_glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) { LOAD_GLES(glBufferData); @@ -80,6 +139,16 @@ void gl4es_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, cons } void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) __attribute__((alias("gl4es_glBufferSubData"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glCheckFramebufferStatus +GLenum gl4es_glCheckFramebufferStatus(GLenum target) { + LOAD_GLES_OES(glCheckFramebufferStatus); +#ifndef direct_glCheckFramebufferStatus + PUSH_IF_COMPILING(glCheckFramebufferStatus) +#endif + return gles_glCheckFramebufferStatus(target); +} +GLenum glCheckFramebufferStatus(GLenum target) __attribute__((alias("gl4es_glCheckFramebufferStatus"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glClear void gl4es_glClear(GLbitfield mask) { LOAD_GLES(glClear); @@ -280,6 +349,26 @@ void gl4es_glDeleteBuffers(GLsizei n, const GLuint * buffers) { } void glDeleteBuffers(GLsizei n, const GLuint * buffers) __attribute__((alias("gl4es_glDeleteBuffers"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glDeleteFramebuffers +void gl4es_glDeleteFramebuffers(GLsizei n, GLuint * framebuffers) { + LOAD_GLES_OES(glDeleteFramebuffers); +#ifndef direct_glDeleteFramebuffers + PUSH_IF_COMPILING(glDeleteFramebuffers) +#endif + gles_glDeleteFramebuffers(n, framebuffers); +} +void glDeleteFramebuffers(GLsizei n, GLuint * framebuffers) __attribute__((alias("gl4es_glDeleteFramebuffers"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glDeleteRenderbuffers +void gl4es_glDeleteRenderbuffers(GLsizei n, GLuint * renderbuffers) { + LOAD_GLES_OES(glDeleteRenderbuffers); +#ifndef direct_glDeleteRenderbuffers + PUSH_IF_COMPILING(glDeleteRenderbuffers) +#endif + gles_glDeleteRenderbuffers(n, renderbuffers); +} +void glDeleteRenderbuffers(GLsizei n, GLuint * renderbuffers) __attribute__((alias("gl4es_glDeleteRenderbuffers"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glDeleteTextures void gl4es_glDeleteTextures(GLsizei n, const GLuint * textures) { LOAD_GLES(glDeleteTextures); @@ -370,6 +459,26 @@ void gl4es_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid } void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) __attribute__((alias("gl4es_glDrawElements"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glDrawTexf +void gl4es_glDrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { + LOAD_GLES_OES(glDrawTexf); +#ifndef direct_glDrawTexf + PUSH_IF_COMPILING(glDrawTexf) +#endif + gles_glDrawTexf(x, y, z, width, height); +} +void glDrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) __attribute__((alias("gl4es_glDrawTexf"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glDrawTexi +void gl4es_glDrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height) { + LOAD_GLES_OES(glDrawTexi); +#ifndef direct_glDrawTexi + PUSH_IF_COMPILING(glDrawTexi) +#endif + gles_glDrawTexi(x, y, z, width, height); +} +void glDrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height) __attribute__((alias("gl4es_glDrawTexi"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glEnable void gl4es_glEnable(GLenum cap) { LOAD_GLES(glEnable); @@ -450,6 +559,26 @@ void gl4es_glFogxv(GLenum pname, const GLfixed * params) { } void glFogxv(GLenum pname, const GLfixed * params) __attribute__((alias("gl4es_glFogxv"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glFramebufferRenderbuffer +void gl4es_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { + LOAD_GLES_OES(glFramebufferRenderbuffer); +#ifndef direct_glFramebufferRenderbuffer + PUSH_IF_COMPILING(glFramebufferRenderbuffer) +#endif + gles_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); +} +void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) __attribute__((alias("gl4es_glFramebufferRenderbuffer"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glFramebufferTexture2D +void gl4es_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { + LOAD_GLES_OES(glFramebufferTexture2D); +#ifndef direct_glFramebufferTexture2D + PUSH_IF_COMPILING(glFramebufferTexture2D) +#endif + gles_glFramebufferTexture2D(target, attachment, textarget, texture, level); +} +void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) __attribute__((alias("gl4es_glFramebufferTexture2D"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glFrontFace void gl4es_glFrontFace(GLenum mode) { LOAD_GLES(glFrontFace); @@ -490,6 +619,26 @@ void gl4es_glGenBuffers(GLsizei n, GLuint * buffers) { } void glGenBuffers(GLsizei n, GLuint * buffers) __attribute__((alias("gl4es_glGenBuffers"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glGenFramebuffers +void gl4es_glGenFramebuffers(GLsizei n, GLuint * ids) { + LOAD_GLES_OES(glGenFramebuffers); +#ifndef direct_glGenFramebuffers + PUSH_IF_COMPILING(glGenFramebuffers) +#endif + gles_glGenFramebuffers(n, ids); +} +void glGenFramebuffers(GLsizei n, GLuint * ids) __attribute__((alias("gl4es_glGenFramebuffers"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glGenRenderbuffers +void gl4es_glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) { + LOAD_GLES_OES(glGenRenderbuffers); +#ifndef direct_glGenRenderbuffers + PUSH_IF_COMPILING(glGenRenderbuffers) +#endif + gles_glGenRenderbuffers(n, renderbuffers); +} +void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) __attribute__((alias("gl4es_glGenRenderbuffers"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glGenTextures void gl4es_glGenTextures(GLsizei n, GLuint * textures) { LOAD_GLES(glGenTextures); @@ -500,6 +649,16 @@ void gl4es_glGenTextures(GLsizei n, GLuint * textures) { } void glGenTextures(GLsizei n, GLuint * textures) __attribute__((alias("gl4es_glGenTextures"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glGenerateMipmap +void gl4es_glGenerateMipmap(GLenum target) { + LOAD_GLES_OES(glGenerateMipmap); +#ifndef direct_glGenerateMipmap + PUSH_IF_COMPILING(glGenerateMipmap) +#endif + gles_glGenerateMipmap(target); +} +void glGenerateMipmap(GLenum target) __attribute__((alias("gl4es_glGenerateMipmap"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glGetBooleanv void gl4es_glGetBooleanv(GLenum pname, GLboolean * params) { LOAD_GLES(glGetBooleanv); @@ -570,6 +729,16 @@ void gl4es_glGetFloatv(GLenum pname, GLfloat * params) { } void glGetFloatv(GLenum pname, GLfloat * params) __attribute__((alias("gl4es_glGetFloatv"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glGetFramebufferAttachmentParameteriv +void gl4es_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) { + LOAD_GLES_OES(glGetFramebufferAttachmentParameteriv); +#ifndef direct_glGetFramebufferAttachmentParameteriv + PUSH_IF_COMPILING(glGetFramebufferAttachmentParameteriv) +#endif + gles_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); +} +void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetFramebufferAttachmentParameteriv"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glGetIntegerv void gl4es_glGetIntegerv(GLenum pname, GLint * params) { LOAD_GLES(glGetIntegerv); @@ -630,6 +799,16 @@ void gl4es_glGetPointerv(GLenum pname, GLvoid ** params) { } void glGetPointerv(GLenum pname, GLvoid ** params) __attribute__((alias("gl4es_glGetPointerv"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glGetRenderbufferParameteriv +void gl4es_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) { + LOAD_GLES_OES(glGetRenderbufferParameteriv); +#ifndef direct_glGetRenderbufferParameteriv + PUSH_IF_COMPILING(glGetRenderbufferParameteriv) +#endif + gles_glGetRenderbufferParameteriv(target, pname, params); +} +void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetRenderbufferParameteriv"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glGetString const GLubyte * gl4es_glGetString(GLenum name) { LOAD_GLES(glGetString); @@ -730,6 +909,26 @@ GLboolean gl4es_glIsEnabled(GLenum cap) { } GLboolean glIsEnabled(GLenum cap) __attribute__((alias("gl4es_glIsEnabled"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glIsFramebuffer +GLboolean gl4es_glIsFramebuffer(GLuint framebuffer) { + LOAD_GLES_OES(glIsFramebuffer); +#ifndef direct_glIsFramebuffer + PUSH_IF_COMPILING(glIsFramebuffer) +#endif + return gles_glIsFramebuffer(framebuffer); +} +GLboolean glIsFramebuffer(GLuint framebuffer) __attribute__((alias("gl4es_glIsFramebuffer"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glIsRenderbuffer +GLboolean gl4es_glIsRenderbuffer(GLuint renderbuffer) { + LOAD_GLES_OES(glIsRenderbuffer); +#ifndef direct_glIsRenderbuffer + PUSH_IF_COMPILING(glIsRenderbuffer) +#endif + return gles_glIsRenderbuffer(renderbuffer); +} +GLboolean glIsRenderbuffer(GLuint renderbuffer) __attribute__((alias("gl4es_glIsRenderbuffer"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glIsTexture GLboolean gl4es_glIsTexture(GLuint texture) { LOAD_GLES(glIsTexture); @@ -950,6 +1149,26 @@ void gl4es_glMultMatrixx(const GLfixed * m) { } void glMultMatrixx(const GLfixed * m) __attribute__((alias("gl4es_glMultMatrixx"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glMultiDrawArrays +void gl4es_glMultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount) { + LOAD_GLES_OES(glMultiDrawArrays); +#ifndef direct_glMultiDrawArrays + PUSH_IF_COMPILING(glMultiDrawArrays) +#endif + gles_glMultiDrawArrays(mode, first, count, primcount); +} +void glMultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount) __attribute__((alias("gl4es_glMultiDrawArrays"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glMultiDrawElements +void gl4es_glMultiDrawElements(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount) { + LOAD_GLES_OES(glMultiDrawElements); +#ifndef direct_glMultiDrawElements + PUSH_IF_COMPILING(glMultiDrawElements) +#endif + gles_glMultiDrawElements(mode, count, type, indices, primcount); +} +void glMultiDrawElements(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount) __attribute__((alias("gl4es_glMultiDrawElements"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glMultiTexCoord4f void gl4es_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { LOAD_GLES(glMultiTexCoord4f); @@ -1150,6 +1369,16 @@ void gl4es_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum } void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) __attribute__((alias("gl4es_glReadPixels"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glRenderbufferStorage +void gl4es_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { + LOAD_GLES_OES(glRenderbufferStorage); +#ifndef direct_glRenderbufferStorage + PUSH_IF_COMPILING(glRenderbufferStorage) +#endif + gles_glRenderbufferStorage(target, internalformat, width, height); +} +void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glRenderbufferStorage"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glRotatef void gl4es_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { LOAD_GLES(glRotatef); @@ -1330,6 +1559,26 @@ void gl4es_glTexEnvxv(GLenum target, GLenum pname, const GLfixed * params) { } void glTexEnvxv(GLenum target, GLenum pname, const GLfixed * params) __attribute__((alias("gl4es_glTexEnvxv"))) __attribute__((visibility("default"))); #endif +#ifndef skip_glTexGenfv +void gl4es_glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) { + LOAD_GLES_OES(glTexGenfv); +#ifndef direct_glTexGenfv + PUSH_IF_COMPILING(glTexGenfv) +#endif + gles_glTexGenfv(coord, pname, params); +} +void glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) __attribute__((alias("gl4es_glTexGenfv"))) __attribute__((visibility("default"))); +#endif +#ifndef skip_glTexGeni +void gl4es_glTexGeni(GLenum coord, GLenum pname, GLint param) { + LOAD_GLES_OES(glTexGeni); +#ifndef direct_glTexGeni + PUSH_IF_COMPILING(glTexGeni) +#endif + gles_glTexGeni(coord, pname, param); +} +void glTexGeni(GLenum coord, GLenum pname, GLint param) __attribute__((alias("gl4es_glTexGeni"))) __attribute__((visibility("default"))); +#endif #ifndef skip_glTexImage2D void gl4es_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) { LOAD_GLES(glTexImage2D); @@ -1476,12 +1725,24 @@ void glPackedCall(const packed_call_t *packed) { 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; @@ -1494,18 +1755,18 @@ void glPackedCall(const packed_call_t *packed) { 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_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; @@ -1602,6 +1863,12 @@ void glPackedCall(const packed_call_t *packed) { unpacked->func(args.a1, args.a2); 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_GLboolean: { PACKED_void_GLboolean *unpacked = (PACKED_void_GLboolean *)packed; ARGS_void_GLboolean args = unpacked->args; @@ -1632,6 +1899,18 @@ void glPackedCall(const packed_call_t *packed) { unpacked->func(args.a1, args.a2, args.a3, args.a4); break; } + case FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat: { + PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *unpacked = (PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *)packed; + ARGS_void_GLfloat_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: { PACKED_void *unpacked = (PACKED_void *)packed; unpacked->func(); @@ -1649,6 +1928,18 @@ void glPackedCall(const packed_call_t *packed) { unpacked->func(args.a1, args.a2); 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_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; @@ -1661,12 +1952,6 @@ void glPackedCall(const packed_call_t *packed) { 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; @@ -1696,6 +1981,12 @@ void glPackedCall(const packed_call_t *packed) { unpacked->func(); 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; @@ -1786,6 +2077,18 @@ void glPackedCall(const packed_call_t *packed) { unpacked->func(args.a1); break; } + case FORMAT_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei: { + PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei *unpacked = (PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei *)packed; + ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei args = unpacked->args; + unpacked->func(args.a1, args.a2, args.a3, args.a4); + break; + } + case FORMAT_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei: { + PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei *unpacked = (PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei *)packed; + ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei args = unpacked->args; + unpacked->func(args.a1, args.a2, args.a3, args.a4, args.a5); + 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; @@ -1840,6 +2143,12 @@ void glPackedCall(const packed_call_t *packed) { 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; @@ -1933,6 +2242,13 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf: { + int sizeofpacked = sizeof(PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf); + PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *newpacked = (PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLenum_GLenum: { int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum); PACKED_void_GLenum_GLenum *newpacked = (PACKED_void_GLenum_GLenum*)malloc(sizeofpacked); @@ -1940,6 +2256,13 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLenum_GLenum_GLenum_GLenum: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum_GLenum_GLenum); + PACKED_void_GLenum_GLenum_GLenum_GLenum *newpacked = (PACKED_void_GLenum_GLenum_GLenum_GLenum*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum: { int sizeofpacked = sizeof(PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum); PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum *newpacked = (PACKED_void_GLenum_GLsizeiptr_const_GLvoid___GENPT___GLenum*)malloc(sizeofpacked); @@ -1954,16 +2277,16 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } - case FORMAT_void_GLbitfield: { - int sizeofpacked = sizeof(PACKED_void_GLbitfield); - PACKED_void_GLbitfield *newpacked = (PACKED_void_GLbitfield*)malloc(sizeofpacked); + case FORMAT_GLenum_GLenum: { + int sizeofpacked = sizeof(PACKED_GLenum_GLenum); + PACKED_GLenum_GLenum *newpacked = (PACKED_GLenum_GLenum*)malloc(sizeofpacked); memcpy(newpacked, packed, sizeofpacked); return (packed_call_t*)newpacked; break; } - case FORMAT_void_GLclampf_GLclampf_GLclampf_GLclampf: { - int sizeofpacked = sizeof(PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf); - PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf *newpacked = (PACKED_void_GLclampf_GLclampf_GLclampf_GLclampf*)malloc(sizeofpacked); + case FORMAT_void_GLbitfield: { + int sizeofpacked = sizeof(PACKED_void_GLbitfield); + PACKED_void_GLbitfield *newpacked = (PACKED_void_GLbitfield*)malloc(sizeofpacked); memcpy(newpacked, packed, sizeofpacked); return (packed_call_t*)newpacked; break; @@ -2080,6 +2403,13 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLsizei_GLuint___GENPT__: { + int sizeofpacked = sizeof(PACKED_void_GLsizei_GLuint___GENPT__); + PACKED_void_GLsizei_GLuint___GENPT__ *newpacked = (PACKED_void_GLsizei_GLuint___GENPT__*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLboolean: { int sizeofpacked = sizeof(PACKED_void_GLboolean); PACKED_void_GLboolean *newpacked = (PACKED_void_GLboolean*)malloc(sizeofpacked); @@ -2115,6 +2445,20 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat: { + int sizeofpacked = sizeof(PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat); + PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *newpacked = (PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } + case FORMAT_void_GLint_GLint_GLint_GLint_GLint: { + int sizeofpacked = sizeof(PACKED_void_GLint_GLint_GLint_GLint_GLint); + PACKED_void_GLint_GLint_GLint_GLint_GLint *newpacked = (PACKED_void_GLint_GLint_GLint_GLint_GLint*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void: { int sizeofpacked = sizeof(PACKED_void); PACKED_void *newpacked = (PACKED_void*)malloc(sizeofpacked); @@ -2136,6 +2480,20 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLenum_GLenum_GLenum_GLuint: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum_GLenum_GLuint); + PACKED_void_GLenum_GLenum_GLenum_GLuint *newpacked = (PACKED_void_GLenum_GLenum_GLenum_GLuint*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } + case FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint); + PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint *newpacked = (PACKED_void_GLenum_GLenum_GLenum_GLuint_GLint*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat: { int sizeofpacked = sizeof(PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat); PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat *newpacked = (PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat*)malloc(sizeofpacked); @@ -2150,13 +2508,6 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } - case FORMAT_void_GLsizei_GLuint___GENPT__: { - int sizeofpacked = sizeof(PACKED_void_GLsizei_GLuint___GENPT__); - PACKED_void_GLsizei_GLuint___GENPT__ *newpacked = (PACKED_void_GLsizei_GLuint___GENPT__*)malloc(sizeofpacked); - memcpy(newpacked, packed, sizeofpacked); - return (packed_call_t*)newpacked; - break; - } case FORMAT_void_GLenum_GLboolean___GENPT__: { int sizeofpacked = sizeof(PACKED_void_GLenum_GLboolean___GENPT__); PACKED_void_GLenum_GLboolean___GENPT__ *newpacked = (PACKED_void_GLenum_GLboolean___GENPT__*)malloc(sizeofpacked); @@ -2192,6 +2543,13 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__); + PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__ *newpacked = (PACKED_void_GLenum_GLenum_GLenum_GLint___GENPT__*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLenum_GLint___GENPT__: { int sizeofpacked = sizeof(PACKED_void_GLenum_GLint___GENPT__); PACKED_void_GLenum_GLint___GENPT__ *newpacked = (PACKED_void_GLenum_GLint___GENPT__*)malloc(sizeofpacked); @@ -2297,6 +2655,20 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei: { + int sizeofpacked = sizeof(PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei); + PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei *newpacked = (PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } + case FORMAT_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei); + PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei *newpacked = (PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat: { int sizeofpacked = sizeof(PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat); PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat *newpacked = (PACKED_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat*)malloc(sizeofpacked); @@ -2360,6 +2732,13 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { return (packed_call_t*)newpacked; break; } + case FORMAT_void_GLenum_GLenum_GLsizei_GLsizei: { + int sizeofpacked = sizeof(PACKED_void_GLenum_GLenum_GLsizei_GLsizei); + PACKED_void_GLenum_GLenum_GLsizei_GLsizei *newpacked = (PACKED_void_GLenum_GLenum_GLsizei_GLsizei*)malloc(sizeofpacked); + memcpy(newpacked, packed, sizeofpacked); + return (packed_call_t*)newpacked; + break; + } case FORMAT_void_GLclampf_GLboolean: { int sizeofpacked = sizeof(PACKED_void_GLclampf_GLboolean); PACKED_void_GLclampf_GLboolean *newpacked = (PACKED_void_GLclampf_GLboolean*)malloc(sizeofpacked); @@ -2432,5 +2811,3 @@ packed_call_t* glCopyPackedCall(const packed_call_t *packed) { } } }*/ - -#endif diff --git a/project/jni/gl4es/src/gl/wrap/gles.h b/project/jni/gl4es/src/gl/wrap/gles.h old mode 100755 new mode 100644 index b15aca615..e1306a6ff --- a/project/jni/gl4es/src/gl/wrap/gles.h +++ b/project/jni/gl4es/src/gl/wrap/gles.h @@ -1,4 +1,3 @@ -#ifndef USE_ES2 #include "../gl.h" #ifndef GLESWRAP_H @@ -20,11 +19,13 @@ enum FORMAT { FORMAT_void_GLenum_GLclampf, FORMAT_void_GLenum_GLclampx, 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_GLclampf_GLclampf_GLclampf, FORMAT_void_GLclampx_GLclampx_GLclampx_GLclampx, FORMAT_void_GLclampf, FORMAT_void_GLclampx, @@ -41,22 +42,27 @@ enum FORMAT { FORMAT_void_GLenum_GLint_GLenum_GLint_GLint_GLsizei_GLsizei_GLint, FORMAT_void_GLenum_GLint_GLint_GLint_GLint_GLint_GLsizei_GLsizei, FORMAT_void_GLsizei_const_GLuint___GENPT__, + FORMAT_void_GLsizei_GLuint___GENPT__, FORMAT_void_GLboolean, FORMAT_void_GLclampf_GLclampf, FORMAT_void_GLclampx_GLclampx, FORMAT_void_GLenum_GLint_GLsizei, FORMAT_void_GLenum_GLsizei_GLenum_const_GLvoid___GENPT__, + FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat, + FORMAT_void_GLint_GLint_GLint_GLint_GLint, FORMAT_void, FORMAT_void_GLenum_GLfloat, FORMAT_void_GLenum_GLfixed, + FORMAT_void_GLenum_GLenum_GLenum_GLuint, + FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint, FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat, FORMAT_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed, - FORMAT_void_GLsizei_GLuint___GENPT__, FORMAT_void_GLenum_GLboolean___GENPT__, FORMAT_void_GLenum_GLenum_GLint___GENPT__, FORMAT_void_GLenum_GLfloat___GENPT__, FORMAT_void_GLenum_GLfixed___GENPT__, FORMAT_GLenum, + FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__, FORMAT_void_GLenum_GLint___GENPT__, FORMAT_void_GLenum_GLenum_GLfloat___GENPT__, FORMAT_void_GLenum_GLenum_GLfixed___GENPT__, @@ -72,6 +78,8 @@ enum FORMAT { FORMAT_void_GLfixed, FORMAT_void_const_GLfloat___GENPT__, FORMAT_void_const_GLfixed___GENPT__, + FORMAT_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei, + FORMAT_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei, FORMAT_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat, FORMAT_void_GLenum_GLfixed_GLfixed_GLfixed_GLfixed, FORMAT_void_GLfloat_GLfloat_GLfloat, @@ -81,6 +89,7 @@ enum FORMAT { FORMAT_void_GLfloat_GLfloat, FORMAT_void_GLfixed_GLfixed, FORMAT_void_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_GLvoid___GENPT__, + FORMAT_void_GLenum_GLenum_GLsizei_GLsizei, FORMAT_void_GLclampf_GLboolean, FORMAT_void_GLclampx_GLboolean, FORMAT_void_GLint_GLint_GLsizei_GLsizei, @@ -91,16 +100,6 @@ enum FORMAT { FORMAT_void_GLenum_GLenum_const_GLint___GENPT__, FORMAT_void_GLenum_GLint_GLint_GLsizei_GLsizei_GLint_GLenum_GLenum_const_GLvoid___GENPT__, FORMAT_void_GLenum_GLint_GLint_GLint_GLsizei_GLsizei_GLenum_GLenum_const_GLvoid___GENPT__, - FORMAT_void_GLenum_GLenum_GLenum_GLenum, - FORMAT_GLenum_GLenum, - FORMAT_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat, - FORMAT_void_GLint_GLint_GLint_GLint_GLint, - FORMAT_void_GLenum_GLenum_GLenum_GLuint, - FORMAT_void_GLenum_GLenum_GLenum_GLuint_GLint, - FORMAT_void_GLenum_GLenum_GLenum_GLint___GENPT__, - FORMAT_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei, - FORMAT_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei, - FORMAT_void_GLenum_GLenum_GLsizei_GLsizei, }; typedef void (*FUNC_void_GLenum)(GLenum texture); @@ -158,7 +157,23 @@ typedef struct { int func; ARGS_void_GLenum_GLuint args; } INDEXED_void_GLenum_GLuint; -typedef void (*FUNC_void_GLenum_GLenum)(GLenum sfactor, GLenum dfactor); +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; + 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; @@ -172,6 +187,22 @@ 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; + 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; @@ -204,6 +235,19 @@ 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; + 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; @@ -217,22 +261,6 @@ typedef struct { int func; ARGS_void_GLbitfield args; } INDEXED_void_GLbitfield; -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; - 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_GLclampx_GLclampx_GLclampx_GLclampx)(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); typedef struct { GLclampx a1; @@ -491,6 +519,20 @@ typedef struct { int func; ARGS_void_GLsizei_const_GLuint___GENPT__ args; } INDEXED_void_GLsizei_const_GLuint___GENPT__; +typedef void (*FUNC_void_GLsizei_GLuint___GENPT__)(GLsizei n, GLuint * framebuffers); +typedef struct { + GLsizei a1; + GLuint * a2; +} ARGS_void_GLsizei_GLuint___GENPT__; +typedef struct { + int format; + FUNC_void_GLsizei_GLuint___GENPT__ func; + 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_GLboolean)(GLboolean flag); typedef struct { GLboolean a1; @@ -563,6 +605,40 @@ 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_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); +typedef struct { + GLfloat a1; + GLfloat a2; + GLfloat a3; + GLfloat a4; + GLfloat a5; +} ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; +typedef struct { + int format; + FUNC_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat func; + ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args; +} PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; +typedef struct { + int func; + ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args; +} INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; +typedef void (*FUNC_void_GLint_GLint_GLint_GLint_GLint)(GLint x, GLint y, GLint z, GLint width, GLint height); +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; + 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)(); typedef struct { int format; @@ -599,6 +675,39 @@ typedef struct { int func; ARGS_void_GLenum_GLfixed args; } INDEXED_void_GLenum_GLfixed; +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; + 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; + 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_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far); typedef struct { GLfloat a1; @@ -635,20 +744,6 @@ typedef struct { int func; ARGS_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed args; } INDEXED_void_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed_GLfixed; -typedef void (*FUNC_void_GLsizei_GLuint___GENPT__)(GLsizei n, GLuint * buffers); -typedef struct { - GLsizei a1; - GLuint * a2; -} ARGS_void_GLsizei_GLuint___GENPT__; -typedef struct { - int format; - FUNC_void_GLsizei_GLuint___GENPT__ func; - 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_GLenum_GLboolean___GENPT__)(GLenum pname, GLboolean * params); typedef struct { GLenum a1; @@ -714,6 +809,22 @@ typedef struct { typedef struct { int func; } INDEXED_GLenum; +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; + 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; @@ -923,6 +1034,39 @@ typedef struct { int func; ARGS_void_const_GLfixed___GENPT__ args; } INDEXED_void_const_GLfixed___GENPT__; +typedef void (*FUNC_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); +typedef struct { + GLenum a1; + GLint * a2; + GLsizei * a3; + GLsizei a4; +} ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; +typedef struct { + int format; + FUNC_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei func; + ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei args; +} PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; +typedef struct { + int func; + ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei args; +} INDEXED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; +typedef void (*FUNC_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei)(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount); +typedef struct { + GLenum a1; + GLsizei * a2; + GLenum a3; + const void * const * a4; + GLsizei a5; +} ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; +typedef struct { + int format; + FUNC_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei func; + ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei args; +} PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; +typedef struct { + int func; + ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei args; +} INDEXED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; typedef void (*FUNC_void_GLenum_GLfloat_GLfloat_GLfloat_GLfloat)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef struct { GLenum a1; @@ -1063,6 +1207,22 @@ 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; + 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; @@ -1222,167 +1382,6 @@ 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_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; - 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 GLenum (*FUNC_GLenum_GLenum)(GLenum target); -typedef struct { - GLenum a1; -} ARGS_GLenum_GLenum; -typedef struct { - int format; - FUNC_GLenum_GLenum func; - ARGS_GLenum_GLenum args; -} PACKED_GLenum_GLenum; -typedef struct { - int func; - ARGS_GLenum_GLenum args; -} INDEXED_GLenum_GLenum; -typedef void (*FUNC_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); -typedef struct { - GLfloat a1; - GLfloat a2; - GLfloat a3; - GLfloat a4; - GLfloat a5; -} ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; -typedef struct { - int format; - FUNC_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat func; - ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args; -} PACKED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; -typedef struct { - int func; - ARGS_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat args; -} INDEXED_void_GLfloat_GLfloat_GLfloat_GLfloat_GLfloat; -typedef void (*FUNC_void_GLint_GLint_GLint_GLint_GLint)(GLint x, GLint y, GLint z, GLint width, GLint height); -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; - 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_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; - 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; - 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_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; - 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_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); -typedef struct { - GLenum a1; - GLint * a2; - GLsizei * a3; - GLsizei a4; -} ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; -typedef struct { - int format; - FUNC_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei func; - ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei args; -} PACKED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; -typedef struct { - int func; - ARGS_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei args; -} INDEXED_void_GLenum_const_GLint___GENPT___const_GLsizei___GENPT___GLsizei; -typedef void (*FUNC_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei)(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount); -typedef struct { - GLenum a1; - GLsizei * a2; - GLenum a3; - void * * a4; - GLsizei a5; -} ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; -typedef struct { - int format; - FUNC_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei func; - ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei args; -} PACKED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; -typedef struct { - int func; - ARGS_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei args; -} INDEXED_void_GLenum_GLsizei___GENPT___GLenum_const_void___GENPT___const___GENPT___GLsizei; -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; - 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; extern void glPushCall(void *data); void glPackedCall(const packed_call_t *packed); @@ -4744,5 +4743,3 @@ typedef void (*glViewport_PTR)(glViewport_ARG_EXPAND); } #endif #endif - -#endif diff --git a/project/jni/gl4es/src/gl/wrap/gles2.c b/project/jni/gl4es/src/gl/wrap/gles2.c deleted file mode 100755 index 2ece64651..000000000 --- a/project/jni/gl4es/src/gl/wrap/gles2.c +++ /dev/null @@ -1,1934 +0,0 @@ -#ifdef USE_ES2 -#include "gles2.h" -#ifndef skip_glActiveTexture -void gl4es_glActiveTexture(GLenum texture) { - LOAD_GLES(glActiveTexture); -#ifndef direct_glActiveTexture - PUSH_IF_COMPILING(glActiveTexture) -#endif - gles_glActiveTexture(texture); -} -void glActiveTexture(GLenum texture) __attribute__((alias("gl4es_glActiveTexture"))); -#endif -#ifndef skip_glAttachShader -void gl4es_glAttachShader(GLuint program, GLuint shader) { - LOAD_GLES(glAttachShader); -#ifndef direct_glAttachShader - PUSH_IF_COMPILING(glAttachShader) -#endif - gles_glAttachShader(program, shader); -} -void glAttachShader(GLuint program, GLuint shader) __attribute__((alias("gl4es_glAttachShader"))); -#endif -#ifndef skip_glBindAttribLocation -void gl4es_glBindAttribLocation(GLuint program, GLuint index, const GLchar * name) { - LOAD_GLES(glBindAttribLocation); -#ifndef direct_glBindAttribLocation - PUSH_IF_COMPILING(glBindAttribLocation) -#endif - gles_glBindAttribLocation(program, index, name); -} -void glBindAttribLocation(GLuint program, GLuint index, const GLchar * name) __attribute__((alias("gl4es_glBindAttribLocation"))); -#endif -#ifndef skip_glBindBuffer -void gl4es_glBindBuffer(GLenum target, GLuint buffer) { - LOAD_GLES(glBindBuffer); -#ifndef direct_glBindBuffer - PUSH_IF_COMPILING(glBindBuffer) -#endif - gles_glBindBuffer(target, buffer); -} -void glBindBuffer(GLenum target, GLuint buffer) __attribute__((alias("gl4es_glBindBuffer"))); -#endif -#ifndef skip_glBindFramebuffer -void gl4es_glBindFramebuffer(GLenum target, GLuint framebuffer) { - LOAD_GLES(glBindFramebuffer); -#ifndef direct_glBindFramebuffer - PUSH_IF_COMPILING(glBindFramebuffer) -#endif - gles_glBindFramebuffer(target, framebuffer); -} -void glBindFramebuffer(GLenum target, GLuint framebuffer) __attribute__((alias("gl4es_glBindFramebuffer"))); -#endif -#ifndef skip_glBindRenderbuffer -void gl4es_glBindRenderbuffer(GLenum target, GLuint renderbuffer) { - LOAD_GLES(glBindRenderbuffer); -#ifndef direct_glBindRenderbuffer - PUSH_IF_COMPILING(glBindRenderbuffer) -#endif - gles_glBindRenderbuffer(target, renderbuffer); -} -void glBindRenderbuffer(GLenum target, GLuint renderbuffer) __attribute__((alias("gl4es_glBindRenderbuffer"))); -#endif -#ifndef skip_glBindTexture -void gl4es_glBindTexture(GLenum target, GLuint texture) { - LOAD_GLES(glBindTexture); -#ifndef direct_glBindTexture - PUSH_IF_COMPILING(glBindTexture) -#endif - gles_glBindTexture(target, texture); -} -void glBindTexture(GLenum target, GLuint texture) __attribute__((alias("gl4es_glBindTexture"))); -#endif -#ifndef skip_glBlendColor -void gl4es_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); -} -void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) __attribute__((alias("gl4es_glBlendColor"))); -#endif -#ifndef skip_glBlendEquation -void gl4es_glBlendEquation(GLenum mode) { - LOAD_GLES(glBlendEquation); -#ifndef direct_glBlendEquation - PUSH_IF_COMPILING(glBlendEquation) -#endif - gles_glBlendEquation(mode); -} -void glBlendEquation(GLenum mode) __attribute__((alias("gl4es_glBlendEquation"))); -#endif -#ifndef skip_glBlendEquationSeparate -void gl4es_glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) { - LOAD_GLES(glBlendEquationSeparate); -#ifndef direct_glBlendEquationSeparate - PUSH_IF_COMPILING(glBlendEquationSeparate) -#endif - gles_glBlendEquationSeparate(modeRGB, modeA); -} -void glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) __attribute__((alias("gl4es_glBlendEquationSeparate"))); -#endif -#ifndef skip_glBlendFunc -void gl4es_glBlendFunc(GLenum sfactor, GLenum dfactor) { - LOAD_GLES(glBlendFunc); -#ifndef direct_glBlendFunc - PUSH_IF_COMPILING(glBlendFunc) -#endif - gles_glBlendFunc(sfactor, dfactor); -} -void glBlendFunc(GLenum sfactor, GLenum dfactor) __attribute__((alias("gl4es_glBlendFunc"))); -#endif -#ifndef skip_glBlendFuncSeparate -void gl4es_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); -} -void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) __attribute__((alias("gl4es_glBlendFuncSeparate"))); -#endif -#ifndef skip_glBufferData -void gl4es_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); -} -void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage) __attribute__((alias("gl4es_glBufferData"))); -#endif -#ifndef skip_glBufferSubData -void gl4es_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); -} -void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data) __attribute__((alias("gl4es_glBufferSubData"))); -#endif -#ifndef skip_glCheckFramebufferStatus -GLenum gl4es_glCheckFramebufferStatus(GLenum target) { - LOAD_GLES(glCheckFramebufferStatus); -#ifndef direct_glCheckFramebufferStatus - PUSH_IF_COMPILING(glCheckFramebufferStatus) -#endif - return gles_glCheckFramebufferStatus(target); -} -GLenum glCheckFramebufferStatus(GLenum target) __attribute__((alias("gl4es_glCheckFramebufferStatus"))); -#endif -#ifndef skip_glClear -void gl4es_glClear(GLbitfield mask) { - LOAD_GLES(glClear); -#ifndef direct_glClear - PUSH_IF_COMPILING(glClear) -#endif - gles_glClear(mask); -} -void glClear(GLbitfield mask) __attribute__((alias("gl4es_glClear"))); -#endif -#ifndef skip_glClearColor -void gl4es_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); -} -void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) __attribute__((alias("gl4es_glClearColor"))); -#endif -#ifndef skip_glClearDepthf -void gl4es_glClearDepthf(GLclampf depth) { - LOAD_GLES(glClearDepthf); -#ifndef direct_glClearDepthf - PUSH_IF_COMPILING(glClearDepthf) -#endif - gles_glClearDepthf(depth); -} -void glClearDepthf(GLclampf depth) __attribute__((alias("gl4es_glClearDepthf"))); -#endif -#ifndef skip_glClearStencil -void gl4es_glClearStencil(GLint s) { - LOAD_GLES(glClearStencil); -#ifndef direct_glClearStencil - PUSH_IF_COMPILING(glClearStencil) -#endif - gles_glClearStencil(s); -} -void glClearStencil(GLint s) __attribute__((alias("gl4es_glClearStencil"))); -#endif -#ifndef skip_glColorMask -void gl4es_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); -} -void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) __attribute__((alias("gl4es_glColorMask"))); -#endif -#ifndef skip_glCompileShader -void gl4es_glCompileShader(GLuint shader) { - LOAD_GLES(glCompileShader); -#ifndef direct_glCompileShader - PUSH_IF_COMPILING(glCompileShader) -#endif - gles_glCompileShader(shader); -} -void glCompileShader(GLuint shader) __attribute__((alias("gl4es_glCompileShader"))); -#endif -#ifndef skip_glCompressedTexImage2D -void gl4es_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); -} -void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data) __attribute__((alias("gl4es_glCompressedTexImage2D"))); -#endif -#ifndef skip_glCompressedTexSubImage2D -void gl4es_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); -} -void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data) __attribute__((alias("gl4es_glCompressedTexSubImage2D"))); -#endif -#ifndef skip_glCopyTexImage2D -void gl4es_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); -} -void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) __attribute__((alias("gl4es_glCopyTexImage2D"))); -#endif -#ifndef skip_glCopyTexSubImage2D -void gl4es_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); -} -void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glCopyTexSubImage2D"))); -#endif -#ifndef skip_glCreateProgram -GLuint gl4es_glCreateProgram() { - LOAD_GLES(glCreateProgram); -#ifndef direct_glCreateProgram - PUSH_IF_COMPILING(glCreateProgram) -#endif - return gles_glCreateProgram(); -} -GLuint glCreateProgram() __attribute__((alias("gl4es_glCreateProgram"))); -#endif -#ifndef skip_glCreateShader -GLuint gl4es_glCreateShader(GLenum type) { - LOAD_GLES(glCreateShader); -#ifndef direct_glCreateShader - PUSH_IF_COMPILING(glCreateShader) -#endif - return gles_glCreateShader(type); -} -GLuint glCreateShader(GLenum type) __attribute__((alias("gl4es_glCreateShader"))); -#endif -#ifndef skip_glCullFace -void gl4es_glCullFace(GLenum mode) { - LOAD_GLES(glCullFace); -#ifndef direct_glCullFace - PUSH_IF_COMPILING(glCullFace) -#endif - gles_glCullFace(mode); -} -void glCullFace(GLenum mode) __attribute__((alias("gl4es_glCullFace"))); -#endif -#ifndef skip_glDeleteBuffers -void gl4es_glDeleteBuffers(GLsizei n, const GLuint * buffer) { - LOAD_GLES(glDeleteBuffers); -#ifndef direct_glDeleteBuffers - PUSH_IF_COMPILING(glDeleteBuffers) -#endif - gles_glDeleteBuffers(n, buffer); -} -void glDeleteBuffers(GLsizei n, const GLuint * buffer) __attribute__((alias("gl4es_glDeleteBuffers"))); -#endif -#ifndef skip_glDeleteFramebuffers -void gl4es_glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) { - LOAD_GLES(glDeleteFramebuffers); -#ifndef direct_glDeleteFramebuffers - PUSH_IF_COMPILING(glDeleteFramebuffers) -#endif - gles_glDeleteFramebuffers(n, framebuffers); -} -void glDeleteFramebuffers(GLsizei n, const GLuint * framebuffers) __attribute__((alias("gl4es_glDeleteFramebuffers"))); -#endif -#ifndef skip_glDeleteProgram -void gl4es_glDeleteProgram(GLuint program) { - LOAD_GLES(glDeleteProgram); -#ifndef direct_glDeleteProgram - PUSH_IF_COMPILING(glDeleteProgram) -#endif - gles_glDeleteProgram(program); -} -void glDeleteProgram(GLuint program) __attribute__((alias("gl4es_glDeleteProgram"))); -#endif -#ifndef skip_glDeleteRenderbuffers -void gl4es_glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) { - LOAD_GLES(glDeleteRenderbuffers); -#ifndef direct_glDeleteRenderbuffers - PUSH_IF_COMPILING(glDeleteRenderbuffers) -#endif - gles_glDeleteRenderbuffers(n, renderbuffers); -} -void glDeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers) __attribute__((alias("gl4es_glDeleteRenderbuffers"))); -#endif -#ifndef skip_glDeleteShader -void gl4es_glDeleteShader(GLuint program) { - LOAD_GLES(glDeleteShader); -#ifndef direct_glDeleteShader - PUSH_IF_COMPILING(glDeleteShader) -#endif - gles_glDeleteShader(program); -} -void glDeleteShader(GLuint program) __attribute__((alias("gl4es_glDeleteShader"))); -#endif -#ifndef skip_glDeleteTextures -void gl4es_glDeleteTextures(GLsizei n, const GLuint * textures) { - LOAD_GLES(glDeleteTextures); -#ifndef direct_glDeleteTextures - PUSH_IF_COMPILING(glDeleteTextures) -#endif - gles_glDeleteTextures(n, textures); -} -void glDeleteTextures(GLsizei n, const GLuint * textures) __attribute__((alias("gl4es_glDeleteTextures"))); -#endif -#ifndef skip_glDepthFunc -void gl4es_glDepthFunc(GLenum func) { - LOAD_GLES(glDepthFunc); -#ifndef direct_glDepthFunc - PUSH_IF_COMPILING(glDepthFunc) -#endif - gles_glDepthFunc(func); -} -void glDepthFunc(GLenum func) __attribute__((alias("gl4es_glDepthFunc"))); -#endif -#ifndef skip_glDepthMask -void gl4es_glDepthMask(GLboolean flag) { - LOAD_GLES(glDepthMask); -#ifndef direct_glDepthMask - PUSH_IF_COMPILING(glDepthMask) -#endif - gles_glDepthMask(flag); -} -void glDepthMask(GLboolean flag) __attribute__((alias("gl4es_glDepthMask"))); -#endif -#ifndef skip_glDepthRangef -void gl4es_glDepthRangef(GLclampf zNear, GLclampf zFar) { - LOAD_GLES(glDepthRangef); -#ifndef direct_glDepthRangef - PUSH_IF_COMPILING(glDepthRangef) -#endif - gles_glDepthRangef(zNear, zFar); -} -void glDepthRangef(GLclampf zNear, GLclampf zFar) __attribute__((alias("gl4es_glDepthRangef"))); -#endif -#ifndef skip_glDetachShader -void gl4es_glDetachShader(GLuint program, GLuint shader) { - LOAD_GLES(glDetachShader); -#ifndef direct_glDetachShader - PUSH_IF_COMPILING(glDetachShader) -#endif - gles_glDetachShader(program, shader); -} -void glDetachShader(GLuint program, GLuint shader) __attribute__((alias("gl4es_glDetachShader"))); -#endif -#ifndef skip_glDisable -void gl4es_glDisable(GLenum cap) { - LOAD_GLES(glDisable); -#ifndef direct_glDisable - PUSH_IF_COMPILING(glDisable) -#endif - gles_glDisable(cap); -} -void glDisable(GLenum cap) __attribute__((alias("gl4es_glDisable"))); -#endif -#ifndef skip_glDisableVertexAttribArray -void gl4es_glDisableVertexAttribArray(GLuint index) { - LOAD_GLES(glDisableVertexAttribArray); -#ifndef direct_glDisableVertexAttribArray - PUSH_IF_COMPILING(glDisableVertexAttribArray) -#endif - gles_glDisableVertexAttribArray(index); -} -void glDisableVertexAttribArray(GLuint index) __attribute__((alias("gl4es_glDisableVertexAttribArray"))); -#endif -#ifndef skip_glDrawArrays -void gl4es_glDrawArrays(GLenum mode, GLint first, GLsizei count) { - LOAD_GLES(glDrawArrays); -#ifndef direct_glDrawArrays - PUSH_IF_COMPILING(glDrawArrays) -#endif - gles_glDrawArrays(mode, first, count); -} -void glDrawArrays(GLenum mode, GLint first, GLsizei count) __attribute__((alias("gl4es_glDrawArrays"))); -#endif -#ifndef skip_glDrawElements -void gl4es_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); -} -void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices) __attribute__((alias("gl4es_glDrawElements"))); -#endif -#ifndef skip_glEnable -void gl4es_glEnable(GLenum cap) { - LOAD_GLES(glEnable); -#ifndef direct_glEnable - PUSH_IF_COMPILING(glEnable) -#endif - gles_glEnable(cap); -} -void glEnable(GLenum cap) __attribute__((alias("gl4es_glEnable"))); -#endif -#ifndef skip_glEnableVertexAttribArray -void gl4es_glEnableVertexAttribArray(GLuint index) { - LOAD_GLES(glEnableVertexAttribArray); -#ifndef direct_glEnableVertexAttribArray - PUSH_IF_COMPILING(glEnableVertexAttribArray) -#endif - gles_glEnableVertexAttribArray(index); -} -void glEnableVertexAttribArray(GLuint index) __attribute__((alias("gl4es_glEnableVertexAttribArray"))); -#endif -#ifndef skip_glFinish -void gl4es_glFinish() { - LOAD_GLES(glFinish); -#ifndef direct_glFinish - PUSH_IF_COMPILING(glFinish) -#endif - gles_glFinish(); -} -void glFinish() __attribute__((alias("gl4es_glFinish"))); -#endif -#ifndef skip_glFlush -void gl4es_glFlush() { - LOAD_GLES(glFlush); -#ifndef direct_glFlush - PUSH_IF_COMPILING(glFlush) -#endif - gles_glFlush(); -} -void glFlush() __attribute__((alias("gl4es_glFlush"))); -#endif -#ifndef skip_glFramebufferRenderbuffer -void gl4es_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); -} -void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) __attribute__((alias("gl4es_glFramebufferRenderbuffer"))); -#endif -#ifndef skip_glFramebufferTexture2D -void gl4es_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); -} -void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) __attribute__((alias("gl4es_glFramebufferTexture2D"))); -#endif -#ifndef skip_glFrontFace -void gl4es_glFrontFace(GLenum mode) { - LOAD_GLES(glFrontFace); -#ifndef direct_glFrontFace - PUSH_IF_COMPILING(glFrontFace) -#endif - gles_glFrontFace(mode); -} -void glFrontFace(GLenum mode) __attribute__((alias("gl4es_glFrontFace"))); -#endif -#ifndef skip_glGenBuffers -void gl4es_glGenBuffers(GLsizei n, GLuint * buffer) { - LOAD_GLES(glGenBuffers); -#ifndef direct_glGenBuffers - PUSH_IF_COMPILING(glGenBuffers) -#endif - gles_glGenBuffers(n, buffer); -} -void glGenBuffers(GLsizei n, GLuint * buffer) __attribute__((alias("gl4es_glGenBuffers"))); -#endif -#ifndef skip_glGenFramebuffers -void gl4es_glGenFramebuffers(GLsizei n, GLuint * framebuffers) { - LOAD_GLES(glGenFramebuffers); -#ifndef direct_glGenFramebuffers - PUSH_IF_COMPILING(glGenFramebuffers) -#endif - gles_glGenFramebuffers(n, framebuffers); -} -void glGenFramebuffers(GLsizei n, GLuint * framebuffers) __attribute__((alias("gl4es_glGenFramebuffers"))); -#endif -#ifndef skip_glGenRenderbuffers -void gl4es_glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) { - LOAD_GLES(glGenRenderbuffers); -#ifndef direct_glGenRenderbuffers - PUSH_IF_COMPILING(glGenRenderbuffers) -#endif - gles_glGenRenderbuffers(n, renderbuffers); -} -void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) __attribute__((alias("gl4es_glGenRenderbuffers"))); -#endif -#ifndef skip_glGenTextures -void gl4es_glGenTextures(GLsizei n, GLuint * textures) { - LOAD_GLES(glGenTextures); -#ifndef direct_glGenTextures - PUSH_IF_COMPILING(glGenTextures) -#endif - gles_glGenTextures(n, textures); -} -void glGenTextures(GLsizei n, GLuint * textures) __attribute__((alias("gl4es_glGenTextures"))); -#endif -#ifndef skip_glGenerateMipmap -void gl4es_glGenerateMipmap(GLenum target) { - LOAD_GLES(glGenerateMipmap); -#ifndef direct_glGenerateMipmap - PUSH_IF_COMPILING(glGenerateMipmap) -#endif - gles_glGenerateMipmap(target); -} -void glGenerateMipmap(GLenum target) __attribute__((alias("gl4es_glGenerateMipmap"))); -#endif -#ifndef skip_glGetActiveAttrib -void gl4es_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); -} -void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) __attribute__((alias("gl4es_glGetActiveAttrib"))); -#endif -#ifndef skip_glGetActiveUniform -void gl4es_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); -} -void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) __attribute__((alias("gl4es_glGetActiveUniform"))); -#endif -#ifndef skip_glGetAttachedShaders -void gl4es_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); -} -void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj) __attribute__((alias("gl4es_glGetAttachedShaders"))); -#endif -#ifndef skip_glGetAttribLocation -GLint gl4es_glGetAttribLocation(GLuint program, const GLchar * name) { - LOAD_GLES(glGetAttribLocation); -#ifndef direct_glGetAttribLocation - PUSH_IF_COMPILING(glGetAttribLocation) -#endif - return gles_glGetAttribLocation(program, name); -} -GLint glGetAttribLocation(GLuint program, const GLchar * name) __attribute__((alias("gl4es_glGetAttribLocation"))); -#endif -#ifndef skip_glGetBooleanv -void gl4es_glGetBooleanv(GLenum pname, GLboolean * params) { - LOAD_GLES(glGetBooleanv); -#ifndef direct_glGetBooleanv - PUSH_IF_COMPILING(glGetBooleanv) -#endif - gles_glGetBooleanv(pname, params); -} -void glGetBooleanv(GLenum pname, GLboolean * params) __attribute__((alias("gl4es_glGetBooleanv"))); -#endif -#ifndef skip_glGetBufferParameteriv -void gl4es_glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) { - LOAD_GLES(glGetBufferParameteriv); -#ifndef direct_glGetBufferParameteriv - PUSH_IF_COMPILING(glGetBufferParameteriv) -#endif - gles_glGetBufferParameteriv(target, pname, params); -} -void glGetBufferParameteriv(GLenum target, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetBufferParameteriv"))); -#endif -#ifndef skip_glGetError -GLenum gl4es_glGetError() { - LOAD_GLES(glGetError); -#ifndef direct_glGetError - PUSH_IF_COMPILING(glGetError) -#endif - return gles_glGetError(); -} -GLenum glGetError() __attribute__((alias("gl4es_glGetError"))); -#endif -#ifndef skip_glGetFloatv -void gl4es_glGetFloatv(GLenum pname, GLfloat * params) { - LOAD_GLES(glGetFloatv); -#ifndef direct_glGetFloatv - PUSH_IF_COMPILING(glGetFloatv) -#endif - gles_glGetFloatv(pname, params); -} -void glGetFloatv(GLenum pname, GLfloat * params) __attribute__((alias("gl4es_glGetFloatv"))); -#endif -#ifndef skip_glGetFramebufferAttachmentParameteriv -void gl4es_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); -} -void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetFramebufferAttachmentParameteriv"))); -#endif -#ifndef skip_glGetIntegerv -void gl4es_glGetIntegerv(GLenum pname, GLint * params) { - LOAD_GLES(glGetIntegerv); -#ifndef direct_glGetIntegerv - PUSH_IF_COMPILING(glGetIntegerv) -#endif - gles_glGetIntegerv(pname, params); -} -void glGetIntegerv(GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetIntegerv"))); -#endif -#ifndef skip_glGetProgramInfoLog -void gl4es_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); -} -void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) __attribute__((alias("gl4es_glGetProgramInfoLog"))); -#endif -#ifndef skip_glGetProgramiv -void gl4es_glGetProgramiv(GLuint program, GLenum pname, GLint * params) { - LOAD_GLES(glGetProgramiv); -#ifndef direct_glGetProgramiv - PUSH_IF_COMPILING(glGetProgramiv) -#endif - gles_glGetProgramiv(program, pname, params); -} -void glGetProgramiv(GLuint program, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetProgramiv"))); -#endif -#ifndef skip_glGetRenderbufferParameteriv -void gl4es_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) { - LOAD_GLES(glGetRenderbufferParameteriv); -#ifndef direct_glGetRenderbufferParameteriv - PUSH_IF_COMPILING(glGetRenderbufferParameteriv) -#endif - gles_glGetRenderbufferParameteriv(target, pname, params); -} -void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetRenderbufferParameteriv"))); -#endif -#ifndef skip_glGetShaderInfoLog -void gl4es_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); -} -void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) __attribute__((alias("gl4es_glGetShaderInfoLog"))); -#endif -#ifndef skip_glGetShaderPrecisionFormat -void gl4es_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); -} -void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) __attribute__((alias("gl4es_glGetShaderPrecisionFormat"))); -#endif -#ifndef skip_glGetShaderSource -void gl4es_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); -} -void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) __attribute__((alias("gl4es_glGetShaderSource"))); -#endif -#ifndef skip_glGetShaderiv -void gl4es_glGetShaderiv(GLuint shader, GLenum pname, GLint * params) { - LOAD_GLES(glGetShaderiv); -#ifndef direct_glGetShaderiv - PUSH_IF_COMPILING(glGetShaderiv) -#endif - gles_glGetShaderiv(shader, pname, params); -} -void glGetShaderiv(GLuint shader, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetShaderiv"))); -#endif -#ifndef skip_glGetString -const GLubyte * gl4es_glGetString(GLenum name) { - LOAD_GLES(glGetString); -#ifndef direct_glGetString - PUSH_IF_COMPILING(glGetString) -#endif - return gles_glGetString(name); -} -const GLubyte * glGetString(GLenum name) __attribute__((alias("gl4es_glGetString"))); -#endif -#ifndef skip_glGetTexParameterfv -void gl4es_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) { - LOAD_GLES(glGetTexParameterfv); -#ifndef direct_glGetTexParameterfv - PUSH_IF_COMPILING(glGetTexParameterfv) -#endif - gles_glGetTexParameterfv(target, pname, params); -} -void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) __attribute__((alias("gl4es_glGetTexParameterfv"))); -#endif -#ifndef skip_glGetTexParameteriv -void gl4es_glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) { - LOAD_GLES(glGetTexParameteriv); -#ifndef direct_glGetTexParameteriv - PUSH_IF_COMPILING(glGetTexParameteriv) -#endif - gles_glGetTexParameteriv(target, pname, params); -} -void glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetTexParameteriv"))); -#endif -#ifndef skip_glGetUniformLocation -GLint gl4es_glGetUniformLocation(GLuint program, const GLchar * name) { - LOAD_GLES(glGetUniformLocation); -#ifndef direct_glGetUniformLocation - PUSH_IF_COMPILING(glGetUniformLocation) -#endif - return gles_glGetUniformLocation(program, name); -} -GLint glGetUniformLocation(GLuint program, const GLchar * name) __attribute__((alias("gl4es_glGetUniformLocation"))); -#endif -#ifndef skip_glGetUniformfv -void gl4es_glGetUniformfv(GLuint program, GLint location, GLfloat * params) { - LOAD_GLES(glGetUniformfv); -#ifndef direct_glGetUniformfv - PUSH_IF_COMPILING(glGetUniformfv) -#endif - gles_glGetUniformfv(program, location, params); -} -void glGetUniformfv(GLuint program, GLint location, GLfloat * params) __attribute__((alias("gl4es_glGetUniformfv"))); -#endif -#ifndef skip_glGetUniformiv -void gl4es_glGetUniformiv(GLuint program, GLint location, GLint * params) { - LOAD_GLES(glGetUniformiv); -#ifndef direct_glGetUniformiv - PUSH_IF_COMPILING(glGetUniformiv) -#endif - gles_glGetUniformiv(program, location, params); -} -void glGetUniformiv(GLuint program, GLint location, GLint * params) __attribute__((alias("gl4es_glGetUniformiv"))); -#endif -#ifndef skip_glGetVertexAttribPointerv -void gl4es_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid ** pointer) { - LOAD_GLES(glGetVertexAttribPointerv); -#ifndef direct_glGetVertexAttribPointerv - PUSH_IF_COMPILING(glGetVertexAttribPointerv) -#endif - gles_glGetVertexAttribPointerv(index, pname, pointer); -} -void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid ** pointer) __attribute__((alias("gl4es_glGetVertexAttribPointerv"))); -#endif -#ifndef skip_glGetVertexAttribfv -void gl4es_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat * params) { - LOAD_GLES(glGetVertexAttribfv); -#ifndef direct_glGetVertexAttribfv - PUSH_IF_COMPILING(glGetVertexAttribfv) -#endif - gles_glGetVertexAttribfv(index, pname, params); -} -void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat * params) __attribute__((alias("gl4es_glGetVertexAttribfv"))); -#endif -#ifndef skip_glGetVertexAttribiv -void gl4es_glGetVertexAttribiv(GLuint index, GLenum pname, GLint * params) { - LOAD_GLES(glGetVertexAttribiv); -#ifndef direct_glGetVertexAttribiv - PUSH_IF_COMPILING(glGetVertexAttribiv) -#endif - gles_glGetVertexAttribiv(index, pname, params); -} -void glGetVertexAttribiv(GLuint index, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetVertexAttribiv"))); -#endif -#ifndef skip_glHint -void gl4es_glHint(GLenum target, GLenum mode) { - LOAD_GLES(glHint); -#ifndef direct_glHint - PUSH_IF_COMPILING(glHint) -#endif - gles_glHint(target, mode); -} -void glHint(GLenum target, GLenum mode) __attribute__((alias("gl4es_glHint"))); -#endif -#ifndef skip_glIsBuffer -GLboolean gl4es_glIsBuffer(GLuint buffer) { - LOAD_GLES(glIsBuffer); -#ifndef direct_glIsBuffer - PUSH_IF_COMPILING(glIsBuffer) -#endif - return gles_glIsBuffer(buffer); -} -GLboolean glIsBuffer(GLuint buffer) __attribute__((alias("gl4es_glIsBuffer"))); -#endif -#ifndef skip_glIsEnabled -GLboolean gl4es_glIsEnabled(GLenum cap) { - LOAD_GLES(glIsEnabled); -#ifndef direct_glIsEnabled - PUSH_IF_COMPILING(glIsEnabled) -#endif - return gles_glIsEnabled(cap); -} -GLboolean glIsEnabled(GLenum cap) __attribute__((alias("gl4es_glIsEnabled"))); -#endif -#ifndef skip_glIsFramebuffer -GLboolean gl4es_glIsFramebuffer(GLuint framebuffer) { - LOAD_GLES(glIsFramebuffer); -#ifndef direct_glIsFramebuffer - PUSH_IF_COMPILING(glIsFramebuffer) -#endif - return gles_glIsFramebuffer(framebuffer); -} -GLboolean glIsFramebuffer(GLuint framebuffer) __attribute__((alias("gl4es_glIsFramebuffer"))); -#endif -#ifndef skip_glIsProgram -GLboolean gl4es_glIsProgram(GLuint program) { - LOAD_GLES(glIsProgram); -#ifndef direct_glIsProgram - PUSH_IF_COMPILING(glIsProgram) -#endif - return gles_glIsProgram(program); -} -GLboolean glIsProgram(GLuint program) __attribute__((alias("gl4es_glIsProgram"))); -#endif -#ifndef skip_glIsRenderbuffer -GLboolean gl4es_glIsRenderbuffer(GLuint renderbuffer) { - LOAD_GLES(glIsRenderbuffer); -#ifndef direct_glIsRenderbuffer - PUSH_IF_COMPILING(glIsRenderbuffer) -#endif - return gles_glIsRenderbuffer(renderbuffer); -} -GLboolean glIsRenderbuffer(GLuint renderbuffer) __attribute__((alias("gl4es_glIsRenderbuffer"))); -#endif -#ifndef skip_glIsShader -GLboolean gl4es_glIsShader(GLuint shader) { - LOAD_GLES(glIsShader); -#ifndef direct_glIsShader - PUSH_IF_COMPILING(glIsShader) -#endif - return gles_glIsShader(shader); -} -GLboolean glIsShader(GLuint shader) __attribute__((alias("gl4es_glIsShader"))); -#endif -#ifndef skip_glIsTexture -GLboolean gl4es_glIsTexture(GLuint texture) { - LOAD_GLES(glIsTexture); -#ifndef direct_glIsTexture - PUSH_IF_COMPILING(glIsTexture) -#endif - return gles_glIsTexture(texture); -} -GLboolean glIsTexture(GLuint texture) __attribute__((alias("gl4es_glIsTexture"))); -#endif -#ifndef skip_glLineWidth -void gl4es_glLineWidth(GLfloat width) { - LOAD_GLES(glLineWidth); -#ifndef direct_glLineWidth - PUSH_IF_COMPILING(glLineWidth) -#endif - gles_glLineWidth(width); -} -void glLineWidth(GLfloat width) __attribute__((alias("gl4es_glLineWidth"))); -#endif -#ifndef skip_glLinkProgram -void gl4es_glLinkProgram(GLuint program) { - LOAD_GLES(glLinkProgram); -#ifndef direct_glLinkProgram - PUSH_IF_COMPILING(glLinkProgram) -#endif - gles_glLinkProgram(program); -} -void glLinkProgram(GLuint program) __attribute__((alias("gl4es_glLinkProgram"))); -#endif -#ifndef skip_glPixelStorei -void gl4es_glPixelStorei(GLenum pname, GLint param) { - LOAD_GLES(glPixelStorei); -#ifndef direct_glPixelStorei - PUSH_IF_COMPILING(glPixelStorei) -#endif - gles_glPixelStorei(pname, param); -} -void glPixelStorei(GLenum pname, GLint param) __attribute__((alias("gl4es_glPixelStorei"))); -#endif -#ifndef skip_glPolygonOffset -void gl4es_glPolygonOffset(GLfloat factor, GLfloat units) { - LOAD_GLES(glPolygonOffset); -#ifndef direct_glPolygonOffset - PUSH_IF_COMPILING(glPolygonOffset) -#endif - gles_glPolygonOffset(factor, units); -} -void glPolygonOffset(GLfloat factor, GLfloat units) __attribute__((alias("gl4es_glPolygonOffset"))); -#endif -#ifndef skip_glReadPixels -void gl4es_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); -} -void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) __attribute__((alias("gl4es_glReadPixels"))); -#endif -#ifndef skip_glReleaseShaderCompiler -void gl4es_glReleaseShaderCompiler() { - LOAD_GLES(glReleaseShaderCompiler); -#ifndef direct_glReleaseShaderCompiler - PUSH_IF_COMPILING(glReleaseShaderCompiler) -#endif - gles_glReleaseShaderCompiler(); -} -void glReleaseShaderCompiler() __attribute__((alias("gl4es_glReleaseShaderCompiler"))); -#endif -#ifndef skip_glRenderbufferStorage -void gl4es_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); -} -void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glRenderbufferStorage"))); -#endif -#ifndef skip_glSampleCoverage -void gl4es_glSampleCoverage(GLclampf value, GLboolean invert) { - LOAD_GLES(glSampleCoverage); -#ifndef direct_glSampleCoverage - PUSH_IF_COMPILING(glSampleCoverage) -#endif - gles_glSampleCoverage(value, invert); -} -void glSampleCoverage(GLclampf value, GLboolean invert) __attribute__((alias("gl4es_glSampleCoverage"))); -#endif -#ifndef skip_glScissor -void gl4es_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); -} -void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glScissor"))); -#endif -#ifndef skip_glShaderBinary -void gl4es_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); -} -void glShaderBinary(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length) __attribute__((alias("gl4es_glShaderBinary"))); -#endif -#ifndef skip_glShaderSource -void gl4es_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); -} -void glShaderSource(GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length) __attribute__((alias("gl4es_glShaderSource"))); -#endif -#ifndef skip_glStencilFunc -void gl4es_glStencilFunc(GLenum func, GLint ref, GLuint mask) { - LOAD_GLES(glStencilFunc); -#ifndef direct_glStencilFunc - PUSH_IF_COMPILING(glStencilFunc) -#endif - gles_glStencilFunc(func, ref, mask); -} -void glStencilFunc(GLenum func, GLint ref, GLuint mask) __attribute__((alias("gl4es_glStencilFunc"))); -#endif -#ifndef skip_glStencilFuncSeparate -void gl4es_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); -} -void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) __attribute__((alias("gl4es_glStencilFuncSeparate"))); -#endif -#ifndef skip_glStencilMask -void gl4es_glStencilMask(GLuint mask) { - LOAD_GLES(glStencilMask); -#ifndef direct_glStencilMask - PUSH_IF_COMPILING(glStencilMask) -#endif - gles_glStencilMask(mask); -} -void glStencilMask(GLuint mask) __attribute__((alias("gl4es_glStencilMask"))); -#endif -#ifndef skip_glStencilMaskSeparate -void gl4es_glStencilMaskSeparate(GLenum face, GLuint mask) { - LOAD_GLES(glStencilMaskSeparate); -#ifndef direct_glStencilMaskSeparate - PUSH_IF_COMPILING(glStencilMaskSeparate) -#endif - gles_glStencilMaskSeparate(face, mask); -} -void glStencilMaskSeparate(GLenum face, GLuint mask) __attribute__((alias("gl4es_glStencilMaskSeparate"))); -#endif -#ifndef skip_glStencilOp -void gl4es_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { - LOAD_GLES(glStencilOp); -#ifndef direct_glStencilOp - PUSH_IF_COMPILING(glStencilOp) -#endif - gles_glStencilOp(fail, zfail, zpass); -} -void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) __attribute__((alias("gl4es_glStencilOp"))); -#endif -#ifndef skip_glStencilOpSeparate -void gl4es_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); -} -void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass) __attribute__((alias("gl4es_glStencilOpSeparate"))); -#endif -#ifndef skip_glTexImage2D -void gl4es_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); -} -void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) __attribute__((alias("gl4es_glTexImage2D"))); -#endif -#ifndef skip_glTexParameterf -void gl4es_glTexParameterf(GLenum target, GLenum pname, GLfloat param) { - LOAD_GLES(glTexParameterf); -#ifndef direct_glTexParameterf - PUSH_IF_COMPILING(glTexParameterf) -#endif - gles_glTexParameterf(target, pname, param); -} -void glTexParameterf(GLenum target, GLenum pname, GLfloat param) __attribute__((alias("gl4es_glTexParameterf"))); -#endif -#ifndef skip_glTexParameterfv -void gl4es_glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) { - LOAD_GLES(glTexParameterfv); -#ifndef direct_glTexParameterfv - PUSH_IF_COMPILING(glTexParameterfv) -#endif - gles_glTexParameterfv(target, pname, params); -} -void glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) __attribute__((alias("gl4es_glTexParameterfv"))); -#endif -#ifndef skip_glTexParameteri -void gl4es_glTexParameteri(GLenum target, GLenum pname, GLint param) { - LOAD_GLES(glTexParameteri); -#ifndef direct_glTexParameteri - PUSH_IF_COMPILING(glTexParameteri) -#endif - gles_glTexParameteri(target, pname, param); -} -void glTexParameteri(GLenum target, GLenum pname, GLint param) __attribute__((alias("gl4es_glTexParameteri"))); -#endif -#ifndef skip_glTexParameteriv -void gl4es_glTexParameteriv(GLenum target, GLenum pname, const GLint * params) { - LOAD_GLES(glTexParameteriv); -#ifndef direct_glTexParameteriv - PUSH_IF_COMPILING(glTexParameteriv) -#endif - gles_glTexParameteriv(target, pname, params); -} -void glTexParameteriv(GLenum target, GLenum pname, const GLint * params) __attribute__((alias("gl4es_glTexParameteriv"))); -#endif -#ifndef skip_glTexSubImage2D -void gl4es_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); -} -void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) __attribute__((alias("gl4es_glTexSubImage2D"))); -#endif -#ifndef skip_glUniform1f -void gl4es_glUniform1f(GLint location, GLfloat v0) { - LOAD_GLES(glUniform1f); -#ifndef direct_glUniform1f - PUSH_IF_COMPILING(glUniform1f) -#endif - gles_glUniform1f(location, v0); -} -void glUniform1f(GLint location, GLfloat v0) __attribute__((alias("gl4es_glUniform1f"))); -#endif -#ifndef skip_glUniform1fv -void gl4es_glUniform1fv(GLint location, GLsizei count, const GLfloat * value) { - LOAD_GLES(glUniform1fv); -#ifndef direct_glUniform1fv - PUSH_IF_COMPILING(glUniform1fv) -#endif - gles_glUniform1fv(location, count, value); -} -void glUniform1fv(GLint location, GLsizei count, const GLfloat * value) __attribute__((alias("gl4es_glUniform1fv"))); -#endif -#ifndef skip_glUniform1i -void gl4es_glUniform1i(GLint location, GLint v0) { - LOAD_GLES(glUniform1i); -#ifndef direct_glUniform1i - PUSH_IF_COMPILING(glUniform1i) -#endif - gles_glUniform1i(location, v0); -} -void glUniform1i(GLint location, GLint v0) __attribute__((alias("gl4es_glUniform1i"))); -#endif -#ifndef skip_glUniform1iv -void gl4es_glUniform1iv(GLint location, GLsizei count, const GLint * value) { - LOAD_GLES(glUniform1iv); -#ifndef direct_glUniform1iv - PUSH_IF_COMPILING(glUniform1iv) -#endif - gles_glUniform1iv(location, count, value); -} -void glUniform1iv(GLint location, GLsizei count, const GLint * value) __attribute__((alias("gl4es_glUniform1iv"))); -#endif -#ifndef skip_glUniform2f -void gl4es_glUniform2f(GLint location, GLfloat v0, GLfloat v1) { - LOAD_GLES(glUniform2f); -#ifndef direct_glUniform2f - PUSH_IF_COMPILING(glUniform2f) -#endif - gles_glUniform2f(location, v0, v1); -} -void glUniform2f(GLint location, GLfloat v0, GLfloat v1) __attribute__((alias("gl4es_glUniform2f"))); -#endif -#ifndef skip_glUniform2fv -void gl4es_glUniform2fv(GLint location, GLsizei count, const GLfloat * value) { - LOAD_GLES(glUniform2fv); -#ifndef direct_glUniform2fv - PUSH_IF_COMPILING(glUniform2fv) -#endif - gles_glUniform2fv(location, count, value); -} -void glUniform2fv(GLint location, GLsizei count, const GLfloat * value) __attribute__((alias("gl4es_glUniform2fv"))); -#endif -#ifndef skip_glUniform2i -void gl4es_glUniform2i(GLint location, GLint v0, GLint v1) { - LOAD_GLES(glUniform2i); -#ifndef direct_glUniform2i - PUSH_IF_COMPILING(glUniform2i) -#endif - gles_glUniform2i(location, v0, v1); -} -void glUniform2i(GLint location, GLint v0, GLint v1) __attribute__((alias("gl4es_glUniform2i"))); -#endif -#ifndef skip_glUniform2iv -void gl4es_glUniform2iv(GLint location, GLsizei count, const GLint * value) { - LOAD_GLES(glUniform2iv); -#ifndef direct_glUniform2iv - PUSH_IF_COMPILING(glUniform2iv) -#endif - gles_glUniform2iv(location, count, value); -} -void glUniform2iv(GLint location, GLsizei count, const GLint * value) __attribute__((alias("gl4es_glUniform2iv"))); -#endif -#ifndef skip_glUniform3f -void gl4es_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); -} -void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) __attribute__((alias("gl4es_glUniform3f"))); -#endif -#ifndef skip_glUniform3fv -void gl4es_glUniform3fv(GLint location, GLsizei count, const GLfloat * value) { - LOAD_GLES(glUniform3fv); -#ifndef direct_glUniform3fv - PUSH_IF_COMPILING(glUniform3fv) -#endif - gles_glUniform3fv(location, count, value); -} -void glUniform3fv(GLint location, GLsizei count, const GLfloat * value) __attribute__((alias("gl4es_glUniform3fv"))); -#endif -#ifndef skip_glUniform3i -void gl4es_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); -} -void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) __attribute__((alias("gl4es_glUniform3i"))); -#endif -#ifndef skip_glUniform3iv -void gl4es_glUniform3iv(GLint location, GLsizei count, const GLint * value) { - LOAD_GLES(glUniform3iv); -#ifndef direct_glUniform3iv - PUSH_IF_COMPILING(glUniform3iv) -#endif - gles_glUniform3iv(location, count, value); -} -void glUniform3iv(GLint location, GLsizei count, const GLint * value) __attribute__((alias("gl4es_glUniform3iv"))); -#endif -#ifndef skip_glUniform4f -void gl4es_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); -} -void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) __attribute__((alias("gl4es_glUniform4f"))); -#endif -#ifndef skip_glUniform4fv -void gl4es_glUniform4fv(GLint location, GLsizei count, const GLfloat * value) { - LOAD_GLES(glUniform4fv); -#ifndef direct_glUniform4fv - PUSH_IF_COMPILING(glUniform4fv) -#endif - gles_glUniform4fv(location, count, value); -} -void glUniform4fv(GLint location, GLsizei count, const GLfloat * value) __attribute__((alias("gl4es_glUniform4fv"))); -#endif -#ifndef skip_glUniform4i -void gl4es_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); -} -void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) __attribute__((alias("gl4es_glUniform4i"))); -#endif -#ifndef skip_glUniform4iv -void gl4es_glUniform4iv(GLint location, GLsizei count, const GLint * value) { - LOAD_GLES(glUniform4iv); -#ifndef direct_glUniform4iv - PUSH_IF_COMPILING(glUniform4iv) -#endif - gles_glUniform4iv(location, count, value); -} -void glUniform4iv(GLint location, GLsizei count, const GLint * value) __attribute__((alias("gl4es_glUniform4iv"))); -#endif -#ifndef skip_glUniformMatrix2fv -void gl4es_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); -} -void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) __attribute__((alias("gl4es_glUniformMatrix2fv"))); -#endif -#ifndef skip_glUniformMatrix3fv -void gl4es_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); -} -void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) __attribute__((alias("gl4es_glUniformMatrix3fv"))); -#endif -#ifndef skip_glUniformMatrix4fv -void gl4es_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); -} -void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) __attribute__((alias("gl4es_glUniformMatrix4fv"))); -#endif -#ifndef skip_glUseProgram -void gl4es_glUseProgram(GLuint program) { - LOAD_GLES(glUseProgram); -#ifndef direct_glUseProgram - PUSH_IF_COMPILING(glUseProgram) -#endif - gles_glUseProgram(program); -} -void glUseProgram(GLuint program) __attribute__((alias("gl4es_glUseProgram"))); -#endif -#ifndef skip_glValidateProgram -void gl4es_glValidateProgram(GLuint program) { - LOAD_GLES(glValidateProgram); -#ifndef direct_glValidateProgram - PUSH_IF_COMPILING(glValidateProgram) -#endif - gles_glValidateProgram(program); -} -void glValidateProgram(GLuint program) __attribute__((alias("gl4es_glValidateProgram"))); -#endif -#ifndef skip_glVertexAttrib1f -void gl4es_glVertexAttrib1f(GLuint index, GLfloat x) { - LOAD_GLES(glVertexAttrib1f); -#ifndef direct_glVertexAttrib1f - PUSH_IF_COMPILING(glVertexAttrib1f) -#endif - gles_glVertexAttrib1f(index, x); -} -void glVertexAttrib1f(GLuint index, GLfloat x) __attribute__((alias("gl4es_glVertexAttrib1f"))); -#endif -#ifndef skip_glVertexAttrib1fv -void gl4es_glVertexAttrib1fv(GLuint index, const GLfloat * v) { - LOAD_GLES(glVertexAttrib1fv); -#ifndef direct_glVertexAttrib1fv - PUSH_IF_COMPILING(glVertexAttrib1fv) -#endif - gles_glVertexAttrib1fv(index, v); -} -void glVertexAttrib1fv(GLuint index, const GLfloat * v) __attribute__((alias("gl4es_glVertexAttrib1fv"))); -#endif -#ifndef skip_glVertexAttrib2f -void gl4es_glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) { - LOAD_GLES(glVertexAttrib2f); -#ifndef direct_glVertexAttrib2f - PUSH_IF_COMPILING(glVertexAttrib2f) -#endif - gles_glVertexAttrib2f(index, x, y); -} -void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) __attribute__((alias("gl4es_glVertexAttrib2f"))); -#endif -#ifndef skip_glVertexAttrib2fv -void gl4es_glVertexAttrib2fv(GLuint index, const GLfloat * v) { - LOAD_GLES(glVertexAttrib2fv); -#ifndef direct_glVertexAttrib2fv - PUSH_IF_COMPILING(glVertexAttrib2fv) -#endif - gles_glVertexAttrib2fv(index, v); -} -void glVertexAttrib2fv(GLuint index, const GLfloat * v) __attribute__((alias("gl4es_glVertexAttrib2fv"))); -#endif -#ifndef skip_glVertexAttrib3f -void gl4es_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); -} -void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) __attribute__((alias("gl4es_glVertexAttrib3f"))); -#endif -#ifndef skip_glVertexAttrib3fv -void gl4es_glVertexAttrib3fv(GLuint index, const GLfloat * v) { - LOAD_GLES(glVertexAttrib3fv); -#ifndef direct_glVertexAttrib3fv - PUSH_IF_COMPILING(glVertexAttrib3fv) -#endif - gles_glVertexAttrib3fv(index, v); -} -void glVertexAttrib3fv(GLuint index, const GLfloat * v) __attribute__((alias("gl4es_glVertexAttrib3fv"))); -#endif -#ifndef skip_glVertexAttrib4f -void gl4es_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); -} -void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) __attribute__((alias("gl4es_glVertexAttrib4f"))); -#endif -#ifndef skip_glVertexAttrib4fv -void gl4es_glVertexAttrib4fv(GLuint index, const GLfloat * v) { - LOAD_GLES(glVertexAttrib4fv); -#ifndef direct_glVertexAttrib4fv - PUSH_IF_COMPILING(glVertexAttrib4fv) -#endif - gles_glVertexAttrib4fv(index, v); -} -void glVertexAttrib4fv(GLuint index, const GLfloat * v) __attribute__((alias("gl4es_glVertexAttrib4fv"))); -#endif -#ifndef skip_glVertexAttribPointer -void gl4es_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); -} -void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer) __attribute__((alias("gl4es_glVertexAttribPointer"))); -#endif -#ifndef skip_glViewport -void gl4es_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); -} -void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glViewport"))); -#endif -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; - } - } -} -#endif diff --git a/project/jni/gl4es/src/gl/wrap/gles2.h b/project/jni/gl4es/src/gl/wrap/gles2.h deleted file mode 100755 index faeed1b67..000000000 --- a/project/jni/gl4es/src/gl/wrap/gles2.h +++ /dev/null @@ -1,4214 +0,0 @@ -#ifdef USE_ES2 -#include "../gl.h" - -#ifndef GLES2WRAP_H -#define GLES2WRAP_H - -typedef struct { - int format; - void *func; - void *args; -} packed_call_t; - -typedef struct { - int func; - void *args; -} indexed_call_t; - -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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; -} 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; - 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; - 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; - 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; - 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; - 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; - 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; -} 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; -} 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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; - 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 zNear, zFar -#define glDepthRangef_ARG_EXPAND GLclampf zNear, GLclampf zFar -#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 gl4es_glActiveTexture(glActiveTexture_ARG_EXPAND); -typedef void (*glActiveTexture_PTR)(glActiveTexture_ARG_EXPAND); -void gl4es_glAttachShader(glAttachShader_ARG_EXPAND); -typedef void (*glAttachShader_PTR)(glAttachShader_ARG_EXPAND); -void gl4es_glBindAttribLocation(glBindAttribLocation_ARG_EXPAND); -typedef void (*glBindAttribLocation_PTR)(glBindAttribLocation_ARG_EXPAND); -void gl4es_glBindBuffer(glBindBuffer_ARG_EXPAND); -typedef void (*glBindBuffer_PTR)(glBindBuffer_ARG_EXPAND); -void gl4es_glBindFramebuffer(glBindFramebuffer_ARG_EXPAND); -typedef void (*glBindFramebuffer_PTR)(glBindFramebuffer_ARG_EXPAND); -void gl4es_glBindRenderbuffer(glBindRenderbuffer_ARG_EXPAND); -typedef void (*glBindRenderbuffer_PTR)(glBindRenderbuffer_ARG_EXPAND); -void gl4es_glBindTexture(glBindTexture_ARG_EXPAND); -typedef void (*glBindTexture_PTR)(glBindTexture_ARG_EXPAND); -void gl4es_glBlendColor(glBlendColor_ARG_EXPAND); -typedef void (*glBlendColor_PTR)(glBlendColor_ARG_EXPAND); -void gl4es_glBlendEquation(glBlendEquation_ARG_EXPAND); -typedef void (*glBlendEquation_PTR)(glBlendEquation_ARG_EXPAND); -void gl4es_glBlendEquationSeparate(glBlendEquationSeparate_ARG_EXPAND); -typedef void (*glBlendEquationSeparate_PTR)(glBlendEquationSeparate_ARG_EXPAND); -void gl4es_glBlendFunc(glBlendFunc_ARG_EXPAND); -typedef void (*glBlendFunc_PTR)(glBlendFunc_ARG_EXPAND); -void gl4es_glBlendFuncSeparate(glBlendFuncSeparate_ARG_EXPAND); -typedef void (*glBlendFuncSeparate_PTR)(glBlendFuncSeparate_ARG_EXPAND); -void gl4es_glBufferData(glBufferData_ARG_EXPAND); -typedef void (*glBufferData_PTR)(glBufferData_ARG_EXPAND); -void gl4es_glBufferSubData(glBufferSubData_ARG_EXPAND); -typedef void (*glBufferSubData_PTR)(glBufferSubData_ARG_EXPAND); -GLenum gl4es_glCheckFramebufferStatus(glCheckFramebufferStatus_ARG_EXPAND); -typedef GLenum (*glCheckFramebufferStatus_PTR)(glCheckFramebufferStatus_ARG_EXPAND); -void gl4es_glClear(glClear_ARG_EXPAND); -typedef void (*glClear_PTR)(glClear_ARG_EXPAND); -void gl4es_glClearColor(glClearColor_ARG_EXPAND); -typedef void (*glClearColor_PTR)(glClearColor_ARG_EXPAND); -void gl4es_glClearDepthf(glClearDepthf_ARG_EXPAND); -typedef void (*glClearDepthf_PTR)(glClearDepthf_ARG_EXPAND); -void gl4es_glClearStencil(glClearStencil_ARG_EXPAND); -typedef void (*glClearStencil_PTR)(glClearStencil_ARG_EXPAND); -void gl4es_glColorMask(glColorMask_ARG_EXPAND); -typedef void (*glColorMask_PTR)(glColorMask_ARG_EXPAND); -void gl4es_glCompileShader(glCompileShader_ARG_EXPAND); -typedef void (*glCompileShader_PTR)(glCompileShader_ARG_EXPAND); -void gl4es_glCompressedTexImage2D(glCompressedTexImage2D_ARG_EXPAND); -typedef void (*glCompressedTexImage2D_PTR)(glCompressedTexImage2D_ARG_EXPAND); -void gl4es_glCompressedTexSubImage2D(glCompressedTexSubImage2D_ARG_EXPAND); -typedef void (*glCompressedTexSubImage2D_PTR)(glCompressedTexSubImage2D_ARG_EXPAND); -void gl4es_glCopyTexImage2D(glCopyTexImage2D_ARG_EXPAND); -typedef void (*glCopyTexImage2D_PTR)(glCopyTexImage2D_ARG_EXPAND); -void gl4es_glCopyTexSubImage2D(glCopyTexSubImage2D_ARG_EXPAND); -typedef void (*glCopyTexSubImage2D_PTR)(glCopyTexSubImage2D_ARG_EXPAND); -GLuint gl4es_glCreateProgram(glCreateProgram_ARG_EXPAND); -typedef GLuint (*glCreateProgram_PTR)(glCreateProgram_ARG_EXPAND); -GLuint gl4es_glCreateShader(glCreateShader_ARG_EXPAND); -typedef GLuint (*glCreateShader_PTR)(glCreateShader_ARG_EXPAND); -void gl4es_glCullFace(glCullFace_ARG_EXPAND); -typedef void (*glCullFace_PTR)(glCullFace_ARG_EXPAND); -void gl4es_glDeleteBuffers(glDeleteBuffers_ARG_EXPAND); -typedef void (*glDeleteBuffers_PTR)(glDeleteBuffers_ARG_EXPAND); -void gl4es_glDeleteFramebuffers(glDeleteFramebuffers_ARG_EXPAND); -typedef void (*glDeleteFramebuffers_PTR)(glDeleteFramebuffers_ARG_EXPAND); -void gl4es_glDeleteProgram(glDeleteProgram_ARG_EXPAND); -typedef void (*glDeleteProgram_PTR)(glDeleteProgram_ARG_EXPAND); -void gl4es_glDeleteRenderbuffers(glDeleteRenderbuffers_ARG_EXPAND); -typedef void (*glDeleteRenderbuffers_PTR)(glDeleteRenderbuffers_ARG_EXPAND); -void gl4es_glDeleteShader(glDeleteShader_ARG_EXPAND); -typedef void (*glDeleteShader_PTR)(glDeleteShader_ARG_EXPAND); -void gl4es_glDeleteTextures(glDeleteTextures_ARG_EXPAND); -typedef void (*glDeleteTextures_PTR)(glDeleteTextures_ARG_EXPAND); -void gl4es_glDepthFunc(glDepthFunc_ARG_EXPAND); -typedef void (*glDepthFunc_PTR)(glDepthFunc_ARG_EXPAND); -void gl4es_glDepthMask(glDepthMask_ARG_EXPAND); -typedef void (*glDepthMask_PTR)(glDepthMask_ARG_EXPAND); -void gl4es_glDepthRangef(glDepthRangef_ARG_EXPAND); -typedef void (*glDepthRangef_PTR)(glDepthRangef_ARG_EXPAND); -void gl4es_glDetachShader(glDetachShader_ARG_EXPAND); -typedef void (*glDetachShader_PTR)(glDetachShader_ARG_EXPAND); -void gl4es_glDisable(glDisable_ARG_EXPAND); -typedef void (*glDisable_PTR)(glDisable_ARG_EXPAND); -void gl4es_glDisableVertexAttribArray(glDisableVertexAttribArray_ARG_EXPAND); -typedef void (*glDisableVertexAttribArray_PTR)(glDisableVertexAttribArray_ARG_EXPAND); -void gl4es_glDrawArrays(glDrawArrays_ARG_EXPAND); -typedef void (*glDrawArrays_PTR)(glDrawArrays_ARG_EXPAND); -void gl4es_glDrawElements(glDrawElements_ARG_EXPAND); -typedef void (*glDrawElements_PTR)(glDrawElements_ARG_EXPAND); -void gl4es_glEnable(glEnable_ARG_EXPAND); -typedef void (*glEnable_PTR)(glEnable_ARG_EXPAND); -void gl4es_glEnableVertexAttribArray(glEnableVertexAttribArray_ARG_EXPAND); -typedef void (*glEnableVertexAttribArray_PTR)(glEnableVertexAttribArray_ARG_EXPAND); -void gl4es_glFinish(glFinish_ARG_EXPAND); -typedef void (*glFinish_PTR)(glFinish_ARG_EXPAND); -void gl4es_glFlush(glFlush_ARG_EXPAND); -typedef void (*glFlush_PTR)(glFlush_ARG_EXPAND); -void gl4es_glFramebufferRenderbuffer(glFramebufferRenderbuffer_ARG_EXPAND); -typedef void (*glFramebufferRenderbuffer_PTR)(glFramebufferRenderbuffer_ARG_EXPAND); -void gl4es_glFramebufferTexture2D(glFramebufferTexture2D_ARG_EXPAND); -typedef void (*glFramebufferTexture2D_PTR)(glFramebufferTexture2D_ARG_EXPAND); -void gl4es_glFrontFace(glFrontFace_ARG_EXPAND); -typedef void (*glFrontFace_PTR)(glFrontFace_ARG_EXPAND); -void gl4es_glGenBuffers(glGenBuffers_ARG_EXPAND); -typedef void (*glGenBuffers_PTR)(glGenBuffers_ARG_EXPAND); -void gl4es_glGenFramebuffers(glGenFramebuffers_ARG_EXPAND); -typedef void (*glGenFramebuffers_PTR)(glGenFramebuffers_ARG_EXPAND); -void gl4es_glGenRenderbuffers(glGenRenderbuffers_ARG_EXPAND); -typedef void (*glGenRenderbuffers_PTR)(glGenRenderbuffers_ARG_EXPAND); -void gl4es_glGenTextures(glGenTextures_ARG_EXPAND); -typedef void (*glGenTextures_PTR)(glGenTextures_ARG_EXPAND); -void gl4es_glGenerateMipmap(glGenerateMipmap_ARG_EXPAND); -typedef void (*glGenerateMipmap_PTR)(glGenerateMipmap_ARG_EXPAND); -void gl4es_glGetActiveAttrib(glGetActiveAttrib_ARG_EXPAND); -typedef void (*glGetActiveAttrib_PTR)(glGetActiveAttrib_ARG_EXPAND); -void gl4es_glGetActiveUniform(glGetActiveUniform_ARG_EXPAND); -typedef void (*glGetActiveUniform_PTR)(glGetActiveUniform_ARG_EXPAND); -void gl4es_glGetAttachedShaders(glGetAttachedShaders_ARG_EXPAND); -typedef void (*glGetAttachedShaders_PTR)(glGetAttachedShaders_ARG_EXPAND); -GLint gl4es_glGetAttribLocation(glGetAttribLocation_ARG_EXPAND); -typedef GLint (*glGetAttribLocation_PTR)(glGetAttribLocation_ARG_EXPAND); -void gl4es_glGetBooleanv(glGetBooleanv_ARG_EXPAND); -typedef void (*glGetBooleanv_PTR)(glGetBooleanv_ARG_EXPAND); -void gl4es_glGetBufferParameteriv(glGetBufferParameteriv_ARG_EXPAND); -typedef void (*glGetBufferParameteriv_PTR)(glGetBufferParameteriv_ARG_EXPAND); -GLenum gl4es_glGetError(glGetError_ARG_EXPAND); -typedef GLenum (*glGetError_PTR)(glGetError_ARG_EXPAND); -void gl4es_glGetFloatv(glGetFloatv_ARG_EXPAND); -typedef void (*glGetFloatv_PTR)(glGetFloatv_ARG_EXPAND); -void gl4es_glGetFramebufferAttachmentParameteriv(glGetFramebufferAttachmentParameteriv_ARG_EXPAND); -typedef void (*glGetFramebufferAttachmentParameteriv_PTR)(glGetFramebufferAttachmentParameteriv_ARG_EXPAND); -void gl4es_glGetIntegerv(glGetIntegerv_ARG_EXPAND); -typedef void (*glGetIntegerv_PTR)(glGetIntegerv_ARG_EXPAND); -void gl4es_glGetProgramInfoLog(glGetProgramInfoLog_ARG_EXPAND); -typedef void (*glGetProgramInfoLog_PTR)(glGetProgramInfoLog_ARG_EXPAND); -void gl4es_glGetProgramiv(glGetProgramiv_ARG_EXPAND); -typedef void (*glGetProgramiv_PTR)(glGetProgramiv_ARG_EXPAND); -void gl4es_glGetRenderbufferParameteriv(glGetRenderbufferParameteriv_ARG_EXPAND); -typedef void (*glGetRenderbufferParameteriv_PTR)(glGetRenderbufferParameteriv_ARG_EXPAND); -void gl4es_glGetShaderInfoLog(glGetShaderInfoLog_ARG_EXPAND); -typedef void (*glGetShaderInfoLog_PTR)(glGetShaderInfoLog_ARG_EXPAND); -void gl4es_glGetShaderPrecisionFormat(glGetShaderPrecisionFormat_ARG_EXPAND); -typedef void (*glGetShaderPrecisionFormat_PTR)(glGetShaderPrecisionFormat_ARG_EXPAND); -void gl4es_glGetShaderSource(glGetShaderSource_ARG_EXPAND); -typedef void (*glGetShaderSource_PTR)(glGetShaderSource_ARG_EXPAND); -void gl4es_glGetShaderiv(glGetShaderiv_ARG_EXPAND); -typedef void (*glGetShaderiv_PTR)(glGetShaderiv_ARG_EXPAND); -const GLubyte * gl4es_glGetString(glGetString_ARG_EXPAND); -typedef const GLubyte * (*glGetString_PTR)(glGetString_ARG_EXPAND); -void gl4es_glGetTexParameterfv(glGetTexParameterfv_ARG_EXPAND); -typedef void (*glGetTexParameterfv_PTR)(glGetTexParameterfv_ARG_EXPAND); -void gl4es_glGetTexParameteriv(glGetTexParameteriv_ARG_EXPAND); -typedef void (*glGetTexParameteriv_PTR)(glGetTexParameteriv_ARG_EXPAND); -GLint gl4es_glGetUniformLocation(glGetUniformLocation_ARG_EXPAND); -typedef GLint (*glGetUniformLocation_PTR)(glGetUniformLocation_ARG_EXPAND); -void gl4es_glGetUniformfv(glGetUniformfv_ARG_EXPAND); -typedef void (*glGetUniformfv_PTR)(glGetUniformfv_ARG_EXPAND); -void gl4es_glGetUniformiv(glGetUniformiv_ARG_EXPAND); -typedef void (*glGetUniformiv_PTR)(glGetUniformiv_ARG_EXPAND); -void gl4es_glGetVertexAttribPointerv(glGetVertexAttribPointerv_ARG_EXPAND); -typedef void (*glGetVertexAttribPointerv_PTR)(glGetVertexAttribPointerv_ARG_EXPAND); -void gl4es_glGetVertexAttribfv(glGetVertexAttribfv_ARG_EXPAND); -typedef void (*glGetVertexAttribfv_PTR)(glGetVertexAttribfv_ARG_EXPAND); -void gl4es_glGetVertexAttribiv(glGetVertexAttribiv_ARG_EXPAND); -typedef void (*glGetVertexAttribiv_PTR)(glGetVertexAttribiv_ARG_EXPAND); -void gl4es_glHint(glHint_ARG_EXPAND); -typedef void (*glHint_PTR)(glHint_ARG_EXPAND); -GLboolean gl4es_glIsBuffer(glIsBuffer_ARG_EXPAND); -typedef GLboolean (*glIsBuffer_PTR)(glIsBuffer_ARG_EXPAND); -GLboolean gl4es_glIsEnabled(glIsEnabled_ARG_EXPAND); -typedef GLboolean (*glIsEnabled_PTR)(glIsEnabled_ARG_EXPAND); -GLboolean gl4es_glIsFramebuffer(glIsFramebuffer_ARG_EXPAND); -typedef GLboolean (*glIsFramebuffer_PTR)(glIsFramebuffer_ARG_EXPAND); -GLboolean gl4es_glIsProgram(glIsProgram_ARG_EXPAND); -typedef GLboolean (*glIsProgram_PTR)(glIsProgram_ARG_EXPAND); -GLboolean gl4es_glIsRenderbuffer(glIsRenderbuffer_ARG_EXPAND); -typedef GLboolean (*glIsRenderbuffer_PTR)(glIsRenderbuffer_ARG_EXPAND); -GLboolean gl4es_glIsShader(glIsShader_ARG_EXPAND); -typedef GLboolean (*glIsShader_PTR)(glIsShader_ARG_EXPAND); -GLboolean gl4es_glIsTexture(glIsTexture_ARG_EXPAND); -typedef GLboolean (*glIsTexture_PTR)(glIsTexture_ARG_EXPAND); -void gl4es_glLineWidth(glLineWidth_ARG_EXPAND); -typedef void (*glLineWidth_PTR)(glLineWidth_ARG_EXPAND); -void gl4es_glLinkProgram(glLinkProgram_ARG_EXPAND); -typedef void (*glLinkProgram_PTR)(glLinkProgram_ARG_EXPAND); -void gl4es_glPixelStorei(glPixelStorei_ARG_EXPAND); -typedef void (*glPixelStorei_PTR)(glPixelStorei_ARG_EXPAND); -void gl4es_glPolygonOffset(glPolygonOffset_ARG_EXPAND); -typedef void (*glPolygonOffset_PTR)(glPolygonOffset_ARG_EXPAND); -void gl4es_glReadPixels(glReadPixels_ARG_EXPAND); -typedef void (*glReadPixels_PTR)(glReadPixels_ARG_EXPAND); -void gl4es_glReleaseShaderCompiler(glReleaseShaderCompiler_ARG_EXPAND); -typedef void (*glReleaseShaderCompiler_PTR)(glReleaseShaderCompiler_ARG_EXPAND); -void gl4es_glRenderbufferStorage(glRenderbufferStorage_ARG_EXPAND); -typedef void (*glRenderbufferStorage_PTR)(glRenderbufferStorage_ARG_EXPAND); -void gl4es_glSampleCoverage(glSampleCoverage_ARG_EXPAND); -typedef void (*glSampleCoverage_PTR)(glSampleCoverage_ARG_EXPAND); -void gl4es_glScissor(glScissor_ARG_EXPAND); -typedef void (*glScissor_PTR)(glScissor_ARG_EXPAND); -void gl4es_glShaderBinary(glShaderBinary_ARG_EXPAND); -typedef void (*glShaderBinary_PTR)(glShaderBinary_ARG_EXPAND); -void gl4es_glShaderSource(glShaderSource_ARG_EXPAND); -typedef void (*glShaderSource_PTR)(glShaderSource_ARG_EXPAND); -void gl4es_glStencilFunc(glStencilFunc_ARG_EXPAND); -typedef void (*glStencilFunc_PTR)(glStencilFunc_ARG_EXPAND); -void gl4es_glStencilFuncSeparate(glStencilFuncSeparate_ARG_EXPAND); -typedef void (*glStencilFuncSeparate_PTR)(glStencilFuncSeparate_ARG_EXPAND); -void gl4es_glStencilMask(glStencilMask_ARG_EXPAND); -typedef void (*glStencilMask_PTR)(glStencilMask_ARG_EXPAND); -void gl4es_glStencilMaskSeparate(glStencilMaskSeparate_ARG_EXPAND); -typedef void (*glStencilMaskSeparate_PTR)(glStencilMaskSeparate_ARG_EXPAND); -void gl4es_glStencilOp(glStencilOp_ARG_EXPAND); -typedef void (*glStencilOp_PTR)(glStencilOp_ARG_EXPAND); -void gl4es_glStencilOpSeparate(glStencilOpSeparate_ARG_EXPAND); -typedef void (*glStencilOpSeparate_PTR)(glStencilOpSeparate_ARG_EXPAND); -void gl4es_glTexImage2D(glTexImage2D_ARG_EXPAND); -typedef void (*glTexImage2D_PTR)(glTexImage2D_ARG_EXPAND); -void gl4es_glTexParameterf(glTexParameterf_ARG_EXPAND); -typedef void (*glTexParameterf_PTR)(glTexParameterf_ARG_EXPAND); -void gl4es_glTexParameterfv(glTexParameterfv_ARG_EXPAND); -typedef void (*glTexParameterfv_PTR)(glTexParameterfv_ARG_EXPAND); -void gl4es_glTexParameteri(glTexParameteri_ARG_EXPAND); -typedef void (*glTexParameteri_PTR)(glTexParameteri_ARG_EXPAND); -void gl4es_glTexParameteriv(glTexParameteriv_ARG_EXPAND); -typedef void (*glTexParameteriv_PTR)(glTexParameteriv_ARG_EXPAND); -void gl4es_glTexSubImage2D(glTexSubImage2D_ARG_EXPAND); -typedef void (*glTexSubImage2D_PTR)(glTexSubImage2D_ARG_EXPAND); -void gl4es_glUniform1f(glUniform1f_ARG_EXPAND); -typedef void (*glUniform1f_PTR)(glUniform1f_ARG_EXPAND); -void gl4es_glUniform1fv(glUniform1fv_ARG_EXPAND); -typedef void (*glUniform1fv_PTR)(glUniform1fv_ARG_EXPAND); -void gl4es_glUniform1i(glUniform1i_ARG_EXPAND); -typedef void (*glUniform1i_PTR)(glUniform1i_ARG_EXPAND); -void gl4es_glUniform1iv(glUniform1iv_ARG_EXPAND); -typedef void (*glUniform1iv_PTR)(glUniform1iv_ARG_EXPAND); -void gl4es_glUniform2f(glUniform2f_ARG_EXPAND); -typedef void (*glUniform2f_PTR)(glUniform2f_ARG_EXPAND); -void gl4es_glUniform2fv(glUniform2fv_ARG_EXPAND); -typedef void (*glUniform2fv_PTR)(glUniform2fv_ARG_EXPAND); -void gl4es_glUniform2i(glUniform2i_ARG_EXPAND); -typedef void (*glUniform2i_PTR)(glUniform2i_ARG_EXPAND); -void gl4es_glUniform2iv(glUniform2iv_ARG_EXPAND); -typedef void (*glUniform2iv_PTR)(glUniform2iv_ARG_EXPAND); -void gl4es_glUniform3f(glUniform3f_ARG_EXPAND); -typedef void (*glUniform3f_PTR)(glUniform3f_ARG_EXPAND); -void gl4es_glUniform3fv(glUniform3fv_ARG_EXPAND); -typedef void (*glUniform3fv_PTR)(glUniform3fv_ARG_EXPAND); -void gl4es_glUniform3i(glUniform3i_ARG_EXPAND); -typedef void (*glUniform3i_PTR)(glUniform3i_ARG_EXPAND); -void gl4es_glUniform3iv(glUniform3iv_ARG_EXPAND); -typedef void (*glUniform3iv_PTR)(glUniform3iv_ARG_EXPAND); -void gl4es_glUniform4f(glUniform4f_ARG_EXPAND); -typedef void (*glUniform4f_PTR)(glUniform4f_ARG_EXPAND); -void gl4es_glUniform4fv(glUniform4fv_ARG_EXPAND); -typedef void (*glUniform4fv_PTR)(glUniform4fv_ARG_EXPAND); -void gl4es_glUniform4i(glUniform4i_ARG_EXPAND); -typedef void (*glUniform4i_PTR)(glUniform4i_ARG_EXPAND); -void gl4es_glUniform4iv(glUniform4iv_ARG_EXPAND); -typedef void (*glUniform4iv_PTR)(glUniform4iv_ARG_EXPAND); -void gl4es_glUniformMatrix2fv(glUniformMatrix2fv_ARG_EXPAND); -typedef void (*glUniformMatrix2fv_PTR)(glUniformMatrix2fv_ARG_EXPAND); -void gl4es_glUniformMatrix3fv(glUniformMatrix3fv_ARG_EXPAND); -typedef void (*glUniformMatrix3fv_PTR)(glUniformMatrix3fv_ARG_EXPAND); -void gl4es_glUniformMatrix4fv(glUniformMatrix4fv_ARG_EXPAND); -typedef void (*glUniformMatrix4fv_PTR)(glUniformMatrix4fv_ARG_EXPAND); -void gl4es_glUseProgram(glUseProgram_ARG_EXPAND); -typedef void (*glUseProgram_PTR)(glUseProgram_ARG_EXPAND); -void gl4es_glValidateProgram(glValidateProgram_ARG_EXPAND); -typedef void (*glValidateProgram_PTR)(glValidateProgram_ARG_EXPAND); -void gl4es_glVertexAttrib1f(glVertexAttrib1f_ARG_EXPAND); -typedef void (*glVertexAttrib1f_PTR)(glVertexAttrib1f_ARG_EXPAND); -void gl4es_glVertexAttrib1fv(glVertexAttrib1fv_ARG_EXPAND); -typedef void (*glVertexAttrib1fv_PTR)(glVertexAttrib1fv_ARG_EXPAND); -void gl4es_glVertexAttrib2f(glVertexAttrib2f_ARG_EXPAND); -typedef void (*glVertexAttrib2f_PTR)(glVertexAttrib2f_ARG_EXPAND); -void gl4es_glVertexAttrib2fv(glVertexAttrib2fv_ARG_EXPAND); -typedef void (*glVertexAttrib2fv_PTR)(glVertexAttrib2fv_ARG_EXPAND); -void gl4es_glVertexAttrib3f(glVertexAttrib3f_ARG_EXPAND); -typedef void (*glVertexAttrib3f_PTR)(glVertexAttrib3f_ARG_EXPAND); -void gl4es_glVertexAttrib3fv(glVertexAttrib3fv_ARG_EXPAND); -typedef void (*glVertexAttrib3fv_PTR)(glVertexAttrib3fv_ARG_EXPAND); -void gl4es_glVertexAttrib4f(glVertexAttrib4f_ARG_EXPAND); -typedef void (*glVertexAttrib4f_PTR)(glVertexAttrib4f_ARG_EXPAND); -void gl4es_glVertexAttrib4fv(glVertexAttrib4fv_ARG_EXPAND); -typedef void (*glVertexAttrib4fv_PTR)(glVertexAttrib4fv_ARG_EXPAND); -void gl4es_glVertexAttribPointer(glVertexAttribPointer_ARG_EXPAND); -typedef void (*glVertexAttribPointer_PTR)(glVertexAttribPointer_ARG_EXPAND); -void gl4es_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 = gl4es_glActiveTexture; \ - 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 = gl4es_glAttachShader; \ - 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 = gl4es_glBindAttribLocation; \ - 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 = gl4es_glBindBuffer; \ - 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 = gl4es_glBindFramebuffer; \ - 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 = gl4es_glBindRenderbuffer; \ - 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 = gl4es_glBindTexture; \ - 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 = gl4es_glBlendColor; \ - 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 = gl4es_glBlendEquation; \ - 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 = gl4es_glBlendEquationSeparate; \ - 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 = gl4es_glBlendFunc; \ - 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 = gl4es_glBlendFuncSeparate; \ - 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 = gl4es_glBufferData; \ - 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 = gl4es_glBufferSubData; \ - 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 = gl4es_glCheckFramebufferStatus; \ - 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 = gl4es_glClear; \ - 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 = gl4es_glClearColor; \ - 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 = gl4es_glClearDepthf; \ - 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 = gl4es_glClearStencil; \ - 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 = gl4es_glColorMask; \ - 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 = gl4es_glCompileShader; \ - 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 = gl4es_glCompressedTexImage2D; \ - 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 = gl4es_glCompressedTexSubImage2D; \ - 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 = gl4es_glCopyTexImage2D; \ - 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 = gl4es_glCopyTexSubImage2D; \ - 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 = gl4es_glCreateProgram; \ - 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 = gl4es_glCreateShader; \ - 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 = gl4es_glCullFace; \ - 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 = gl4es_glDeleteBuffers; \ - 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 = gl4es_glDeleteFramebuffers; \ - 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 = gl4es_glDeleteProgram; \ - 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 = gl4es_glDeleteRenderbuffers; \ - 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 = gl4es_glDeleteShader; \ - 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 = gl4es_glDeleteTextures; \ - 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 = gl4es_glDepthFunc; \ - 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 = gl4es_glDepthMask; \ - 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 = gl4es_glDepthRangef; \ - 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 = gl4es_glDetachShader; \ - 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 = gl4es_glDisable; \ - 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 = gl4es_glDisableVertexAttribArray; \ - 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 = gl4es_glDrawArrays; \ - 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 = gl4es_glDrawElements; \ - 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 = gl4es_glEnable; \ - 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 = gl4es_glEnableVertexAttribArray; \ - 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 = gl4es_glFinish; \ - 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 = gl4es_glFlush; \ - 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 = gl4es_glFramebufferRenderbuffer; \ - 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 = gl4es_glFramebufferTexture2D; \ - 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 = gl4es_glFrontFace; \ - 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 = gl4es_glGenBuffers; \ - 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 = gl4es_glGenFramebuffers; \ - 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 = gl4es_glGenRenderbuffers; \ - 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 = gl4es_glGenTextures; \ - 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 = gl4es_glGenerateMipmap; \ - 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 = gl4es_glGetActiveAttrib; \ - 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 = gl4es_glGetActiveUniform; \ - 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 = gl4es_glGetAttachedShaders; \ - 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 = gl4es_glGetAttribLocation; \ - 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 = gl4es_glGetBooleanv; \ - 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 = gl4es_glGetBufferParameteriv; \ - 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 = gl4es_glGetError; \ - 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 = gl4es_glGetFloatv; \ - 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 = gl4es_glGetFramebufferAttachmentParameteriv; \ - 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 = gl4es_glGetIntegerv; \ - 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 = gl4es_glGetProgramInfoLog; \ - 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 = gl4es_glGetProgramiv; \ - 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 = gl4es_glGetRenderbufferParameteriv; \ - 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 = gl4es_glGetShaderInfoLog; \ - 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 = gl4es_glGetShaderPrecisionFormat; \ - 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 = gl4es_glGetShaderSource; \ - 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 = gl4es_glGetShaderiv; \ - 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 = gl4es_glGetString; \ - 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 = gl4es_glGetTexParameterfv; \ - 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 = gl4es_glGetTexParameteriv; \ - 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 = gl4es_glGetUniformLocation; \ - 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 = gl4es_glGetUniformfv; \ - 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 = gl4es_glGetUniformiv; \ - 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 = gl4es_glGetVertexAttribPointerv; \ - 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 = gl4es_glGetVertexAttribfv; \ - 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 = gl4es_glGetVertexAttribiv; \ - 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 = gl4es_glHint; \ - 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 = gl4es_glIsBuffer; \ - 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 = gl4es_glIsEnabled; \ - 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 = gl4es_glIsFramebuffer; \ - 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 = gl4es_glIsProgram; \ - 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 = gl4es_glIsRenderbuffer; \ - 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 = gl4es_glIsShader; \ - 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 = gl4es_glIsTexture; \ - 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 = gl4es_glLineWidth; \ - 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 = gl4es_glLinkProgram; \ - 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 = gl4es_glPixelStorei; \ - 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 = gl4es_glPolygonOffset; \ - 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 = gl4es_glReadPixels; \ - 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 = gl4es_glReleaseShaderCompiler; \ - 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 = gl4es_glRenderbufferStorage; \ - 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 = gl4es_glSampleCoverage; \ - 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 = gl4es_glScissor; \ - 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 = gl4es_glShaderBinary; \ - 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 = gl4es_glShaderSource; \ - 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 = gl4es_glStencilFunc; \ - 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 = gl4es_glStencilFuncSeparate; \ - 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 = gl4es_glStencilMask; \ - 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 = gl4es_glStencilMaskSeparate; \ - 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 = gl4es_glStencilOp; \ - 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 = gl4es_glStencilOpSeparate; \ - 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 = gl4es_glTexImage2D; \ - 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 = gl4es_glTexParameterf; \ - 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 = gl4es_glTexParameterfv; \ - 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 = gl4es_glTexParameteri; \ - 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 = gl4es_glTexParameteriv; \ - 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 = gl4es_glTexSubImage2D; \ - 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 = gl4es_glUniform1f; \ - 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 = gl4es_glUniform1fv; \ - 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 = gl4es_glUniform1i; \ - 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 = gl4es_glUniform1iv; \ - 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 = gl4es_glUniform2f; \ - 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 = gl4es_glUniform2fv; \ - 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 = gl4es_glUniform2i; \ - 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 = gl4es_glUniform2iv; \ - 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 = gl4es_glUniform3f; \ - 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 = gl4es_glUniform3fv; \ - 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 = gl4es_glUniform3i; \ - 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 = gl4es_glUniform3iv; \ - 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 = gl4es_glUniform4f; \ - 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 = gl4es_glUniform4fv; \ - 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 = gl4es_glUniform4i; \ - 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 = gl4es_glUniform4iv; \ - 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 = gl4es_glUniformMatrix2fv; \ - 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 = gl4es_glUniformMatrix3fv; \ - 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 = gl4es_glUniformMatrix4fv; \ - 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 = gl4es_glUseProgram; \ - 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 = gl4es_glValidateProgram; \ - 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 = gl4es_glVertexAttrib1f; \ - 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 = gl4es_glVertexAttrib1fv; \ - 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 = gl4es_glVertexAttrib2f; \ - 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 = gl4es_glVertexAttrib2fv; \ - 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 = gl4es_glVertexAttrib3f; \ - 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 = gl4es_glVertexAttrib3fv; \ - 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 = gl4es_glVertexAttrib4f; \ - 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 = gl4es_glVertexAttrib4fv; \ - 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 = gl4es_glVertexAttribPointer; \ - 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 = gl4es_glViewport; \ - 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 diff --git a/project/jni/gl4es/src/gl/wrap/glesext.c b/project/jni/gl4es/src/gl/wrap/glesext.c deleted file mode 100755 index 846ec7d78..000000000 --- a/project/jni/gl4es/src/gl/wrap/glesext.c +++ /dev/null @@ -1,253 +0,0 @@ -#ifndef USE_ES2 -#include "gles.h" -#ifndef skip_glBindFramebuffer -void gl4es_glBindFramebuffer(GLenum target, GLuint framebuffer) { - LOAD_GLES_OES(glBindFramebuffer); -#ifndef direct_glBindFramebuffer - PUSH_IF_COMPILING(glBindFramebuffer) -#endif - gles_glBindFramebuffer(target, framebuffer); -} -void glBindFramebuffer(GLenum target, GLuint framebuffer) __attribute__((alias("gl4es_glBindFramebuffer"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glBindRenderbuffer -void gl4es_glBindRenderbuffer(GLenum target, GLuint renderbuffer) { - LOAD_GLES_OES(glBindRenderbuffer); -#ifndef direct_glBindRenderbuffer - PUSH_IF_COMPILING(glBindRenderbuffer) -#endif - gles_glBindRenderbuffer(target, renderbuffer); -} -void glBindRenderbuffer(GLenum target, GLuint renderbuffer) __attribute__((alias("gl4es_glBindRenderbuffer"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glBlendColor -void gl4es_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { - LOAD_GLES_OES(glBlendColor); -#ifndef direct_glBlendColor - PUSH_IF_COMPILING(glBlendColor) -#endif - gles_glBlendColor(red, green, blue, alpha); -} -void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) __attribute__((alias("gl4es_glBlendColor"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glBlendEquation -void gl4es_glBlendEquation(GLenum mode) { - LOAD_GLES_OES(glBlendEquation); -#ifndef direct_glBlendEquation - PUSH_IF_COMPILING(glBlendEquation) -#endif - gles_glBlendEquation(mode); -} -void glBlendEquation(GLenum mode) __attribute__((alias("gl4es_glBlendEquation"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glBlendEquationSeparate -void gl4es_glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) { - LOAD_GLES_OES(glBlendEquationSeparate); -#ifndef direct_glBlendEquationSeparate - PUSH_IF_COMPILING(glBlendEquationSeparate) -#endif - gles_glBlendEquationSeparate(modeRGB, modeA); -} -void glBlendEquationSeparate(GLenum modeRGB, GLenum modeA) __attribute__((alias("gl4es_glBlendEquationSeparate"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glBlendFuncSeparate -void gl4es_glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { - LOAD_GLES_OES(glBlendFuncSeparate); -#ifndef direct_glBlendFuncSeparate - PUSH_IF_COMPILING(glBlendFuncSeparate) -#endif - gles_glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); -} -void glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) __attribute__((alias("gl4es_glBlendFuncSeparate"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glCheckFramebufferStatus -GLenum gl4es_glCheckFramebufferStatus(GLenum target) { - LOAD_GLES_OES(glCheckFramebufferStatus); -#ifndef direct_glCheckFramebufferStatus - PUSH_IF_COMPILING(glCheckFramebufferStatus) -#endif - return gles_glCheckFramebufferStatus(target); -} -GLenum glCheckFramebufferStatus(GLenum target) __attribute__((alias("gl4es_glCheckFramebufferStatus"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glDeleteFramebuffers -void gl4es_glDeleteFramebuffers(GLsizei n, GLuint * framebuffers) { - LOAD_GLES_OES(glDeleteFramebuffers); -#ifndef direct_glDeleteFramebuffers - PUSH_IF_COMPILING(glDeleteFramebuffers) -#endif - gles_glDeleteFramebuffers(n, framebuffers); -} -void glDeleteFramebuffers(GLsizei n, GLuint * framebuffers) __attribute__((alias("gl4es_glDeleteFramebuffers"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glDeleteRenderbuffers -void gl4es_glDeleteRenderbuffers(GLsizei n, GLuint * renderbuffers) { - LOAD_GLES_OES(glDeleteRenderbuffers); -#ifndef direct_glDeleteRenderbuffers - PUSH_IF_COMPILING(glDeleteRenderbuffers) -#endif - gles_glDeleteRenderbuffers(n, renderbuffers); -} -void glDeleteRenderbuffers(GLsizei n, GLuint * renderbuffers) __attribute__((alias("gl4es_glDeleteRenderbuffers"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glDrawTexf -void gl4es_glDrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { - LOAD_GLES_OES(glDrawTexf); -#ifndef direct_glDrawTexf - PUSH_IF_COMPILING(glDrawTexf) -#endif - gles_glDrawTexf(x, y, z, width, height); -} -void glDrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) __attribute__((alias("gl4es_glDrawTexf"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glDrawTexi -void gl4es_glDrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height) { - LOAD_GLES_OES(glDrawTexi); -#ifndef direct_glDrawTexi - PUSH_IF_COMPILING(glDrawTexi) -#endif - gles_glDrawTexi(x, y, z, width, height); -} -void glDrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height) __attribute__((alias("gl4es_glDrawTexi"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glFramebufferRenderbuffer -void gl4es_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { - LOAD_GLES_OES(glFramebufferRenderbuffer); -#ifndef direct_glFramebufferRenderbuffer - PUSH_IF_COMPILING(glFramebufferRenderbuffer) -#endif - gles_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); -} -void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) __attribute__((alias("gl4es_glFramebufferRenderbuffer"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glFramebufferTexture2D -void gl4es_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { - LOAD_GLES_OES(glFramebufferTexture2D); -#ifndef direct_glFramebufferTexture2D - PUSH_IF_COMPILING(glFramebufferTexture2D) -#endif - gles_glFramebufferTexture2D(target, attachment, textarget, texture, level); -} -void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) __attribute__((alias("gl4es_glFramebufferTexture2D"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glGenFramebuffers -void gl4es_glGenFramebuffers(GLsizei n, GLuint * ids) { - LOAD_GLES_OES(glGenFramebuffers); -#ifndef direct_glGenFramebuffers - PUSH_IF_COMPILING(glGenFramebuffers) -#endif - gles_glGenFramebuffers(n, ids); -} -void glGenFramebuffers(GLsizei n, GLuint * ids) __attribute__((alias("gl4es_glGenFramebuffers"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glGenRenderbuffers -void gl4es_glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) { - LOAD_GLES_OES(glGenRenderbuffers); -#ifndef direct_glGenRenderbuffers - PUSH_IF_COMPILING(glGenRenderbuffers) -#endif - gles_glGenRenderbuffers(n, renderbuffers); -} -void glGenRenderbuffers(GLsizei n, GLuint * renderbuffers) __attribute__((alias("gl4es_glGenRenderbuffers"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glGenerateMipmap -void gl4es_glGenerateMipmap(GLenum target) { - LOAD_GLES_OES(glGenerateMipmap); -#ifndef direct_glGenerateMipmap - PUSH_IF_COMPILING(glGenerateMipmap) -#endif - gles_glGenerateMipmap(target); -} -void glGenerateMipmap(GLenum target) __attribute__((alias("gl4es_glGenerateMipmap"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glGetFramebufferAttachmentParameteriv -void gl4es_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) { - LOAD_GLES_OES(glGetFramebufferAttachmentParameteriv); -#ifndef direct_glGetFramebufferAttachmentParameteriv - PUSH_IF_COMPILING(glGetFramebufferAttachmentParameteriv) -#endif - gles_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); -} -void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetFramebufferAttachmentParameteriv"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glGetRenderbufferParameteriv -void gl4es_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) { - LOAD_GLES_OES(glGetRenderbufferParameteriv); -#ifndef direct_glGetRenderbufferParameteriv - PUSH_IF_COMPILING(glGetRenderbufferParameteriv) -#endif - gles_glGetRenderbufferParameteriv(target, pname, params); -} -void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params) __attribute__((alias("gl4es_glGetRenderbufferParameteriv"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glIsFramebuffer -GLboolean gl4es_glIsFramebuffer(GLuint framebuffer) { - LOAD_GLES_OES(glIsFramebuffer); -#ifndef direct_glIsFramebuffer - PUSH_IF_COMPILING(glIsFramebuffer) -#endif - return gles_glIsFramebuffer(framebuffer); -} -GLboolean glIsFramebuffer(GLuint framebuffer) __attribute__((alias("gl4es_glIsFramebuffer"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glIsRenderbuffer -GLboolean gl4es_glIsRenderbuffer(GLuint renderbuffer) { - LOAD_GLES_OES(glIsRenderbuffer); -#ifndef direct_glIsRenderbuffer - PUSH_IF_COMPILING(glIsRenderbuffer) -#endif - return gles_glIsRenderbuffer(renderbuffer); -} -GLboolean glIsRenderbuffer(GLuint renderbuffer) __attribute__((alias("gl4es_glIsRenderbuffer"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glMultiDrawArrays -void gl4es_glMultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount) { - LOAD_GLES_OES(glMultiDrawArrays); -#ifndef direct_glMultiDrawArrays - PUSH_IF_COMPILING(glMultiDrawArrays) -#endif - gles_glMultiDrawArrays(mode, first, count, primcount); -} -void glMultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount) __attribute__((alias("gl4es_glMultiDrawArrays"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glMultiDrawElements -void gl4es_glMultiDrawElements(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount) { - LOAD_GLES_OES(glMultiDrawElements); -#ifndef direct_glMultiDrawElements - PUSH_IF_COMPILING(glMultiDrawElements) -#endif - gles_glMultiDrawElements(mode, count, type, indices, primcount); -} -void glMultiDrawElements(GLenum mode, GLsizei * count, GLenum type, const void * const * indices, GLsizei primcount) __attribute__((alias("gl4es_glMultiDrawElements"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glRenderbufferStorage -void gl4es_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { - LOAD_GLES_OES(glRenderbufferStorage); -#ifndef direct_glRenderbufferStorage - PUSH_IF_COMPILING(glRenderbufferStorage) -#endif - gles_glRenderbufferStorage(target, internalformat, width, height); -} -void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) __attribute__((alias("gl4es_glRenderbufferStorage"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glTexGenfv -void gl4es_glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) { - LOAD_GLES_OES(glTexGenfv); -#ifndef direct_glTexGenfv - PUSH_IF_COMPILING(glTexGenfv) -#endif - gles_glTexGenfv(coord, pname, params); -} -void glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) __attribute__((alias("gl4es_glTexGenfv"))) __attribute__((visibility("default"))); -#endif -#ifndef skip_glTexGeni -void gl4es_glTexGeni(GLenum coord, GLenum pname, GLint param) { - LOAD_GLES_OES(glTexGeni); -#ifndef direct_glTexGeni - PUSH_IF_COMPILING(glTexGeni) -#endif - gles_glTexGeni(coord, pname, param); -} -void glTexGeni(GLenum coord, GLenum pname, GLint param) __attribute__((alias("gl4es_glTexGeni"))) __attribute__((visibility("default"))); -#endif -#endif diff --git a/project/jni/gl4es/src/gl/wrap/glstub.c b/project/jni/gl4es/src/gl/wrap/glstub.c index a7657ede3..560a249c4 100755 --- a/project/jni/gl4es/src/gl/wrap/glstub.c +++ b/project/jni/gl4es/src/gl/wrap/glstub.c @@ -47,7 +47,7 @@ STUB(void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha) STUB(void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) */ STUB(void,glClearAccum,(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)); -STUB(void,glColorMaterial,(GLenum face, GLenum mode)); +//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)); diff --git a/project/jni/gl4es/src/gl/wrap/stub.h b/project/jni/gl4es/src/gl/wrap/stub.h index 08ac21ca2..eac60e038 100755 --- a/project/jni/gl4es/src/gl/wrap/stub.h +++ b/project/jni/gl4es/src/gl/wrap/stub.h @@ -5,7 +5,7 @@ void gl4es_glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha); //void gl4es_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); void gl4es_glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -void gl4es_glColorMaterial(GLenum face, GLenum mode); +//void gl4es_glColorMaterial(GLenum face, GLenum mode); void gl4es_glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); void gl4es_glDrawBuffer(GLenum mode); void gl4es_glEdgeFlag(GLboolean flag); diff --git a/project/jni/gl4es/src/glx/glx.c b/project/jni/gl4es/src/glx/glx.c index 17ee72938..4459da6e3 100755 --- a/project/jni/gl4es/src/glx/glx.c +++ b/project/jni/gl4es/src/glx/glx.c @@ -19,13 +19,11 @@ #include "glx.h" #include "utils.h" -//#include #include "../gl/gl.h" #include "../glx/streaming.h" #include "khash.h" #include "hardext.h" -//#define EXPORT __attribute__((visibility("default"))) #ifndef AliasExport #define AliasExport(name) __attribute__((alias(name))) __attribute__((visibility("default"))) #endif @@ -829,7 +827,7 @@ not set to EGL_NO_CONTEXT. Bool gl4es_glXMakeCurrent(Display *display, GLXDrawable drawable, GLXContext context) { - DBG(printf("glXMakeCurrent(%p, %p, %p) 'isPBuffer(drawable)=%d\n", display, drawable, context, isPBuffer(drawable));) + DBG(printf("glXMakeCurrent(%p, %p, %p) 'isPBuffer(drawable)=%d, context->drawable=%p, context->eglSurface=%p\n", display, drawable, context, isPBuffer(drawable), context?context->drawable:0, context?context->eglSurface:0);) LOAD_EGL(eglMakeCurrent); LOAD_EGL(eglDestroySurface); LOAD_EGL(eglCreateWindowSurface); diff --git a/project/jni/gl4es/src/glx/hardext.c b/project/jni/gl4es/src/glx/hardext.c index 177e3b52d..f5d9dfd1e 100755 --- a/project/jni/gl4es/src/glx/hardext.c +++ b/project/jni/gl4es/src/glx/hardext.c @@ -118,7 +118,7 @@ void GetHardwareExtensions(int notest) S("GL_OES_depth24", depth24, 1); S("GL_OES_rgb8_rgba8", rgba8, 1); S("GL_EXT_multi_draw_arrays", multidraw, 1); - S("GL_EXT_texture_format_BGRA8888", bgra8888, 0); + S("GL_EXT_texture_format_BGRA8888", bgra8888, 1); S("GL_OES_depth_texture", depthtex, 1); S("GL_OES_texture_cube_map", cubemap, 1); @@ -138,7 +138,7 @@ void GetHardwareExtensions(int notest) #endif if(strstr(egl_eglQueryString(eglDisplay, EGL_EXTENSIONS), "EGL_KHR_gl_colorspace")) { - LOGD("LIBGL: sRGB surface supported\n"); + SHUT(LOGD("LIBGL: sRGB surface supported\n")); hardext.srgb = 1; } diff --git a/project/jni/gl4es/src/glx/lookup.c b/project/jni/gl4es/src/glx/lookup.c index d52f5bc2b..502b35325 100755 --- a/project/jni/gl4es/src/glx/lookup.c +++ b/project/jni/gl4es/src/glx/lookup.c @@ -485,7 +485,7 @@ EXPORT void *glXGetProcAddressARB(const char *name) { STUB(glAccum); STUB(glAreTexturesResident); STUB(glClearAccum); - STUB(glColorMaterial); + _EX(glColorMaterial); _EX(glCopyTexSubImage3D); // It's a stub, calling the 2D one STUB(glFeedbackBuffer); STUB(glGetClipPlane); diff --git a/project/jni/gl4es/version.h b/project/jni/gl4es/version.h index 422ec3521..60cb729aa 100755 --- a/project/jni/gl4es/version.h +++ b/project/jni/gl4es/version.h @@ -3,6 +3,6 @@ #define MAJOR 0 #define MINOR 9 -#define REVISION 3 +#define REVISION 4 -#endif //_GL4ES_VERSION_H \ No newline at end of file +#endif //_GL4ES_VERSION_H diff --git a/project/jni/miniupnpc/include/miniupnpc b/project/jni/miniupnpc/include/miniupnpc new file mode 120000 index 000000000..945c9b46d --- /dev/null +++ b/project/jni/miniupnpc/include/miniupnpc @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/project/jni/shmem b/project/jni/shmem index c2a28f528..f6b49516c 160000 --- a/project/jni/shmem +++ b/project/jni/shmem @@ -1 +1 @@ -Subproject commit c2a28f528d0b1b2528dda125e8fe8018609e7e9a +Subproject commit f6b49516cf4b13f455a19ec989626be5472830c5 diff --git a/readme.txt b/readme.txt index 4f6ed16bc..e1c7b7855 100644 --- a/readme.txt +++ b/readme.txt @@ -18,10 +18,11 @@ On RPM based distros they are usually called java-x.x.x-openjdk and java-x.x.x-o On Debian or Ubuntu you install them like this: sudo apt-get install openjdk-8-jdk ant The application will run on Android 2.3 and above, but will use features from Android 6.0 if available. The most supported environment for this port is Linux, MacOs should be okay too. -If you're developing under Windows you'd better install Portable Ubuntu, to get proper Linux environment -running inside Windows, then install Linux toolchain on it. +If you're developing under Windows, you will need to install some Linux environment, +such as Bash shell on Windows 10, or Portable Ubuntu, then install Linux toolchain on it. +https://msdn.microsoft.com/en-us/commandline/wsl/install_guide https://sourceforge.net/projects/portableubuntu/ -Cygwin is not supported by the NDK, starting from the NDK r6. +Cygwin is not supported by the NDK. How to compile demo application