aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorJulien Cristau <[email protected]>2008-07-01 13:17:44 +0200
committerJulien Cristau <[email protected]>2008-07-01 13:18:27 +0200
commit374be37dd904b8dc7b91b4b782a6b7b46b00afba (patch)
tree2562d5fcf4183bdc67d6c418513e1f562dddfe20 /src/mesa/main
parent2b831e73f5027850837e613636915c7dd6c7078a (diff)
parentd3f7b463c3975c070503053e4ad70af99016a756 (diff)
Merge branch 'master' of git.freedesktop.org:/git/mesa/mesa into debian-experimental
Conflicts: .gitignore Makefile bin/mklib configs/.gitignore configs/default configs/freebsd configs/freebsd-dri configs/linux-osmesa configs/linux-osmesa16 configs/linux-osmesa16-static configs/linux-osmesa32 docs/download.html docs/install.html docs/news.html docs/relnotes.html doxygen/Makefile doxygen/doxy.bat doxygen/header.html doxygen/header_subset.html include/GL/internal/dri_interface.h progs/demos/.gitignore progs/directfb/Makefile progs/egl/Makefile progs/fbdev/Makefile progs/fbdev/glfbdevtest.c progs/fp/Makefile progs/glsl/.gitignore progs/glsl/Makefile progs/glsl/bump.c progs/glsl/mandelbrot.c progs/glsl/noise.c progs/glsl/toyball.c progs/miniglx/Makefile progs/samples/.gitignore progs/slang/Makefile progs/tests/.gitignore progs/tests/Makefile progs/tests/arbnpot.c progs/tests/cva.c progs/tests/dinoshade.c progs/tests/drawbuffers.c progs/tests/fbotest2.c progs/tests/fbotexture.c progs/tests/getprocaddress.c progs/tests/mipmap_limits.c progs/tests/multipal.c progs/tests/texline.c progs/tools/trace/Makefile progs/trivial/Makefile progs/trivial/dlist-edgeflag-dangling.c progs/trivial/dlist-edgeflag.c progs/trivial/point-param.c progs/trivial/quad-clip-nearplane.c progs/trivial/tri.c progs/vp/Makefile progs/xdemos/.gitignore progs/xdemos/Makefile progs/xdemos/glthreads.c src/egl/Makefile src/egl/drivers/demo/Makefile src/egl/drivers/dri/Makefile src/egl/main/Makefile src/glu/mesa/Makefile src/glu/mesa/Makefile.m32 src/glu/mesa/project.c src/glu/mini/project.c src/glut/directfb/Makefile src/glut/directfb/callback.c src/glut/directfb/events.c src/glut/directfb/internal.h src/glut/directfb/window.c src/glut/os2/Makefile src/glut/os2/WarpWin.cpp src/glut/os2/glutOverlay.cpp src/glut/os2/glut_8x13.cpp src/glut/os2/glut_9x15.cpp src/glut/os2/glut_bitmap.cpp src/glut/os2/glut_cindex.cpp src/glut/os2/glut_cmap.cpp src/glut/os2/glut_cursor.cpp src/glut/os2/glut_event.cpp src/glut/os2/glut_ext.cpp src/glut/os2/glut_fullscrn.cpp src/glut/os2/glut_gamemode.cpp src/glut/os2/glut_get.cpp src/glut/os2/glut_hel10.cpp src/glut/os2/glut_hel12.cpp src/glut/os2/glut_hel18.cpp src/glut/os2/glut_init.cpp src/glut/os2/glut_input.cpp src/glut/os2/glut_key.cpp src/glut/os2/glut_keyctrl.cpp src/glut/os2/glut_keyup.cpp src/glut/os2/glut_mesa.cpp src/glut/os2/glut_modifier.cpp src/glut/os2/glut_roman.cpp src/glut/os2/glut_shapes.cpp src/glut/os2/glut_stroke.cpp src/glut/os2/glut_swap.cpp src/glut/os2/glut_teapot.cpp src/glut/os2/glut_tr24.cpp src/glut/os2/glut_util.cpp src/glut/os2/glut_vidresize.cpp src/glut/os2/glut_warp.cpp src/glut/os2/glut_win.cpp src/glut/os2/glut_winmisc.cpp src/glut/os2/glutbitmap.h src/glut/os2/glutstroke.h src/glut/os2/layerutil.h src/glut/os2/libGlut.DEF src/glut/os2/os2_glx.cpp src/glut/os2/os2_menu.cpp src/glut/os2/os2_winproc.cpp src/glw/Makefile src/glx/mini/Makefile src/glx/mini/miniglx.c src/glx/x11/glxext.c src/mesa/Makefile src/mesa/drivers/allegro/amesa.c src/mesa/drivers/allegro/direct.h src/mesa/drivers/allegro/generic.h src/mesa/drivers/d3d/D3DCAPS.CPP src/mesa/drivers/d3d/D3DHAL.H src/mesa/drivers/d3d/D3DInit.cpp src/mesa/drivers/d3d/D3DMESA.H src/mesa/drivers/d3d/D3DRaster.cpp src/mesa/drivers/d3d/D3DTEXT.CPP src/mesa/drivers/d3d/D3DTextureMgr.cpp src/mesa/drivers/d3d/D3DTextureMgr.h src/mesa/drivers/d3d/D3DUTILS.CPP src/mesa/drivers/d3d/DDrawPROCS.c src/mesa/drivers/d3d/DEBUG.C src/mesa/drivers/d3d/DEBUG.H src/mesa/drivers/d3d/DbgEnv.bat src/mesa/drivers/d3d/MAKEFILE src/mesa/drivers/d3d/OPENGL32.DEF src/mesa/drivers/d3d/WGL.C src/mesa/drivers/dri/Makefile.template src/mesa/drivers/dri/common/dri_bufmgr.c src/mesa/drivers/dri/common/dri_drmpool.c src/mesa/drivers/dri/common/dri_util.c src/mesa/drivers/dri/common/dri_util.h src/mesa/drivers/dri/common/xmlconfig.c src/mesa/drivers/dri/glcore/Makefile src/mesa/drivers/dri/i915/i915_fragprog.c src/mesa/drivers/dri/i915/i915_program.h src/mesa/drivers/dri/i915/i915_texprog.c src/mesa/drivers/dri/i915/i915_texstate.c src/mesa/drivers/dri/i915/i915_vtbl.c src/mesa/drivers/dri/i915/intel_context.c src/mesa/drivers/dri/i915/intel_context.h src/mesa/drivers/dri/i915/intel_pixel.c src/mesa/drivers/dri/i915/intel_render.c src/mesa/drivers/dri/i915/intel_screen.c src/mesa/drivers/dri/i915/intel_state.c src/mesa/drivers/dri/i915/intel_tex.c src/mesa/drivers/dri/i915/intel_tris.c src/mesa/drivers/dri/i915tex/i830_reg.h src/mesa/drivers/dri/i915tex/i830_texstate.c src/mesa/drivers/dri/i915tex/i830_vtbl.c src/mesa/drivers/dri/i915tex/i915_fragprog.c src/mesa/drivers/dri/i915tex/i915_metaops.c src/mesa/drivers/dri/i915tex/i915_tex_layout.c src/mesa/drivers/dri/i915tex/i915_texstate.c src/mesa/drivers/dri/i915tex/i915_vtbl.c src/mesa/drivers/dri/i915tex/intel_render.c src/mesa/drivers/dri/i915tex/intel_screen.c src/mesa/drivers/dri/i915tex/intel_tris.c src/mesa/drivers/dri/i965/brw_aub.c src/mesa/drivers/dri/i965/brw_aub_playback.c src/mesa/drivers/dri/i965/brw_cc.c src/mesa/drivers/dri/i965/brw_clip.c src/mesa/drivers/dri/i965/brw_clip_state.c src/mesa/drivers/dri/i965/brw_clip_util.c src/mesa/drivers/dri/i965/brw_context.c src/mesa/drivers/dri/i965/brw_curbe.c src/mesa/drivers/dri/i965/brw_defines.h src/mesa/drivers/dri/i965/brw_draw.c src/mesa/drivers/dri/i965/brw_draw_upload.c src/mesa/drivers/dri/i965/brw_eu.h src/mesa/drivers/dri/i965/brw_eu_emit.c src/mesa/drivers/dri/i965/brw_gs_state.c src/mesa/drivers/dri/i965/brw_misc_state.c src/mesa/drivers/dri/i965/brw_sf_emit.c src/mesa/drivers/dri/i965/brw_sf_state.c src/mesa/drivers/dri/i965/brw_state_cache.c src/mesa/drivers/dri/i965/brw_state_pool.c src/mesa/drivers/dri/i965/brw_tex.c src/mesa/drivers/dri/i965/brw_tex_layout.c src/mesa/drivers/dri/i965/brw_vs_state.c src/mesa/drivers/dri/i965/brw_vs_tnl.c src/mesa/drivers/dri/i965/brw_wm.c src/mesa/drivers/dri/i965/brw_wm.h src/mesa/drivers/dri/i965/brw_wm_glsl.c src/mesa/drivers/dri/i965/brw_wm_sampler_state.c src/mesa/drivers/dri/i965/brw_wm_state.c src/mesa/drivers/dri/i965/brw_wm_surface_state.c src/mesa/drivers/dri/i965/bufmgr_fake.c src/mesa/drivers/dri/i965/intel_batchbuffer.c src/mesa/drivers/dri/i965/intel_batchbuffer.h src/mesa/drivers/dri/i965/intel_blit.c src/mesa/drivers/dri/i965/intel_blit.h src/mesa/drivers/dri/i965/intel_buffers.c src/mesa/drivers/dri/i965/intel_context.c src/mesa/drivers/dri/i965/intel_context.h src/mesa/drivers/dri/i965/intel_mipmap_tree.c src/mesa/drivers/dri/i965/intel_mipmap_tree.h src/mesa/drivers/dri/i965/intel_pixel_bitmap.c src/mesa/drivers/dri/i965/intel_pixel_copy.c src/mesa/drivers/dri/i965/intel_screen.c src/mesa/drivers/dri/i965/intel_tex_validate.c src/mesa/drivers/dri/i965/server/i830_common.h src/mesa/drivers/dri/intel/intel_batchbuffer.c src/mesa/drivers/dri/intel/intel_batchbuffer.h src/mesa/drivers/dri/intel/intel_blit.c src/mesa/drivers/dri/intel/intel_buffers.c src/mesa/drivers/dri/intel/intel_context.c src/mesa/drivers/dri/intel/intel_context.h src/mesa/drivers/dri/intel/intel_mipmap_tree.c src/mesa/drivers/dri/intel/intel_mipmap_tree.h src/mesa/drivers/dri/intel/intel_screen.h src/mesa/drivers/dri/r200/r200_texstate.c src/mesa/drivers/dri/r300/r300_cmdbuf.c src/mesa/drivers/dri/r300/r300_context.h src/mesa/drivers/dri/r300/r300_ioctl.c src/mesa/drivers/dri/r300/r300_reg.h src/mesa/drivers/dri/r300/r300_state.c src/mesa/drivers/dri/r300/r300_tex.h src/mesa/drivers/dri/r300/r300_texstate.c src/mesa/drivers/dri/radeon/radeon_screen.c src/mesa/drivers/windows/gdi/wmesa.c src/mesa/drivers/x11/fakeglx.c src/mesa/drivers/x11/xm_dd.c src/mesa/glapi/Makefile src/mesa/glapi/dispatch.h src/mesa/glapi/glapioffsets.h src/mesa/glapi/glapitable.h src/mesa/glapi/glapitemp.h src/mesa/glapi/glprocs.h src/mesa/main/api_validate.c src/mesa/main/attrib.c src/mesa/main/config.h src/mesa/main/context.c src/mesa/main/context.h src/mesa/main/dlist.c src/mesa/main/drawpix.c src/mesa/main/enums.c src/mesa/main/fbobject.c src/mesa/main/image.c src/mesa/main/imports.h src/mesa/main/mtypes.h src/mesa/main/points.c src/mesa/main/state.c src/mesa/main/texcompress_fxt1.c src/mesa/main/texenvprogram.c src/mesa/main/teximage.c src/mesa/main/texobj.c src/mesa/main/texstate.c src/mesa/main/version.h src/mesa/shader/prog_execute.c src/mesa/shader/program.c src/mesa/shader/shader_api.c src/mesa/shader/slang/library/slang_core.gc src/mesa/shader/slang/library/slang_core_gc.h src/mesa/shader/slang/slang_codegen.c src/mesa/sources src/mesa/sparc/glapi_sparc.S src/mesa/swrast/s_aalinetemp.h src/mesa/swrast/s_aatriangle.c src/mesa/swrast/s_aatritemp.h src/mesa/swrast/s_context.c src/mesa/swrast/s_copypix.c src/mesa/swrast/s_drawpix.c src/mesa/swrast/s_fragprog.c src/mesa/swrast/s_pointtemp.h src/mesa/swrast/s_readpix.c src/mesa/swrast/s_span.c src/mesa/swrast/s_texfilter.c src/mesa/swrast/s_tritemp.h src/mesa/swrast/s_zoom.c src/mesa/tnl/t_draw.c src/mesa/tnl/t_vb_fog.c src/mesa/tnl/t_vb_program.c src/mesa/tnl/t_vp_build.c src/mesa/vbo/vbo_split_copy.c src/mesa/x86-64/xform4.S src/mesa/x86/common_x86.c src/mesa/x86/glapi_x86.S windows/VC6/mesa/mesa/mesa.dsp
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/api_arrayelt.c4
-rw-r--r--src/mesa/main/api_loopback.c8
-rw-r--r--src/mesa/main/api_noop.c2
-rw-r--r--src/mesa/main/api_validate.c2
-rw-r--r--src/mesa/main/arrayobj.c2
-rw-r--r--src/mesa/main/attrib.c127
-rw-r--r--src/mesa/main/attrib.h16
-rw-r--r--src/mesa/main/bufferobj.c311
-rw-r--r--src/mesa/main/bufferobj.h36
-rw-r--r--src/mesa/main/buffers.c218
-rw-r--r--src/mesa/main/buffers.h7
-rw-r--r--src/mesa/main/colortab.c306
-rw-r--r--src/mesa/main/config.h47
-rw-r--r--src/mesa/main/context.c122
-rw-r--r--src/mesa/main/context.h4
-rw-r--r--src/mesa/main/dd.h12
-rw-r--r--src/mesa/main/depth.c34
-rw-r--r--src/mesa/main/descrip.mms25
-rw-r--r--src/mesa/main/dlist.c301
-rw-r--r--src/mesa/main/drawpix.c55
-rw-r--r--src/mesa/main/enable.c16
-rw-r--r--src/mesa/main/enums.c5327
-rw-r--r--src/mesa/main/execmem.c24
-rw-r--r--src/mesa/main/extensions.c6
-rw-r--r--src/mesa/main/fbobject.c55
-rw-r--r--src/mesa/main/fbobject.h4
-rw-r--r--src/mesa/main/framebuffer.c160
-rw-r--r--src/mesa/main/get.c48
-rw-r--r--src/mesa/main/get_gen.py6
-rw-r--r--src/mesa/main/getstring.c10
-rw-r--r--src/mesa/main/glheader.h50
-rw-r--r--src/mesa/main/hash.c2
-rw-r--r--src/mesa/main/image.c24
-rw-r--r--src/mesa/main/image.h6
-rw-r--r--src/mesa/main/imports.c6
-rw-r--r--src/mesa/main/imports.h5
-rw-r--r--src/mesa/main/lines.c8
-rw-r--r--src/mesa/main/mipmap.c204
-rw-r--r--src/mesa/main/mipmap.h1
-rw-r--r--src/mesa/main/mtypes.h149
-rw-r--r--src/mesa/main/points.c16
-rw-r--r--src/mesa/main/sources138
-rw-r--r--src/mesa/main/state.c69
-rw-r--r--src/mesa/main/texcompress_fxt1.c17
-rw-r--r--src/mesa/main/texenvprogram.c76
-rw-r--r--src/mesa/main/teximage.c253
-rw-r--r--src/mesa/main/teximage.h11
-rw-r--r--src/mesa/main/texobj.c125
-rw-r--r--src/mesa/main/texobj.h7
-rw-r--r--src/mesa/main/texrender.c45
-rw-r--r--src/mesa/main/texstate.c202
-rw-r--r--src/mesa/main/texstate.h8
-rw-r--r--src/mesa/main/texstore.c64
-rw-r--r--src/mesa/main/texstore.h4
-rw-r--r--src/mesa/main/varray.c27
-rw-r--r--src/mesa/main/varray.h5
-rw-r--r--src/mesa/main/version.h10
-rw-r--r--src/mesa/main/vtxfmt_tmp.h4
58 files changed, 4794 insertions, 4037 deletions
diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c
index 1899975213f..72091b0789c 100644
--- a/src/mesa/main/api_arrayelt.c
+++ b/src/mesa/main/api_arrayelt.c
@@ -31,8 +31,8 @@
#include "context.h"
#include "imports.h"
#include "macros.h"
-#include "glapioffsets.h"
-#include "dispatch.h"
+#include "glapi/glapioffsets.h"
+#include "glapi/dispatch.h"
typedef void (GLAPIENTRY *array_func)( const void * );
diff --git a/src/mesa/main/api_loopback.c b/src/mesa/main/api_loopback.c
index efe5a77d581..924d7134a27 100644
--- a/src/mesa/main/api_loopback.c
+++ b/src/mesa/main/api_loopback.c
@@ -30,14 +30,14 @@
#include "glheader.h"
-#include "glapi.h"
-#include "glapitable.h"
#include "macros.h"
#include "colormac.h"
#include "api_loopback.h"
-#include "glthread.h"
#include "mtypes.h"
-#include "dispatch.h"
+#include "glapi/glapi.h"
+#include "glapi/glapitable.h"
+#include "glapi/glthread.h"
+#include "glapi/dispatch.h"
/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc
* calls to a smaller set of driver-provided formats. Currently just
diff --git a/src/mesa/main/api_noop.c b/src/mesa/main/api_noop.c
index 0c1a35361f1..3df64362eab 100644
--- a/src/mesa/main/api_noop.c
+++ b/src/mesa/main/api_noop.c
@@ -31,7 +31,7 @@
#include "light.h"
#include "macros.h"
#include "dlist.h"
-#include "dispatch.h"
+#include "glapi/dispatch.h"
/**
diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index 7d75cd796bc..74b0912bef6 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.2
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index d601ee461e6..f08f99d8e17 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -46,7 +46,7 @@
#include "bufferobj.h"
#endif
#include "arrayobj.h"
-#include "dispatch.h"
+#include "glapi/dispatch.h"
/**
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index 8ddfda8ba04..c3c1f927fd2 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.2
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -47,10 +47,10 @@
#include "stencil.h"
#include "texobj.h"
#include "texstate.h"
+#include "varray.h"
#include "mtypes.h"
#include "math/m_xform.h"
-
/**
* Special struct for saving/restoring texture state (GL_TEXTURE_BIT)
*/
@@ -59,21 +59,13 @@ struct texture_state
struct gl_texture_attrib Texture; /**< The usual context state */
/** to save per texture object state (wrap modes, filters, etc): */
- struct gl_texture_object Saved1D[MAX_TEXTURE_UNITS];
- struct gl_texture_object Saved2D[MAX_TEXTURE_UNITS];
- struct gl_texture_object Saved3D[MAX_TEXTURE_UNITS];
- struct gl_texture_object SavedCube[MAX_TEXTURE_UNITS];
- struct gl_texture_object SavedRect[MAX_TEXTURE_UNITS];
+ struct gl_texture_object SavedObj[MAX_TEXTURE_UNITS][NUM_TEXTURE_TARGETS];
/**
* To save references to texture objects (so they don't get accidentally
* deleted while saved in the attribute stack).
*/
- struct gl_texture_object *SavedRef1D[MAX_TEXTURE_UNITS];
- struct gl_texture_object *SavedRef2D[MAX_TEXTURE_UNITS];
- struct gl_texture_object *SavedRef3D[MAX_TEXTURE_UNITS];
- struct gl_texture_object *SavedRefCube[MAX_TEXTURE_UNITS];
- struct gl_texture_object *SavedRefRect[MAX_TEXTURE_UNITS];
+ struct gl_texture_object *SavedTexRef[MAX_TEXTURE_UNITS][NUM_TEXTURE_TARGETS];
};
@@ -124,9 +116,13 @@ _mesa_PushAttrib(GLbitfield mask)
}
if (mask & GL_COLOR_BUFFER_BIT) {
+ GLuint i;
struct gl_colorbuffer_attrib *attr;
attr = MALLOC_STRUCT( gl_colorbuffer_attrib );
MEMCPY( attr, &ctx->Color, sizeof(struct gl_colorbuffer_attrib) );
+ /* push the Draw FBO's DrawBuffer[] state, not ctx->Color.DrawBuffer[] */
+ for (i = 0; i < ctx->Const.MaxDrawBuffers; i ++)
+ attr->DrawBuffer[i] = ctx->DrawBuffer->ColorDrawBuffer[i];
newnode = new_attrib_node( GL_COLOR_BUFFER_BIT );
newnode->data = attr;
newnode->next = head;
@@ -361,7 +357,7 @@ _mesa_PushAttrib(GLbitfield mask)
}
if (mask & GL_TEXTURE_BIT) {
- struct texture_state *texstate = CALLOC_STRUCT( texture_state );
+ struct texture_state *texstate = CALLOC_STRUCT(texture_state);
GLuint u;
if (!texstate) {
@@ -378,25 +374,38 @@ _mesa_PushAttrib(GLbitfield mask)
* accidentally get deleted while referenced in the attribute stack.
*/
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
- _mesa_reference_texobj(&texstate->SavedRef1D[u], ctx->Texture.Unit[u].Current1D);
- _mesa_reference_texobj(&texstate->SavedRef2D[u], ctx->Texture.Unit[u].Current2D);
- _mesa_reference_texobj(&texstate->SavedRef3D[u], ctx->Texture.Unit[u].Current3D);
- _mesa_reference_texobj(&texstate->SavedRefCube[u], ctx->Texture.Unit[u].CurrentCubeMap);
- _mesa_reference_texobj(&texstate->SavedRefRect[u], ctx->Texture.Unit[u].CurrentRect);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_1D_INDEX],
+ ctx->Texture.Unit[u].Current1D);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_2D_INDEX],
+ ctx->Texture.Unit[u].Current2D);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_3D_INDEX],
+ ctx->Texture.Unit[u].Current3D);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_CUBE_INDEX],
+ ctx->Texture.Unit[u].CurrentCubeMap);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_RECT_INDEX],
+ ctx->Texture.Unit[u].CurrentRect);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_1D_ARRAY_INDEX],
+ ctx->Texture.Unit[u].Current1DArray);
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][TEXTURE_2D_ARRAY_INDEX],
+ ctx->Texture.Unit[u].Current2DArray);
}
/* copy state/contents of the currently bound texture objects */
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
- _mesa_copy_texture_object(&texstate->Saved1D[u],
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_1D_INDEX],
ctx->Texture.Unit[u].Current1D);
- _mesa_copy_texture_object(&texstate->Saved2D[u],
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_2D_INDEX],
ctx->Texture.Unit[u].Current2D);
- _mesa_copy_texture_object(&texstate->Saved3D[u],
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_3D_INDEX],
ctx->Texture.Unit[u].Current3D);
- _mesa_copy_texture_object(&texstate->SavedCube[u],
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_CUBE_INDEX],
ctx->Texture.Unit[u].CurrentCubeMap);
- _mesa_copy_texture_object(&texstate->SavedRect[u],
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_RECT_INDEX],
ctx->Texture.Unit[u].CurrentRect);
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_1D_ARRAY_INDEX],
+ ctx->Texture.Unit[u].Current1DArray);
+ _mesa_copy_texture_object(&texstate->SavedObj[u][TEXTURE_2D_ARRAY_INDEX],
+ ctx->Texture.Unit[u].Current2DArray);
}
_mesa_unlock_context_textures(ctx);
@@ -759,33 +768,22 @@ pop_texture_group(GLcontext *ctx, struct texture_state *texstate)
GLfloat bordColor[4];
GLenum target;
- switch (tgt) {
- case TEXTURE_1D_INDEX:
- obj = &texstate->Saved1D[u];
- ASSERT(obj->Target == GL_TEXTURE_1D);
- break;
- case TEXTURE_2D_INDEX:
- obj = &texstate->Saved2D[u];
- ASSERT(obj->Target == GL_TEXTURE_2D);
- break;
- case TEXTURE_3D_INDEX:
- obj = &texstate->Saved3D[u];
- ASSERT(obj->Target == GL_TEXTURE_3D);
- break;
- case TEXTURE_CUBE_INDEX:
- if (!ctx->Extensions.ARB_texture_cube_map)
- continue;
- obj = &texstate->SavedCube[u];
- ASSERT(obj->Target == GL_TEXTURE_CUBE_MAP_ARB);
- break;
- case TEXTURE_RECT_INDEX:
- if (!ctx->Extensions.NV_texture_rectangle)
- continue;
- obj = &texstate->SavedRect[u];
- ASSERT(obj->Target == GL_TEXTURE_RECTANGLE_NV);
- break;
- default:
- _mesa_problem(ctx, "bad texture index in pop_texture_group");
+ obj = &texstate->SavedObj[u][tgt];
+
+ /* don't restore state for unsupported targets to prevent
+ * raising GL errors.
+ */
+ if (obj->Target == GL_TEXTURE_CUBE_MAP_ARB &&
+ !ctx->Extensions.ARB_texture_cube_map) {
+ continue;
+ }
+ else if (obj->Target == GL_TEXTURE_RECTANGLE_NV &&
+ !ctx->Extensions.NV_texture_rectangle) {
+ continue;
+ }
+ else if ((obj->Target == GL_TEXTURE_1D_ARRAY_EXT ||
+ obj->Target == GL_TEXTURE_2D_ARRAY_EXT) &&
+ !ctx->Extensions.MESA_texture_array) {
continue;
}
@@ -798,8 +796,8 @@ pop_texture_group(GLcontext *ctx, struct texture_state *texstate)
bordColor[2] = CHAN_TO_FLOAT(obj->BorderColor[2]);
bordColor[3] = CHAN_TO_FLOAT(obj->BorderColor[3]);
- _mesa_TexParameterf(target, GL_TEXTURE_PRIORITY, obj->Priority);
_mesa_TexParameterfv(target, GL_TEXTURE_BORDER_COLOR, bordColor);
+ _mesa_TexParameterf(target, GL_TEXTURE_PRIORITY, obj->Priority);
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, obj->WrapS);
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, obj->WrapT);
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_R, obj->WrapR);
@@ -828,11 +826,9 @@ pop_texture_group(GLcontext *ctx, struct texture_state *texstate)
}
/* remove saved references to the texture objects */
- _mesa_reference_texobj(&texstate->SavedRef1D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRef2D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRef3D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRefCube[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRefRect[u], NULL);
+ for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++) {
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][tgt], NULL);
+ }
}
_mesa_ActiveTextureARB(GL_TEXTURE0_ARB + texstate->Texture.CurrentUnit);
@@ -1403,8 +1399,10 @@ _mesa_PopClientAttrib(void)
adjust_buffer_object_ref_counts(&ctx->Array, -1);
ctx->Array.ActiveTexture = data->ActiveTexture;
- ctx->Array.LockFirst = data->LockFirst;
- ctx->Array.LockCount = data->LockCount;
+ if (data->LockCount != 0)
+ _mesa_LockArraysEXT(data->LockFirst, data->LockCount);
+ else if (ctx->Array.LockCount)
+ _mesa_UnlockArraysEXT();
_mesa_BindVertexArrayAPPLE( data->ArrayObj->Name );
@@ -1441,6 +1439,9 @@ _mesa_PopClientAttrib(void)
}
+/**
+ * Free any attribute state data that might be attached to the context.
+ */
void
_mesa_free_attrib_data(GLcontext *ctx)
{
@@ -1453,14 +1454,12 @@ _mesa_free_attrib_data(GLcontext *ctx)
while (attr) {
if (attr->kind == GL_TEXTURE_BIT) {
struct texture_state *texstate = (struct texture_state*)attr->data;
- GLuint u;
+ GLuint u, tgt;
/* clear references to the saved texture objects */
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
- _mesa_reference_texobj(&texstate->SavedRef1D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRef2D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRef3D[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRefCube[u], NULL);
- _mesa_reference_texobj(&texstate->SavedRefRect[u], NULL);
+ for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++) {
+ _mesa_reference_texobj(&texstate->SavedTexRef[u][tgt], NULL);
+ }
}
}
else {
diff --git a/src/mesa/main/attrib.h b/src/mesa/main/attrib.h
index ea28859e9ff..2cf8fe69345 100644
--- a/src/mesa/main/attrib.h
+++ b/src/mesa/main/attrib.h
@@ -1,18 +1,8 @@
-/**
- * \file attrib.h
- * Attribute stacks.
- *
- * \if subset
- * (No-op)
- *
- * \endif
- */
-
/*
* Mesa 3-D graphics library
- * Version: 5.1
+ * Version: 7.1
*
- * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -32,8 +22,6 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-
-
#ifndef ATTRIB_H
#define ATTRIB_H
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 009055a6ab6..eb418610a72 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.1
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -409,6 +409,101 @@ _mesa_init_buffer_objects( GLcontext *ctx )
ctx->Array.ElementArrayBufferObj = ctx->Array.NullBufferObj;
}
+/**
+ * Bind the specified target to buffer for the specified context.
+ */
+static void
+bind_buffer_object(GLcontext *ctx, GLenum target, GLuint buffer)
+{
+ struct gl_buffer_object *oldBufObj;
+ struct gl_buffer_object *newBufObj = NULL;
+ struct gl_buffer_object **bindTarget = NULL;
+
+ switch (target) {
+ case GL_ARRAY_BUFFER_ARB:
+ bindTarget = &ctx->Array.ArrayBufferObj;
+ break;
+ case GL_ELEMENT_ARRAY_BUFFER_ARB:
+ bindTarget = &ctx->Array.ElementArrayBufferObj;
+ break;
+ case GL_PIXEL_PACK_BUFFER_EXT:
+ bindTarget = &ctx->Pack.BufferObj;
+ break;
+ case GL_PIXEL_UNPACK_BUFFER_EXT:
+ bindTarget = &ctx->Unpack.BufferObj;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferARB(target)");
+ return;
+ }
+
+ /* Get pointer to old buffer object (to be unbound) */
+ oldBufObj = get_buffer(ctx, target);
+ if (oldBufObj && oldBufObj->Name == buffer)
+ return; /* rebinding the same buffer object- no change */
+
+ /*
+ * Get pointer to new buffer object (newBufObj)
+ */
+ if (buffer == 0) {
+ /* The spec says there's not a buffer object named 0, but we use
+ * one internally because it simplifies things.
+ */
+ newBufObj = ctx->Array.NullBufferObj;
+ }
+ else {
+ /* non-default buffer object */
+ newBufObj = _mesa_lookup_bufferobj(ctx, buffer);
+ if (!newBufObj) {
+ /* if this is a new buffer object id, allocate a buffer object now */
+ ASSERT(ctx->Driver.NewBufferObject);
+ newBufObj = ctx->Driver.NewBufferObject(ctx, buffer, target);
+ if (!newBufObj) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindBufferARB");
+ return;
+ }
+ _mesa_save_buffer_object(ctx, newBufObj);
+ }
+ }
+
+ /* Make new binding */
+ *bindTarget = newBufObj;
+ newBufObj->RefCount++;
+
+ /* Pass BindBuffer call to device driver */
+ if (ctx->Driver.BindBuffer && newBufObj)
+ ctx->Driver.BindBuffer( ctx, target, newBufObj );
+
+ /* decr ref count on old buffer obj, delete if needed */
+ if (oldBufObj) {
+ oldBufObj->RefCount--;
+ assert(oldBufObj->RefCount >= 0);
+ if (oldBufObj->RefCount == 0) {
+ assert(oldBufObj->Name != 0);
+ ASSERT(ctx->Driver.DeleteBuffer);
+ ctx->Driver.DeleteBuffer( ctx, oldBufObj );
+ }
+ }
+}
+
+
+/**
+ * Update the default buffer objects in the given context to reference those
+ * specified in the shared state and release those referencing the old
+ * shared state.
+ */
+void
+_mesa_update_default_objects_buffer_objects(GLcontext *ctx)
+{
+ /* Bind the NullBufferObj to remove references to those
+ * in the shared context hash table.
+ */
+ bind_buffer_object( ctx, GL_ARRAY_BUFFER_ARB, 0);
+ bind_buffer_object( ctx, GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ bind_buffer_object( ctx, GL_PIXEL_PACK_BUFFER_ARB, 0);
+ bind_buffer_object( ctx, GL_PIXEL_UNPACK_BUFFER_ARB, 0);
+}
+
/**
* When we're about to read pixel data out of a PBO (via glDrawPixels,
@@ -470,6 +565,143 @@ _mesa_validate_pbo_access(GLuint dimensions,
/**
+ * If the source of glBitmap data is a PBO, check that we won't read out
+ * of buffer bounds, then map the buffer.
+ * If not sourcing from a PBO, just return the bitmap pointer.
+ * This is a helper function for (some) drivers.
+ * Return NULL if error.
+ * If non-null return, must call _mesa_unmap_bitmap_pbo() when done.
+ */
+const GLubyte *
+_mesa_map_bitmap_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLubyte *bitmap)
+{
+ const GLubyte *buf;
+
+ if (unpack->BufferObj->Name) {
+ /* unpack from PBO */
+ buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
+ GL_READ_ONLY_ARB,
+ unpack->BufferObj);
+ if (!buf)
+ return NULL;
+
+ buf = ADD_POINTERS(buf, bitmap);
+ }
+ else {
+ /* unpack from normal memory */
+ buf = bitmap;
+ }
+
+ return buf;
+}
+
+
+/**
+ * Counterpart to _mesa_map_bitmap_pbo()
+ * This is a helper function for (some) drivers.
+ */
+void
+_mesa_unmap_bitmap_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack)
+{
+ if (unpack->BufferObj->Name) {
+ ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
+ unpack->BufferObj);
+ }
+}
+
+
+/**
+ * \sa _mesa_map_bitmap_pbo
+ */
+const GLvoid *
+_mesa_map_drawpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLvoid *pixels)
+{
+ const GLvoid *buf;
+
+ if (unpack->BufferObj->Name) {
+ /* unpack from PBO */
+ buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
+ GL_READ_ONLY_ARB,
+ unpack->BufferObj);
+ if (!buf)
+ return NULL;
+
+ buf = ADD_POINTERS(buf, pixels);
+ }
+ else {
+ /* unpack from normal memory */
+ buf = pixels;
+ }
+
+ return buf;
+}
+
+
+/**
+ * \sa _mesa_unmap_bitmap_pbo
+ */
+void
+_mesa_unmap_drapix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack)
+{
+ if (unpack->BufferObj->Name) {
+ ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
+ unpack->BufferObj);
+ }
+}
+
+
+/**
+ * If PBO is bound, map the buffer, return dest pointer in mapped buffer.
+ * Call _mesa_unmap_readpix_pbo() when finished
+ * \return NULL if error
+ */
+void *
+_mesa_map_readpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack,
+ GLvoid *dest)
+{
+ void *buf;
+
+ if (pack->BufferObj->Name) {
+ /* pack into PBO */
+ buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
+ GL_WRITE_ONLY_ARB,
+ pack->BufferObj);
+ if (!buf)
+ return NULL;
+
+ buf = ADD_POINTERS(buf, dest);
+ }
+ else {
+ /* pack to normal memory */
+ buf = dest;
+ }
+
+ return buf;
+}
+
+
+/**
+ * Counterpart to _mesa_map_readpix_pbo()
+ */
+void
+_mesa_unmap_readpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack)
+{
+ if (pack->BufferObj->Name) {
+ ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT, pack->BufferObj);
+ }
+}
+
+
+
+/**
* Return the gl_buffer_object for the given ID.
* Always return NULL for ID 0.
*/
@@ -493,76 +725,9 @@ void GLAPIENTRY
_mesa_BindBufferARB(GLenum target, GLuint buffer)
{
GET_CURRENT_CONTEXT(ctx);
- struct gl_buffer_object *oldBufObj;
- struct gl_buffer_object *newBufObj = NULL;
- struct gl_buffer_object **bindTarget = NULL;
ASSERT_OUTSIDE_BEGIN_END(ctx);
- switch (target) {
- case GL_ARRAY_BUFFER_ARB:
- bindTarget = &ctx->Array.ArrayBufferObj;
- break;
- case GL_ELEMENT_ARRAY_BUFFER_ARB:
- bindTarget = &ctx->Array.ElementArrayBufferObj;
- break;
- case GL_PIXEL_PACK_BUFFER_EXT:
- bindTarget = &ctx->Pack.BufferObj;
- break;
- case GL_PIXEL_UNPACK_BUFFER_EXT:
- bindTarget = &ctx->Unpack.BufferObj;
- break;
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferARB(target)");
- return;
- }
-
- /* Get pointer to old buffer object (to be unbound) */
- oldBufObj = get_buffer(ctx, target);
- if (oldBufObj && oldBufObj->Name == buffer)
- return; /* rebinding the same buffer object- no change */
-
- /*
- * Get pointer to new buffer object (newBufObj)
- */
- if (buffer == 0) {
- /* The spec says there's not a buffer object named 0, but we use
- * one internally because it simplifies things.
- */
- newBufObj = ctx->Array.NullBufferObj;
- }
- else {
- /* non-default buffer object */
- newBufObj = _mesa_lookup_bufferobj(ctx, buffer);
- if (!newBufObj) {
- /* if this is a new buffer object id, allocate a buffer object now */
- ASSERT(ctx->Driver.NewBufferObject);
- newBufObj = ctx->Driver.NewBufferObject(ctx, buffer, target);
- if (!newBufObj) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBindBufferARB");
- return;
- }
- _mesa_save_buffer_object(ctx, newBufObj);
- }
- }
-
- /* Make new binding */
- *bindTarget = newBufObj;
- newBufObj->RefCount++;
-
- /* Pass BindBuffer call to device driver */
- if (ctx->Driver.BindBuffer && newBufObj)
- ctx->Driver.BindBuffer( ctx, target, newBufObj );
-
- /* decr ref count on old buffer obj, delete if needed */
- if (oldBufObj) {
- oldBufObj->RefCount--;
- assert(oldBufObj->RefCount >= 0);
- if (oldBufObj->RefCount == 0) {
- assert(oldBufObj->Name != 0);
- ASSERT(ctx->Driver.DeleteBuffer);
- ctx->Driver.DeleteBuffer( ctx, oldBufObj );
- }
- }
+ bind_buffer_object(ctx, target, buffer);
}
@@ -658,9 +823,9 @@ _mesa_DeleteBuffersARB(GLsizei n, const GLuint *ids)
_mesa_BindBufferARB( GL_PIXEL_UNPACK_BUFFER_EXT, 0 );
}
- /* The ID is immediately freed for re-use */
- _mesa_remove_buffer_object(ctx, bufObj);
- _mesa_unbind_buffer_object(ctx, bufObj);
+ /* The ID is immediately freed for re-use */
+ _mesa_remove_buffer_object(ctx, bufObj);
+ _mesa_unbind_buffer_object(ctx, bufObj);
}
}
diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h
index f54f9e9ff00..8baa59d6171 100644
--- a/src/mesa/main/bufferobj.h
+++ b/src/mesa/main/bufferobj.h
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.3
+ * Version: 7.1
*
- * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -38,6 +38,9 @@
extern void
_mesa_init_buffer_objects( GLcontext *ctx );
+extern void
+_mesa_update_default_objects_buffer_objects(GLcontext *ctx);
+
extern struct gl_buffer_object *
_mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target );
@@ -86,6 +89,35 @@ _mesa_validate_pbo_access(GLuint dimensions,
GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *ptr);
+extern const GLubyte *
+_mesa_map_bitmap_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLubyte *bitmap);
+
+extern void
+_mesa_unmap_bitmap_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack);
+
+extern const GLvoid *
+_mesa_map_drawpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLvoid *pixels);
+
+extern void
+_mesa_unmap_drapix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack);
+
+
+extern void *
+_mesa_map_readpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack,
+ GLvoid *dest);
+
+extern void
+_mesa_unmap_readpix_pbo(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack);
+
+
extern void
_mesa_unbind_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj );
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
index f4d5b23f272..b08095465d8 100644
--- a/src/mesa/main/buffers.c
+++ b/src/mesa/main/buffers.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -140,7 +140,9 @@ _mesa_Clear( GLbitfield mask )
return;
}
- if (ctx->DrawBuffer->Width == 0 || ctx->DrawBuffer->Height == 0)
+ if (ctx->DrawBuffer->Width == 0 || ctx->DrawBuffer->Height == 0 ||
+ ctx->DrawBuffer->_Xmin >= ctx->DrawBuffer->_Xmax ||
+ ctx->DrawBuffer->_Ymin >= ctx->DrawBuffer->_Ymax)
return;
if (ctx->RenderMode == GL_RENDER) {
@@ -157,7 +159,10 @@ _mesa_Clear( GLbitfield mask )
*/
bufferMask = 0;
if (mask & GL_COLOR_BUFFER_BIT) {
- bufferMask |= ctx->DrawBuffer->_ColorDrawBufferMask[0];
+ GLuint i;
+ for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) {
+ bufferMask |= (1 << ctx->DrawBuffer->_ColorDrawBufferIndexes[i]);
+ }
}
if ((mask & GL_DEPTH_BUFFER_BIT)
@@ -184,17 +189,19 @@ _mesa_Clear( GLbitfield mask )
/**
* Return bitmask of BUFFER_BIT_* flags indicating which color buffers are
- * available to the rendering context.
- * This depends on the framebuffer we're writing to. For window system
- * framebuffers we look at the framebuffer's visual. But for user-
- * create framebuffers we look at the number of supported color attachments.
+ * available to the rendering context (for drawing or reading).
+ * This depends on the type of framebuffer. For window system framebuffers
+ * we look at the framebuffer's visual. But for user-create framebuffers we
+ * look at the number of supported color attachments.
+ * \param fb the framebuffer to draw to, or read from
+ * \return bitmask of BUFFER_BIT_* flags
*/
static GLbitfield
-supported_buffer_bitmask(const GLcontext *ctx, GLuint framebufferID)
+supported_buffer_bitmask(const GLcontext *ctx, const struct gl_framebuffer *fb)
{
GLbitfield mask = 0x0;
- if (framebufferID > 0) {
+ if (fb->Name > 0) {
/* A user-created renderbuffer */
GLuint i;
ASSERT(ctx->Extensions.EXT_framebuffer_object);
@@ -203,20 +210,20 @@ supported_buffer_bitmask(const GLcontext *ctx, GLuint framebufferID)
}
}
else {
- /* A window system renderbuffer */
+ /* A window system framebuffer */
GLint i;
mask = BUFFER_BIT_FRONT_LEFT; /* always have this */
- if (ctx->Visual.stereoMode) {
+ if (fb->Visual.stereoMode) {
mask |= BUFFER_BIT_FRONT_RIGHT;
- if (ctx->Visual.doubleBufferMode) {
+ if (fb->Visual.doubleBufferMode) {
mask |= BUFFER_BIT_BACK_LEFT | BUFFER_BIT_BACK_RIGHT;
}
}
- else if (ctx->Visual.doubleBufferMode) {
+ else if (fb->Visual.doubleBufferMode) {
mask |= BUFFER_BIT_BACK_LEFT;
}
- for (i = 0; i < ctx->Visual.numAuxBuffers; i++) {
+ for (i = 0; i < fb->Visual.numAuxBuffers; i++) {
mask |= (BUFFER_BIT_AUX0 << i);
}
}
@@ -350,11 +357,24 @@ read_buffer_enum_to_index(GLenum buffer)
* \sa _mesa_DrawBuffersARB
*
* \param buffer buffer token such as GL_LEFT or GL_FRONT_AND_BACK, etc.
+ *
+ * Note that the behaviour of this function depends on whether the
+ * current ctx->DrawBuffer is a window-system framebuffer (Name=0) or
+ * a user-created framebuffer object (Name!=0).
+ * In the former case, we update the per-context ctx->Color.DrawBuffer
+ * state var _and_ the FB's ColorDrawBuffer state.
+ * In the later case, we update the FB's ColorDrawBuffer state only.
+ *
+ * Furthermore, upon a MakeCurrent() or BindFramebuffer() call, if the
+ * new FB is a window system FB, we need to re-update the FB's
+ * ColorDrawBuffer state to match the context. This is handled in
+ * _mesa_update_framebuffer().
+ *
+ * See the GL_EXT_framebuffer_object spec for more info.
*/
void GLAPIENTRY
_mesa_DrawBuffer(GLenum buffer)
{
- GLuint bufferID;
GLbitfield destMask;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); /* too complex... */
@@ -363,13 +383,12 @@ _mesa_DrawBuffer(GLenum buffer)
_mesa_debug(ctx, "glDrawBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
}
- bufferID = ctx->DrawBuffer->Name;
-
if (buffer == GL_NONE) {
destMask = 0x0;
}
else {
- const GLbitfield supportedMask = supported_buffer_bitmask(ctx, bufferID);
+ const GLbitfield supportedMask
+ = supported_buffer_bitmask(ctx, ctx->DrawBuffer);
destMask = draw_buffer_enum_to_bitmask(buffer);
if (destMask == BAD_MASK) {
/* totally bogus buffer */
@@ -386,6 +405,14 @@ _mesa_DrawBuffer(GLenum buffer)
/* if we get here, there's no error so set new state */
_mesa_drawbuffers(ctx, 1, &buffer, &destMask);
+
+ /*
+ * Call device driver function.
+ */
+ if (ctx->Driver.DrawBuffers)
+ ctx->Driver.DrawBuffers(ctx, 1, &buffer);
+ else if (ctx->Driver.DrawBuffer)
+ ctx->Driver.DrawBuffer(ctx, buffer);
}
@@ -402,7 +429,6 @@ void GLAPIENTRY
_mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers)
{
GLint output;
- GLuint bufferID;
GLbitfield usedBufferMask, supportedMask;
GLbitfield destMask[MAX_DRAW_BUFFERS];
GET_CURRENT_CONTEXT(ctx);
@@ -417,9 +443,7 @@ _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers)
return;
}
- bufferID = ctx->DrawBuffer->Name;
-
- supportedMask = supported_buffer_bitmask(ctx, bufferID);
+ supportedMask = supported_buffer_bitmask(ctx, ctx->DrawBuffer);
usedBufferMask = 0x0;
/* complicated error checking... */
@@ -454,48 +478,28 @@ _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers)
/* OK, if we get here, there were no errors so set the new state */
_mesa_drawbuffers(ctx, n, buffers, destMask);
-}
-
-/**
- * Set color output state. Traditionally, there was only one color
- * output, but fragment programs can now have several distinct color
- * outputs (see GL_ARB_draw_buffers). This function sets the state
- * for one such color output.
- * \param ctx current context
- * \param output which fragment program output
- * \param buffer buffer to write to (like GL_LEFT)
- * \param destMask BUFFER_* bitmask
- * (like BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT).
- */
-static void
-set_color_output(GLcontext *ctx, GLuint output, GLenum buffer,
- GLbitfield destMask)
-{
- struct gl_framebuffer *fb = ctx->DrawBuffer;
-
- ASSERT(output < ctx->Const.MaxDrawBuffers);
-
- /* Set per-FBO state */
- fb->ColorDrawBuffer[output] = buffer;
- fb->_ColorDrawBufferMask[output] = destMask;
- /* not really needed, will be set later */
- fb->_NumColorDrawBuffers[output] = 0;
-
- /* Set traditional state var */
- ctx->Color.DrawBuffer[output] = buffer;
+ /*
+ * Call device driver function.
+ */
+ if (ctx->Driver.DrawBuffers)
+ ctx->Driver.DrawBuffers(ctx, n, buffers);
+ else if (ctx->Driver.DrawBuffer)
+ ctx->Driver.DrawBuffer(ctx, buffers[0]);
}
/**
- * Helper routine used by _mesa_DrawBuffer, _mesa_DrawBuffersARB and
- * _mesa_PopAttrib to set drawbuffer state.
+ * Helper function to set the GL_DRAW_BUFFER state in the context and
+ * current FBO.
+ *
* All error checking will have been done prior to calling this function
* so nothing should go wrong at this point.
+ *
* \param ctx current context
* \param n number of color outputs to set
* \param buffers array[n] of colorbuffer names, like GL_LEFT.
- * \param destMask array[n] of BUFFER_* bitmasks which correspond to the
+ * \param destMask array[n] of BUFFER_BIT_* bitmasks which correspond to the
* colorbuffer names. (i.e. GL_FRONT_AND_BACK =>
* BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT).
*/
@@ -503,13 +507,13 @@ void
_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers,
const GLbitfield *destMask)
{
+ struct gl_framebuffer *fb = ctx->DrawBuffer;
GLbitfield mask[MAX_DRAW_BUFFERS];
- GLuint output;
if (!destMask) {
/* compute destMask values now */
- const GLuint bufferID = ctx->DrawBuffer->Name;
- const GLbitfield supportedMask = supported_buffer_bitmask(ctx, bufferID);
+ const GLbitfield supportedMask = supported_buffer_bitmask(ctx, fb);
+ GLuint output;
for (output = 0; output < n; output++) {
mask[output] = draw_buffer_enum_to_bitmask(buffers[output]);
ASSERT(mask[output] != BAD_MASK);
@@ -518,24 +522,75 @@ _mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers,
destMask = mask;
}
- for (output = 0; output < n; output++) {
- set_color_output(ctx, output, buffers[output], destMask[output]);
+ if (n == 1) {
+ GLuint buf, count = 0;
+ /* init to -1 to help catch errors */
+ fb->_ColorDrawBufferIndexes[0] = -1;
+ for (buf = 0; buf < BUFFER_COUNT; buf++) {
+ if (destMask[0] & (1 << buf)) {
+ fb->_ColorDrawBufferIndexes[count] = buf;
+ count++;
+ }
+ }
+ fb->ColorDrawBuffer[0] = buffers[0];
+ fb->_NumColorDrawBuffers = count;
+ }
+ else {
+ GLuint buf, count = 0;
+ for (buf = 0; buf < n; buf++ ) {
+ if (destMask[buf]) {
+ fb->_ColorDrawBufferIndexes[buf] = _mesa_ffs(destMask[buf]) - 1;
+ fb->ColorDrawBuffer[buf] = buffers[buf];
+ count = buf + 1;
+ }
+ else {
+ fb->_ColorDrawBufferIndexes[buf] = -1;
+ }
+ }
+ /* set remaining outputs to -1 (GL_NONE) */
+ while (buf < ctx->Const.MaxDrawBuffers) {
+ fb->_ColorDrawBufferIndexes[buf] = -1;
+ fb->ColorDrawBuffer[buf] = GL_NONE;
+ buf++;
+ }
+ fb->_NumColorDrawBuffers = count;
}
- /* set remaining color outputs to NONE */
- for (output = n; output < ctx->Const.MaxDrawBuffers; output++) {
- set_color_output(ctx, output, GL_NONE, 0x0);
+ if (fb->Name == 0) {
+ /* also set context drawbuffer state */
+ GLuint buf;
+ for (buf = 0; buf < ctx->Const.MaxDrawBuffers; buf++) {
+ ctx->Color.DrawBuffer[buf] = fb->ColorDrawBuffer[buf];
+ }
}
ctx->NewState |= _NEW_COLOR;
+}
- /*
- * Call device driver function.
- */
- if (ctx->Driver.DrawBuffers)
- ctx->Driver.DrawBuffers(ctx, n, buffers);
- else if (ctx->Driver.DrawBuffer)
- ctx->Driver.DrawBuffer(ctx, buffers[0]);
+
+/**
+ * Like \sa _mesa_drawbuffers(), this is a helper function for setting
+ * GL_READ_BUFFER state in the context and current FBO.
+ * \param ctx the rendering context
+ * \param buffer GL_FRONT, GL_BACK, GL_COLOR_ATTACHMENT0, etc.
+ * \param bufferIndex the numerical index corresponding to 'buffer'
+ */
+void
+_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex)
+{
+ struct gl_framebuffer *fb = ctx->ReadBuffer;
+
+ if (fb->Name == 0) {
+ /* Only update the per-context READ_BUFFER state if we're bound to
+ * a window-system framebuffer.
+ */
+ ctx->Pixel.ReadBuffer = buffer;
+ }
+
+ fb->ColorReadBuffer = buffer;
+ fb->_ColorReadBufferIndex = bufferIndex;
+
+ ctx->NewState |= _NEW_PIXEL;
}
@@ -550,17 +605,18 @@ _mesa_ReadBuffer(GLenum buffer)
struct gl_framebuffer *fb;
GLbitfield supportedMask;
GLint srcBuffer;
- GLuint bufferID;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(ctx, "glReadBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
+
fb = ctx->ReadBuffer;
- bufferID = fb->Name;
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glReadBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
- if (bufferID > 0 && buffer == GL_NONE) {
+ if (fb->Name > 0 && buffer == GL_NONE) {
/* This is legal for user-created framebuffer objects */
srcBuffer = -1;
}
@@ -568,23 +624,21 @@ _mesa_ReadBuffer(GLenum buffer)
/* general case / window-system framebuffer */
srcBuffer = read_buffer_enum_to_index(buffer);
if (srcBuffer == -1) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glReadBuffer(buffer=0x%x)", buffer);
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glReadBuffer(buffer=0x%x)", buffer);
return;
}
- supportedMask = supported_buffer_bitmask(ctx, bufferID);
+ supportedMask = supported_buffer_bitmask(ctx, fb);
if (((1 << srcBuffer) & supportedMask) == 0) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glReadBuffer(buffer=0x%x)", buffer);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glReadBuffer(buffer=0x%x)", buffer);
return;
}
}
- if (bufferID == 0) {
- ctx->Pixel.ReadBuffer = buffer;
- }
- fb->ColorReadBuffer = buffer;
- fb->_ColorReadBufferIndex = srcBuffer;
+ /* OK, all error checking has been completed now */
- ctx->NewState |= _NEW_PIXEL;
+ _mesa_readbuffer(ctx, buffer, srcBuffer);
/*
* Call device driver function.
diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h
index fcc21523421..9c0070e00f1 100644
--- a/src/mesa/main/buffers.h
+++ b/src/mesa/main/buffers.h
@@ -5,9 +5,9 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -56,6 +56,9 @@ extern void
_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers,
const GLbitfield *destMask);
+extern void
+_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex);
+
extern void GLAPIENTRY
_mesa_ReadBuffer( GLenum mode );
diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c
index 610acba3068..97120398f9b 100644
--- a/src/mesa/main/colortab.c
+++ b/src/mesa/main/colortab.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.3
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -30,6 +30,7 @@
#include "image.h"
#include "macros.h"
#include "state.h"
+#include "teximage.h"
/**
@@ -305,49 +306,6 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat,
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); /* too complex */
switch (target) {
- case GL_TEXTURE_1D:
- texObj = texUnit->Current1D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_2D:
- texObj = texUnit->Current2D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_3D:
- texObj = texUnit->Current3D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
- return;
- }
- texObj = texUnit->CurrentCubeMap;
- table = &texObj->Palette;
- break;
- case GL_PROXY_TEXTURE_1D:
- texObj = ctx->Texture.Proxy1D;
- table = &texObj->Palette;
- proxy = GL_TRUE;
- break;
- case GL_PROXY_TEXTURE_2D:
- texObj = ctx->Texture.Proxy2D;
- table = &texObj->Palette;
- proxy = GL_TRUE;
- break;
- case GL_PROXY_TEXTURE_3D:
- texObj = ctx->Texture.Proxy3D;
- table = &texObj->Palette;
- proxy = GL_TRUE;
- break;
- case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
- return;
- }
- texObj = ctx->Texture.ProxyCubeMap;
- table = &texObj->Palette;
- break;
case GL_SHARED_TEXTURE_PALETTE_EXT:
table = &ctx->Texture.Palette;
break;
@@ -396,8 +354,19 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat,
proxy = GL_TRUE;
break;
default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
- return;
+ /* try texture targets */
+ {
+ struct gl_texture_object *texobj
+ = _mesa_select_tex_object(ctx, texUnit, target);
+ if (texobj) {
+ table = &texobj->Palette;
+ proxy = _mesa_is_proxy_texture(target);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
+ return;
+ }
+ }
}
assert(table);
@@ -499,26 +468,6 @@ _mesa_ColorSubTable( GLenum target, GLsizei start,
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
switch (target) {
- case GL_TEXTURE_1D:
- texObj = texUnit->Current1D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_2D:
- texObj = texUnit->Current2D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_3D:
- texObj = texUnit->Current3D;
- table = &texObj->Palette;
- break;
- case GL_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
- return;
- }
- texObj = texUnit->CurrentCubeMap;
- table = &texObj->Palette;
- break;
case GL_SHARED_TEXTURE_PALETTE_EXT:
table = &ctx->Texture.Palette;
break;
@@ -547,8 +496,15 @@ _mesa_ColorSubTable( GLenum target, GLsizei start,
bias = ctx->Pixel.ColorTableBias[COLORTABLE_POSTCOLORMATRIX];
break;
default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
- return;
+ /* try texture targets */
+ texObj = _mesa_select_tex_object(ctx, texUnit, target);
+ if (texObj && !_mesa_is_proxy_texture(target)) {
+ table = &texObj->Palette;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
+ return;
+ }
}
assert(table);
@@ -636,22 +592,6 @@ _mesa_GetColorTable( GLenum target, GLenum format,
}
switch (target) {
- case GL_TEXTURE_1D:
- table = &texUnit->Current1D->Palette;
- break;
- case GL_TEXTURE_2D:
- table = &texUnit->Current2D->Palette;
- break;
- case GL_TEXTURE_3D:
- table = &texUnit->Current3D->Palette;
- break;
- case GL_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
- return;
- }
- table = &texUnit->CurrentCubeMap->Palette;
- break;
case GL_SHARED_TEXTURE_PALETTE_EXT:
table = &ctx->Texture.Palette;
break;
@@ -672,8 +612,18 @@ _mesa_GetColorTable( GLenum target, GLenum format,
table = &ctx->ColorTable[COLORTABLE_POSTCOLORMATRIX];
break;
default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
- return;
+ /* try texture targets */
+ {
+ struct gl_texture_object *texobj
+ = _mesa_select_tex_object(ctx, texUnit, target);
+ if (texobj && !_mesa_is_proxy_texture(target)) {
+ table = &texobj->Palette;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
+ return;
+ }
+ }
}
ASSERT(table);
@@ -781,65 +731,41 @@ _mesa_GetColorTable( GLenum target, GLenum format,
void GLAPIENTRY
_mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params)
{
+ GLfloat *scale, *bias;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
switch (target) {
- case GL_COLOR_TABLE_SGI:
- if (pname == GL_COLOR_TABLE_SCALE_SGI) {
- COPY_4V(ctx->Pixel.ColorTableScale[COLORTABLE_PRECONVOLUTION], params);
- }
- else if (pname == GL_COLOR_TABLE_BIAS_SGI) {
- COPY_4V(ctx->Pixel.ColorTableBias[COLORTABLE_PRECONVOLUTION], params);
- }
- else {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameterfv(pname)");
- return;
- }
- break;
- case GL_TEXTURE_COLOR_TABLE_SGI:
- if (!ctx->Extensions.SGI_texture_color_table) {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameter(target)");
- return;
- }
- if (pname == GL_COLOR_TABLE_SCALE_SGI) {
- COPY_4V(ctx->Pixel.TextureColorTableScale, params);
- }
- else if (pname == GL_COLOR_TABLE_BIAS_SGI) {
- COPY_4V(ctx->Pixel.TextureColorTableBias, params);
- }
- else {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameterfv(pname)");
- return;
- }
- break;
- case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
- if (pname == GL_COLOR_TABLE_SCALE_SGI) {
- COPY_4V(ctx->Pixel.ColorTableScale[COLORTABLE_POSTCONVOLUTION], params);
- }
- else if (pname == GL_COLOR_TABLE_BIAS_SGI) {
- COPY_4V(ctx->Pixel.ColorTableBias[COLORTABLE_POSTCONVOLUTION], params);
- }
- else {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameterfv(pname)");
- return;
- }
- break;
- case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
- if (pname == GL_COLOR_TABLE_SCALE_SGI) {
- COPY_4V(ctx->Pixel.ColorTableScale[COLORTABLE_POSTCOLORMATRIX], params);
- }
- else if (pname == GL_COLOR_TABLE_BIAS_SGI) {
- COPY_4V(ctx->Pixel.ColorTableBias[COLORTABLE_POSTCOLORMATRIX], params);
- }
- else {
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameterfv(pname)");
- return;
- }
- break;
- default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameter(target)");
- return;
+ case GL_COLOR_TABLE_SGI:
+ scale = ctx->Pixel.ColorTableScale[COLORTABLE_PRECONVOLUTION];
+ bias = ctx->Pixel.ColorTableBias[COLORTABLE_PRECONVOLUTION];
+ break;
+ case GL_TEXTURE_COLOR_TABLE_SGI:
+ scale = ctx->Pixel.TextureColorTableScale;
+ bias = ctx->Pixel.TextureColorTableBias;
+ break;
+ case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
+ scale = ctx->Pixel.ColorTableScale[COLORTABLE_POSTCONVOLUTION];
+ bias = ctx->Pixel.ColorTableBias[COLORTABLE_POSTCONVOLUTION];
+ break;
+ case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
+ scale = ctx->Pixel.ColorTableScale[COLORTABLE_POSTCOLORMATRIX];
+ bias = ctx->Pixel.ColorTableBias[COLORTABLE_POSTCOLORMATRIX];
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameter(target)");
+ return;
+ }
+
+ if (pname == GL_COLOR_TABLE_SCALE_SGI) {
+ COPY_4V(scale, params);
+ }
+ else if (pname == GL_COLOR_TABLE_BIAS_SGI) {
+ COPY_4V(bias, params);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glColorTableParameterfv(pname)");
+ return;
}
ctx->NewState |= _NEW_PIXEL;
@@ -879,40 +805,6 @@ _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
ASSERT_OUTSIDE_BEGIN_END(ctx);
switch (target) {
- case GL_TEXTURE_1D:
- table = &texUnit->Current1D->Palette;
- break;
- case GL_TEXTURE_2D:
- table = &texUnit->Current2D->Palette;
- break;
- case GL_TEXTURE_3D:
- table = &texUnit->Current3D->Palette;
- break;
- case GL_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM,
- "glGetColorTableParameterfv(target)");
- return;
- }
- table = &texUnit->CurrentCubeMap->Palette;
- break;
- case GL_PROXY_TEXTURE_1D:
- table = &ctx->Texture.Proxy1D->Palette;
- break;
- case GL_PROXY_TEXTURE_2D:
- table = &ctx->Texture.Proxy2D->Palette;
- break;
- case GL_PROXY_TEXTURE_3D:
- table = &ctx->Texture.Proxy3D->Palette;
- break;
- case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM,
- "glGetColorTableParameterfv(target)");
- return;
- }
- table = &ctx->Texture.ProxyCubeMap->Palette;
- break;
case GL_SHARED_TEXTURE_PALETTE_EXT:
table = &ctx->Texture.Palette;
break;
@@ -981,8 +873,19 @@ _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
table = &ctx->ProxyColorTable[COLORTABLE_POSTCOLORMATRIX];
break;
default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameterfv(target)");
- return;
+ /* try texture targets */
+ {
+ struct gl_texture_object *texobj
+ = _mesa_select_tex_object(ctx, texUnit, target);
+ if (texobj) {
+ table = &texobj->Palette;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetColorTableParameterfv(target)");
+ return;
+ }
+ }
}
assert(table);
@@ -1029,40 +932,6 @@ _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
ASSERT_OUTSIDE_BEGIN_END(ctx);
switch (target) {
- case GL_TEXTURE_1D:
- table = &texUnit->Current1D->Palette;
- break;
- case GL_TEXTURE_2D:
- table = &texUnit->Current2D->Palette;
- break;
- case GL_TEXTURE_3D:
- table = &texUnit->Current3D->Palette;
- break;
- case GL_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM,
- "glGetColorTableParameteriv(target)");
- return;
- }
- table = &texUnit->CurrentCubeMap->Palette;
- break;
- case GL_PROXY_TEXTURE_1D:
- table = &ctx->Texture.Proxy1D->Palette;
- break;
- case GL_PROXY_TEXTURE_2D:
- table = &ctx->Texture.Proxy2D->Palette;
- break;
- case GL_PROXY_TEXTURE_3D:
- table = &ctx->Texture.Proxy3D->Palette;
- break;
- case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
- if (!ctx->Extensions.ARB_texture_cube_map) {
- _mesa_error(ctx, GL_INVALID_ENUM,
- "glGetColorTableParameteriv(target)");
- return;
- }
- table = &ctx->Texture.ProxyCubeMap->Palette;
- break;
case GL_SHARED_TEXTURE_PALETTE_EXT:
table = &ctx->Texture.Palette;
break;
@@ -1161,8 +1030,19 @@ _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
table = &ctx->ProxyColorTable[COLORTABLE_POSTCOLORMATRIX];
break;
default:
- _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameteriv(target)");
- return;
+ /* Try texture targets */
+ {
+ struct gl_texture_object *texobj
+ = _mesa_select_tex_object(ctx, texUnit, target);
+ if (texobj) {
+ table = &texobj->Palette;
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetColorTableParameteriv(target)");
+ return;
+ }
+ }
}
assert(table);
diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index 0d9c981d62b..58a39d11d4d 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -5,7 +5,7 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -82,7 +82,7 @@
/** Minimum point size */
#define MIN_POINT_SIZE 1.0
/** Maximum point size */
-#define MAX_POINT_SIZE 20.0
+#define MAX_POINT_SIZE 60.0
/** Point size granularity */
#define POINT_SIZE_GRANULARITY 0.1
@@ -108,6 +108,9 @@
/** Maximum rectangular texture size - GL_NV_texture_rectangle */
#define MAX_TEXTURE_RECT_SIZE 2048
+/** Maximum number of layers in a 1D or 2D array texture - GL_MESA_texture_array */
+#define MAX_ARRAY_TEXTURE_LAYERS 64
+
/** Number of texture units - GL_ARB_multitexture
* This needs to be the larger of MAX_TEXTURE_COORD_UNITS and
* MAX_TEXTURE_IMAGE_UNITS seen below, since MAX_TEXTURE_UNITS is used
@@ -160,25 +163,6 @@
/** For GL_EXT_texture_lod_bias (typically MAX_TEXTURE_LEVELS - 1) */
#define MAX_TEXTURE_LOD_BIAS 11.0
-/** For GL_NV_vertex_program */
-/*@{*/
-#define MAX_NV_VERTEX_PROGRAM_INSTRUCTIONS 128
-#define MAX_NV_VERTEX_PROGRAM_TEMPS 12
-#define MAX_NV_VERTEX_PROGRAM_PARAMS 128 /* KW: power of two */
-#define MAX_NV_VERTEX_PROGRAM_INPUTS 16
-#define MAX_NV_VERTEX_PROGRAM_OUTPUTS 15
-/*@}*/
-
-/** For GL_NV_fragment_program */
-/*@{*/
-#define MAX_NV_FRAGMENT_PROGRAM_INSTRUCTIONS 1024 /* 72 for GL_ARB_f_p */
-#define MAX_NV_FRAGMENT_PROGRAM_TEMPS 96
-#define MAX_NV_FRAGMENT_PROGRAM_PARAMS 64
-#define MAX_NV_FRAGMENT_PROGRAM_INPUTS 12
-#define MAX_NV_FRAGMENT_PROGRAM_OUTPUTS 3
-#define MAX_NV_FRAGMENT_PROGRAM_WRITE_ONLYS 2
-/*@}*/
-
/** For GL_ARB_vertex_program */
/*@{*/
#define MAX_VERTEX_PROGRAM_ADDRESS_REGS 1
@@ -204,8 +188,29 @@
#define MAX_PROGRAM_ADDRESS_REGS 2
#define MAX_UNIFORMS 128
#define MAX_VARYING 8
+#define MAX_SAMPLERS 8
/*@}*/
+/** For GL_NV_vertex_program */
+/*@{*/
+#define MAX_NV_VERTEX_PROGRAM_INSTRUCTIONS 128
+#define MAX_NV_VERTEX_PROGRAM_TEMPS 12
+#define MAX_NV_VERTEX_PROGRAM_PARAMS MAX_PROGRAM_ENV_PARAMS
+#define MAX_NV_VERTEX_PROGRAM_INPUTS 16
+#define MAX_NV_VERTEX_PROGRAM_OUTPUTS 15
+/*@}*/
+
+/** For GL_NV_fragment_program */
+/*@{*/
+#define MAX_NV_FRAGMENT_PROGRAM_INSTRUCTIONS 1024 /* 72 for GL_ARB_f_p */
+#define MAX_NV_FRAGMENT_PROGRAM_TEMPS 96
+#define MAX_NV_FRAGMENT_PROGRAM_PARAMS 64
+#define MAX_NV_FRAGMENT_PROGRAM_INPUTS 12
+#define MAX_NV_FRAGMENT_PROGRAM_OUTPUTS 3
+#define MAX_NV_FRAGMENT_PROGRAM_WRITE_ONLYS 2
+/*@}*/
+
+
/** For GL_ARB_vertex_shader */
/*@{*/
#define MAX_VERTEX_ATTRIBS 16
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index a240baf3011..2c387d8e2cb 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -6,7 +6,7 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.2
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -97,12 +97,9 @@
#include "fog.h"
#include "framebuffer.h"
#include "get.h"
-#include "glthread.h"
-#include "glapioffsets.h"
#include "histogram.h"
#include "hint.h"
#include "hash.h"
-#include "atifragshader.h"
#include "light.h"
#include "lines.h"
#include "macros.h"
@@ -110,9 +107,6 @@
#include "pixel.h"
#include "points.h"
#include "polygon.h"
-#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program
-#include "program.h"
-#endif
#include "queryobj.h"
#include "rastpos.h"
#include "simple_list.h"
@@ -126,13 +120,18 @@
#include "varray.h"
#include "version.h"
#include "vtxfmt.h"
+#include "glapi/glthread.h"
+#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program
+#include "shader/program.h"
+#endif
+#include "shader/shader_api.h"
+#include "shader/atifragshader.h"
#if _HAVE_FULL_GL
#include "math/m_translate.h"
#include "math/m_matrix.h"
#include "math/m_xform.h"
#include "math/mathmod.h"
#endif
-#include "shader_api.h"
#ifdef USE_SPARC_ASM
#include "sparc/sparc.h"
@@ -150,8 +149,6 @@ int MESA_DEBUG_FLAGS = 0;
/* ubyte -> float conversion */
GLfloat _mesa_ubyte_to_float_color_tab[256];
-static void
-free_shared_state( GLcontext *ctx, struct gl_shared_state *ss );
/**
@@ -421,12 +418,14 @@ alloc_shared_state( GLcontext *ctx )
#endif
#if FEATURE_ARB_vertex_program
- ss->DefaultVertexProgram = ctx->Driver.NewProgram(ctx, GL_VERTEX_PROGRAM_ARB, 0);
+ ss->DefaultVertexProgram = (struct gl_vertex_program *)
+ ctx->Driver.NewProgram(ctx, GL_VERTEX_PROGRAM_ARB, 0);
if (!ss->DefaultVertexProgram)
goto cleanup;
#endif
#if FEATURE_ARB_fragment_program
- ss->DefaultFragmentProgram = ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0);
+ ss->DefaultFragmentProgram = (struct gl_fragment_program *)
+ ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0);
if (!ss->DefaultFragmentProgram)
goto cleanup;
#endif
@@ -467,6 +466,14 @@ alloc_shared_state( GLcontext *ctx )
if (!ss->DefaultRect)
goto cleanup;
+ ss->Default1DArray = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_1D_ARRAY_EXT);
+ if (!ss->Default1DArray)
+ goto cleanup;
+
+ ss->Default2DArray = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_2D_ARRAY_EXT);
+ if (!ss->Default2DArray)
+ goto cleanup;
+
/* sanity check */
assert(ss->Default1D->RefCount == 1);
@@ -495,12 +502,10 @@ cleanup:
_mesa_DeleteHashTable(ss->Programs);
#endif
#if FEATURE_ARB_vertex_program
- if (ss->DefaultVertexProgram)
- ctx->Driver.DeleteProgram(ctx, ss->DefaultVertexProgram);
+ _mesa_reference_vertprog(ctx, &ss->DefaultVertexProgram, NULL);
#endif
#if FEATURE_ARB_fragment_program
- if (ss->DefaultFragmentProgram)
- ctx->Driver.DeleteProgram(ctx, ss->DefaultFragmentProgram);
+ _mesa_reference_fragprog(ctx, &ss->DefaultFragmentProgram, NULL);
#endif
#if FEATURE_ATI_fragment_shader
if (ss->DefaultFragmentShader)
@@ -536,8 +541,13 @@ cleanup:
(*ctx->Driver.DeleteTexture)(ctx, ss->DefaultCubeMap);
if (ss->DefaultRect)
(*ctx->Driver.DeleteTexture)(ctx, ss->DefaultRect);
- if (ss)
- _mesa_free(ss);
+ if (ss->Default1DArray)
+ (*ctx->Driver.DeleteTexture)(ctx, ss->Default1DArray);
+ if (ss->Default2DArray)
+ (*ctx->Driver.DeleteTexture)(ctx, ss->Default2DArray);
+
+ _mesa_free(ss);
+
return GL_FALSE;
}
@@ -572,6 +582,8 @@ delete_program_cb(GLuint id, void *data, void *userData)
{
struct gl_program *prog = (struct gl_program *) data;
GLcontext *ctx = (GLcontext *) userData;
+ ASSERT(prog->RefCount == 1); /* should only be referenced by hash table */
+ prog->RefCount = 0; /* now going away */
ctx->Driver.DeleteProgram(ctx, prog);
}
@@ -697,15 +709,21 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
_mesa_HashDeleteAll(ss->DisplayList, delete_displaylist_cb, ctx);
_mesa_DeleteHashTable(ss->DisplayList);
+#if FEATURE_ARB_shader_objects
+ _mesa_HashWalk(ss->ShaderObjects, free_shader_program_data_cb, ctx);
+ _mesa_HashDeleteAll(ss->ShaderObjects, delete_shader_cb, ctx);
+ _mesa_DeleteHashTable(ss->ShaderObjects);
+#endif
+
#if defined(FEATURE_NV_vertex_program) || defined(FEATURE_NV_fragment_program)
_mesa_HashDeleteAll(ss->Programs, delete_program_cb, ctx);
_mesa_DeleteHashTable(ss->Programs);
#endif
#if FEATURE_ARB_vertex_program
- ctx->Driver.DeleteProgram(ctx, ss->DefaultVertexProgram);
+ _mesa_reference_vertprog(ctx, &ss->DefaultVertexProgram, NULL);
#endif
#if FEATURE_ARB_fragment_program
- ctx->Driver.DeleteProgram(ctx, ss->DefaultFragmentProgram);
+ _mesa_reference_fragprog(ctx, &ss->DefaultFragmentProgram, NULL);
#endif
#if FEATURE_ATI_fragment_shader
@@ -722,12 +740,6 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
_mesa_HashDeleteAll(ss->ArrayObjects, delete_arrayobj_cb, ctx);
_mesa_DeleteHashTable(ss->ArrayObjects);
-#if FEATURE_ARB_shader_objects
- _mesa_HashWalk(ss->ShaderObjects, free_shader_program_data_cb, ctx);
- _mesa_HashDeleteAll(ss->ShaderObjects, delete_shader_cb, ctx);
- _mesa_DeleteHashTable(ss->ShaderObjects);
-#endif
-
#if FEATURE_EXT_framebuffer_object
_mesa_HashDeleteAll(ss->FrameBuffers, delete_framebuffer_cb, ctx);
_mesa_DeleteHashTable(ss->FrameBuffers);
@@ -746,6 +758,8 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
ctx->Driver.DeleteTexture(ctx, ss->Default3D);
ctx->Driver.DeleteTexture(ctx, ss->DefaultCubeMap);
ctx->Driver.DeleteTexture(ctx, ss->DefaultRect);
+ ctx->Driver.DeleteTexture(ctx, ss->Default1DArray);
+ ctx->Driver.DeleteTexture(ctx, ss->Default2DArray);
/* all other textures */
_mesa_HashDeleteAll(ss->TexObjects, delete_texture_cb, ctx);
_mesa_DeleteHashTable(ss->TexObjects);
@@ -817,6 +831,7 @@ _mesa_init_constants(GLcontext *ctx)
ctx->Const.Max3DTextureLevels = MAX_3D_TEXTURE_LEVELS;
ctx->Const.MaxCubeTextureLevels = MAX_CUBE_TEXTURE_LEVELS;
ctx->Const.MaxTextureRectSize = MAX_TEXTURE_RECT_SIZE;
+ ctx->Const.MaxArrayTextureLayers = MAX_ARRAY_TEXTURE_LAYERS;
ctx->Const.MaxTextureCoordUnits = MAX_TEXTURE_COORD_UNITS;
ctx->Const.MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
ctx->Const.MaxTextureUnits = MIN2(ctx->Const.MaxTextureCoordUnits,
@@ -1004,6 +1019,28 @@ init_attrib_groups(GLcontext *ctx)
/**
+ * Update default objects in a GL context with respect to shared state.
+ *
+ * \param ctx GL context.
+ *
+ * Removes references to old default objects, (texture objects, program
+ * objects, etc.) and changes to reference those from the current shared
+ * state.
+ */
+static GLboolean
+update_default_objects(GLcontext *ctx)
+{
+ assert(ctx);
+
+ _mesa_update_default_objects_program(ctx);
+ _mesa_update_default_objects_texture(ctx);
+ _mesa_update_default_objects_buffer_objects(ctx);
+
+ return GL_TRUE;
+}
+
+
+/**
* This is the default function we plug into all dispatch table slots
* This helps prevents a segfault when someone calls a GL function without
* first checking if the extension's supported.
@@ -1011,7 +1048,7 @@ init_attrib_groups(GLcontext *ctx)
static int
generic_nop(void)
{
- _mesa_problem(NULL, "User called no-op dispatch function (an unsupported extension function?)");
+ _mesa_warning(NULL, "User called no-op dispatch function (an unsupported extension function?)");
return 0;
}
@@ -1214,6 +1251,14 @@ _mesa_free_context_data( GLcontext *ctx )
_mesa_unreference_framebuffer(&ctx->DrawBuffer);
_mesa_unreference_framebuffer(&ctx->ReadBuffer);
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram.Current, NULL);
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL);
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._TnlProgram, NULL);
+
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, NULL);
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._TexEnvProgram, NULL);
+
_mesa_free_attrib_data(ctx);
_mesa_free_lighting_data( ctx );
_mesa_free_eval_data( ctx );
@@ -1397,9 +1442,9 @@ _mesa_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask )
* Check if the given context can render into the given framebuffer
* by checking visual attributes.
*
- * XXX this may go away someday because we're moving toward more freedom
- * in binding contexts to drawables with different visual attributes.
- * The GL_EXT_f_b_o extension is prompting some of that.
+ * Most of these tests could go away because Mesa is now pretty flexible
+ * in terms of mixing rendering contexts with framebuffers. As long
+ * as RGB vs. CI mode agree, we're probably good.
*
* \return GL_TRUE if compatible, GL_FALSE otherwise.
*/
@@ -1531,6 +1576,9 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
_mesa_reference_framebuffer(&newCtx->ReadBuffer, readBuffer);
}
+ /* XXX only set this flag if we're really changing the draw/read
+ * framebuffer bindings.
+ */
newCtx->NewState |= _NEW_BUFFERS;
#if 1
@@ -1598,12 +1646,18 @@ GLboolean
_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare)
{
if (ctx && ctxToShare && ctx->Shared && ctxToShare->Shared) {
- ctx->Shared->RefCount--;
- if (ctx->Shared->RefCount == 0) {
- free_shared_state(ctx, ctx->Shared);
- }
+ struct gl_shared_state *oldSharedState = ctx->Shared;
+
ctx->Shared = ctxToShare->Shared;
ctx->Shared->RefCount++;
+
+ update_default_objects(ctx);
+
+ oldSharedState->RefCount--;
+ if (oldSharedState->RefCount == 0) {
+ free_shared_state(ctx, oldSharedState);
+ }
+
return GL_TRUE;
}
else {
diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 7a9d97ce869..bb6f3acf062 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -49,7 +49,7 @@
#define CONTEXT_H
-#include "glapi.h"
+#include "glapi/glapi.h"
#include "imports.h"
#include "mtypes.h"
@@ -273,8 +273,10 @@ do { \
(CTX)->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) \
|| (CTX)->Fog.ColorSumEnabled \
|| ((CTX)->VertexProgram._Current && \
+ ((CTX)->VertexProgram._Current != (CTX)->VertexProgram._TnlProgram) && \
((CTX)->VertexProgram._Current->Base.InputsRead & VERT_BIT_COLOR1)) \
|| ((CTX)->FragmentProgram._Current && \
+ ((CTX)->FragmentProgram._Current != (CTX)->FragmentProgram._TexEnvProgram) && \
((CTX)->FragmentProgram._Current->Base.InputsRead & FRAG_BIT_COL1)) \
)
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index bb47cd4dc20..e3ded41acac 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -328,6 +328,12 @@ struct dd_function_table {
GLsizei width, GLsizei height );
/**
+ * Called by glGenerateMipmap() or when GL_GENERATE_MIPMAP_SGIS is enabled.
+ */
+ void (*GenerateMipmap)(GLcontext *ctx, GLenum target,
+ struct gl_texture_object *texObj);
+
+ /**
* Called by glTexImage[123]D when user specifies a proxy texture
* target.
*
@@ -445,8 +451,8 @@ struct dd_function_table {
*/
void (*GetCompressedTexImage)(GLcontext *ctx, GLenum target, GLint level,
GLvoid *img,
- const struct gl_texture_object *texObj,
- const struct gl_texture_image *texImage);
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage);
/**
* Called to query number of bytes of storage needed to store the
@@ -787,7 +793,7 @@ struct dd_function_table {
struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name);
struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name);
void (*BindFramebuffer)(GLcontext *ctx, GLenum target,
- struct gl_framebuffer *fb);
+ struct gl_framebuffer *fb, struct gl_framebuffer *fbread);
void (*FramebufferRenderbuffer)(GLcontext *ctx,
struct gl_framebuffer *fb,
GLenum attachment,
diff --git a/src/mesa/main/depth.c b/src/mesa/main/depth.c
index f5511ce2fbf..91c036ef968 100644
--- a/src/mesa/main/depth.c
+++ b/src/mesa/main/depth.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -28,7 +28,6 @@
#include "context.h"
#include "depth.h"
#include "enums.h"
-#include "hash.h"
#include "macros.h"
#include "mtypes.h"
@@ -153,36 +152,11 @@ _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax )
/**
* Initialize the depth buffer attribute group in the given context.
*/
-void _mesa_init_depth( GLcontext * ctx )
+void
+_mesa_init_depth(GLcontext *ctx)
{
- /* Depth buffer group */
ctx->Depth.Test = GL_FALSE;
ctx->Depth.Clear = 1.0;
ctx->Depth.Func = GL_LESS;
ctx->Depth.Mask = GL_TRUE;
-
- /* XXX this is now per-framebuffer state */
-#if 00
- /* Z buffer stuff */
- if (ctx->Visual.depthBits == 0) {
- /* Special case. Even if we don't have a depth buffer we need
- * good values for DepthMax for Z vertex transformation purposes
- * and for per-fragment fog computation.
- */
- ctx->DepthMax = (1 << 16) - 1;
- ctx->DepthMaxF = (GLfloat) ctx->DepthMax;
- }
- else if (ctx->Visual.depthBits < 32) {
- ctx->DepthMax = (1 << ctx->Visual.depthBits) - 1;
- ctx->DepthMaxF = (GLfloat) ctx->DepthMax;
- }
- else {
- /* Special case since shift values greater than or equal to the
- * number of bits in the left hand expression's type are undefined.
- */
- ctx->DepthMax = 0xffffffff;
- ctx->DepthMaxF = (GLfloat) ctx->DepthMax;
- }
- ctx->MRD = 1.0; /* Minimum resolvable depth value, for polygon offset */
-#endif
}
diff --git a/src/mesa/main/descrip.mms b/src/mesa/main/descrip.mms
index d09c57b3212..3ef215f47fa 100644
--- a/src/mesa/main/descrip.mms
+++ b/src/mesa/main/descrip.mms
@@ -1,11 +1,13 @@
# Makefile for core library for VMS
-# contributed by Jouk Jansen [email protected]
-# Last revision : 10 May 2005
+# contributed by Jouk Jansen [email protected]
+# Last revision : 2 October 2007
.first
define gl [---.include.gl]
define math [-.math]
define shader [-.shader]
+ define glapi [-.glapi]
+ define main [-.main]
.include [---]mms-config.
@@ -58,13 +60,13 @@ SOURCES =accum.c \
matrix.c \
mipmap.c \
mm.c \
- occlude.c \
pixel.c \
points.c \
polygon.c \
rastpos.c \
rbadaptors.c \
renderbuffer.c \
+ shaders.c \
state.c \
stencil.c \
texcompress.c \
@@ -78,7 +80,9 @@ SOURCES =accum.c \
texstate.c \
texstore.c \
varray.c \
- vtxfmt.c
+ vtxfmt.c \
+ queryobj.c \
+ rbadaptors.c
OBJECTS=accum.obj,\
api_arrayelt.obj,\
@@ -121,12 +125,12 @@ lines.obj,\
matrix.obj,\
mipmap.obj,\
mm.obj,\
-occlude.obj,\
pixel.obj,\
points.obj,\
polygon.obj,\
rastpos.obj,\
renderbuffer.obj,\
+shaders.obj,\
state.obj,\
stencil.obj,\
texcompress.obj,\
@@ -140,7 +144,9 @@ texrender.obj,\
texstate.obj,\
texstore.obj,\
varray.obj,\
-vtxfmt.obj
+vtxfmt.obj,\
+queryobj.obj,\
+rbadaptors.obj
##### RULES #####
@@ -149,8 +155,7 @@ VERSION=Mesa V3.4
##### TARGETS #####
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
- @ $(MAKELIB) $(GL_LIB) $(OBJECTS)
- @ rename $(GL_LIB)* $(LIBDIR)
+ @ $(MAKELIB) $(LIBDIR)$(GL_LIB) $(OBJECTS)
clean :
purge
@@ -197,7 +202,6 @@ lines.obj : lines.c
matrix.obj : matrix.c
mipmap.obj : mipmap.c
mm.obj : mm.c
-occlude.obj : occlude.c
pixel.obj : pixel.c
points.obj : points.c
polygon.obj : polygon.c
@@ -219,3 +223,6 @@ texstate.obj : texstate.c
texstore.obj : texstore.c
varray.obj : varray.c
vtxfmt.obj : vtxfmt.c
+shaders.obj : shaders.c
+queryobj.obj : queryobj.c
+rbadaptors.obj : rbadaptors.c
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 1b2f90ef912..63a00e04f51 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.2
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -33,10 +33,6 @@
#include "api_arrayelt.h"
#include "api_loopback.h"
#include "config.h"
-#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
-#include "arbprogram.h"
-#include "program.h"
-#endif
#include "attrib.h"
#include "blend.h"
#include "buffers.h"
@@ -57,7 +53,7 @@
#include "extensions.h"
#include "feedback.h"
#include "get.h"
-#include "glapi.h"
+#include "glapi/glapi.h"
#include "hash.h"
#include "histogram.h"
#include "image.h"
@@ -76,18 +72,22 @@
#include "texstate.h"
#include "mtypes.h"
#include "varray.h"
+#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
+#include "shader/arbprogram.h"
+#include "shader/program.h"
+#endif
#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program
-#include "nvprogram.h"
-#include "program.h"
+#include "shader/nvprogram.h"
+#include "shader/program.h"
#endif
#if FEATURE_ATI_fragment_shader
-#include "atifragshader.h"
+#include "shader/atifragshader.h"
#endif
#include "math/m_matrix.h"
#include "math/m_xform.h"
-#include "dispatch.h"
+#include "glapi/dispatch.h"
/**
@@ -303,7 +303,6 @@ typedef enum
OPCODE_EXECUTE_PROGRAM_NV,
OPCODE_REQUEST_RESIDENT_PROGRAMS_NV,
OPCODE_LOAD_PROGRAM_NV,
- OPCODE_PROGRAM_PARAMETER4F_NV,
OPCODE_TRACK_MATRIX_NV,
/* GL_NV_fragment_program */
OPCODE_PROGRAM_LOCAL_PARAMETER_ARB,
@@ -612,9 +611,9 @@ destroy_list(GLcontext *ctx, GLuint list)
/*
- * Translate the nth element of list from type to GLuint.
+ * Translate the nth element of list from <type> to GLint.
*/
-static GLuint
+static GLint
translate_id(GLsizei n, GLenum type, const GLvoid * list)
{
GLbyte *bptr;
@@ -628,37 +627,40 @@ translate_id(GLsizei n, GLenum type, const GLvoid * list)
switch (type) {
case GL_BYTE:
bptr = (GLbyte *) list;
- return (GLuint) *(bptr + n);
+ return (GLint) bptr[n];
case GL_UNSIGNED_BYTE:
ubptr = (GLubyte *) list;
- return (GLuint) *(ubptr + n);
+ return (GLint) ubptr[n];
case GL_SHORT:
sptr = (GLshort *) list;
- return (GLuint) *(sptr + n);
+ return (GLint) sptr[n];
case GL_UNSIGNED_SHORT:
usptr = (GLushort *) list;
- return (GLuint) *(usptr + n);
+ return (GLint) usptr[n];
case GL_INT:
iptr = (GLint *) list;
- return (GLuint) *(iptr + n);
+ return iptr[n];
case GL_UNSIGNED_INT:
uiptr = (GLuint *) list;
- return (GLuint) *(uiptr + n);
+ return (GLint) uiptr[n];
case GL_FLOAT:
fptr = (GLfloat *) list;
- return (GLuint) *(fptr + n);
+ return (GLint) FLOORF(fptr[n]);
case GL_2_BYTES:
ubptr = ((GLubyte *) list) + 2 * n;
- return (GLuint) *ubptr * 256 + (GLuint) * (ubptr + 1);
+ return (GLint) ubptr[0] * 256
+ + (GLint) ubptr[1];
case GL_3_BYTES:
ubptr = ((GLubyte *) list) + 3 * n;
- return (GLuint) * ubptr * 65536
- + (GLuint) *(ubptr + 1) * 256 + (GLuint) * (ubptr + 2);
+ return (GLint) ubptr[0] * 65536
+ + (GLint) ubptr[1] * 256
+ + (GLint) ubptr[2];
case GL_4_BYTES:
ubptr = ((GLubyte *) list) + 4 * n;
- return (GLuint) *ubptr * 16777216
- + (GLuint) *(ubptr + 1) * 65536
- + (GLuint) *(ubptr + 2) * 256 + (GLuint) * (ubptr + 3);
+ return (GLint) ubptr[0] * 16777216
+ + (GLint) ubptr[1] * 65536
+ + (GLint) ubptr[2] * 256
+ + (GLint) ubptr[3];
default:
return 0;
}
@@ -993,10 +995,10 @@ _mesa_save_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
}
for (i = 0; i < n; i++) {
- GLuint list = translate_id(i, type, lists);
+ GLint list = translate_id(i, type, lists);
Node *n = ALLOC_INSTRUCTION(ctx, OPCODE_CALL_LIST_OFFSET, 2);
if (n) {
- n[1].ui = list;
+ n[1].i = list;
n[2].b = typeErrorFlag;
}
}
@@ -4277,77 +4279,111 @@ save_BindProgramNV(GLenum target, GLuint id)
CALL_BindProgramNV(ctx->Exec, (target, id));
}
}
-#endif /* FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program */
-#if FEATURE_NV_vertex_program
static void GLAPIENTRY
-save_ExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params)
+save_ProgramEnvParameter4fARB(GLenum target, GLuint index,
+ GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = ALLOC_INSTRUCTION(ctx, OPCODE_EXECUTE_PROGRAM_NV, 6);
+ n = ALLOC_INSTRUCTION(ctx, OPCODE_PROGRAM_ENV_PARAMETER_ARB, 6);
if (n) {
n[1].e = target;
- n[2].ui = id;
- n[3].f = params[0];
- n[4].f = params[1];
- n[5].f = params[2];
- n[6].f = params[3];
+ n[2].ui = index;
+ n[3].f = x;
+ n[4].f = y;
+ n[5].f = z;
+ n[6].f = w;
}
if (ctx->ExecuteFlag) {
- CALL_ExecuteProgramNV(ctx->Exec, (target, id, params));
+ CALL_ProgramEnvParameter4fARB(ctx->Exec, (target, index, x, y, z, w));
}
}
static void GLAPIENTRY
-save_ProgramParameter4fNV(GLenum target, GLuint index,
- GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+save_ProgramEnvParameter4fvARB(GLenum target, GLuint index,
+ const GLfloat *params)
+{
+ save_ProgramEnvParameter4fARB(target, index, params[0], params[1],
+ params[2], params[3]);
+}
+
+
+static void GLAPIENTRY
+save_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
+ const GLfloat * params)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = ALLOC_INSTRUCTION(ctx, OPCODE_PROGRAM_PARAMETER4F_NV, 6);
- if (n) {
- n[1].e = target;
- n[2].ui = index;
- n[3].f = x;
- n[4].f = y;
- n[5].f = z;
- n[6].f = w;
+
+ if (count > 0) {
+ GLint i;
+ const GLfloat * p = params;
+
+ for (i = 0 ; i < count ; i++) {
+ n = ALLOC_INSTRUCTION(ctx, OPCODE_PROGRAM_ENV_PARAMETER_ARB, 6);
+ if (n) {
+ n[1].e = target;
+ n[2].ui = index;
+ n[3].f = p[0];
+ n[4].f = p[1];
+ n[5].f = p[2];
+ n[6].f = p[3];
+ p += 4;
+ }
+ }
}
+
if (ctx->ExecuteFlag) {
- CALL_ProgramParameter4fNV(ctx->Exec, (target, index, x, y, z, w));
+ CALL_ProgramEnvParameters4fvEXT(ctx->Exec, (target, index, count, params));
}
}
static void GLAPIENTRY
-save_ProgramParameter4fvNV(GLenum target, GLuint index,
- const GLfloat *params)
+save_ProgramEnvParameter4dARB(GLenum target, GLuint index,
+ GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
- save_ProgramParameter4fNV(target, index, params[0], params[1],
- params[2], params[3]);
+ save_ProgramEnvParameter4fARB(target, index,
+ (GLfloat) x,
+ (GLfloat) y, (GLfloat) z, (GLfloat) w);
}
static void GLAPIENTRY
-save_ProgramParameter4dNV(GLenum target, GLuint index,
- GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+save_ProgramEnvParameter4dvARB(GLenum target, GLuint index,
+ const GLdouble *params)
{
- save_ProgramParameter4fNV(target, index, (GLfloat) x, (GLfloat) y,
- (GLfloat) z, (GLfloat) w);
+ save_ProgramEnvParameter4fARB(target, index,
+ (GLfloat) params[0],
+ (GLfloat) params[1],
+ (GLfloat) params[2], (GLfloat) params[3]);
}
+#endif /* FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program || FEATURE_NV_vertex_program */
+#if FEATURE_NV_vertex_program
static void GLAPIENTRY
-save_ProgramParameter4dvNV(GLenum target, GLuint index,
- const GLdouble *params)
+save_ExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params)
{
- save_ProgramParameter4fNV(target, index, (GLfloat) params[0],
- (GLfloat) params[1], (GLfloat) params[2],
- (GLfloat) params[3]);
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = ALLOC_INSTRUCTION(ctx, OPCODE_EXECUTE_PROGRAM_NV, 6);
+ if (n) {
+ n[1].e = target;
+ n[2].ui = id;
+ n[3].f = params[0];
+ n[4].f = params[1];
+ n[5].f = params[2];
+ n[6].f = params[3];
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ExecuteProgramNV(ctx->Exec, (target, id, params));
+ }
}
@@ -4357,7 +4393,7 @@ save_ProgramParameters4dvNV(GLenum target, GLuint index,
{
GLuint i;
for (i = 0; i < num; i++) {
- save_ProgramParameter4dvNV(target, index + i, params + 4 * i);
+ save_ProgramEnvParameter4dvARB(target, index + i, params + 4 * i);
}
}
@@ -4368,7 +4404,7 @@ save_ProgramParameters4fvNV(GLenum target, GLuint index,
{
GLuint i;
for (i = 0; i < num; i++) {
- save_ProgramParameter4fvNV(target, index + i, params + 4 * i);
+ save_ProgramEnvParameter4fvARB(target, index + i, params + 4 * i);
}
}
@@ -4696,90 +4732,6 @@ save_ProgramStringARB(GLenum target, GLenum format, GLsizei len,
}
}
-
-static void GLAPIENTRY
-save_ProgramEnvParameter4fARB(GLenum target, GLuint index,
- GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-{
- GET_CURRENT_CONTEXT(ctx);
- Node *n;
- ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = ALLOC_INSTRUCTION(ctx, OPCODE_PROGRAM_ENV_PARAMETER_ARB, 6);
- if (n) {
- n[1].e = target;
- n[2].ui = index;
- n[3].f = x;
- n[4].f = y;
- n[5].f = z;
- n[6].f = w;
- }
- if (ctx->ExecuteFlag) {
- CALL_ProgramEnvParameter4fARB(ctx->Exec, (target, index, x, y, z, w));
- }
-}
-
-
-static void GLAPIENTRY
-save_ProgramEnvParameter4fvARB(GLenum target, GLuint index,
- const GLfloat *params)
-{
- save_ProgramEnvParameter4fARB(target, index, params[0], params[1],
- params[2], params[3]);
-}
-
-
-static void GLAPIENTRY
-save_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count,
- const GLfloat * params)
-{
- GET_CURRENT_CONTEXT(ctx);
- Node *n;
- ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
-
- if (count > 0) {
- GLint i;
- const GLfloat * p = params;
-
- for (i = 0 ; i < count ; i++) {
- n = ALLOC_INSTRUCTION(ctx, OPCODE_PROGRAM_ENV_PARAMETER_ARB, 6);
- if (n) {
- n[1].e = target;
- n[2].ui = index;
- n[3].f = p[0];
- n[4].f = p[1];
- n[5].f = p[2];
- n[6].f = p[3];
- p += 4;
- }
- }
- }
-
- if (ctx->ExecuteFlag) {
- CALL_ProgramEnvParameters4fvEXT(ctx->Exec, (target, index, count, params));
- }
-}
-
-
-static void GLAPIENTRY
-save_ProgramEnvParameter4dARB(GLenum target, GLuint index,
- GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-{
- save_ProgramEnvParameter4fARB(target, index,
- (GLfloat) x,
- (GLfloat) y, (GLfloat) z, (GLfloat) w);
-}
-
-
-static void GLAPIENTRY
-save_ProgramEnvParameter4dvARB(GLenum target, GLuint index,
- const GLdouble *params)
-{
- save_ProgramEnvParameter4fARB(target, index,
- (GLfloat) params[0],
- (GLfloat) params[1],
- (GLfloat) params[2], (GLfloat) params[3]);
-}
-
#endif /* FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program */
@@ -5659,6 +5611,27 @@ save_VertexAttrib4fvARB(GLuint index, const GLfloat * v)
}
+/* GL_ARB_shader_objects, GL_ARB_vertex/fragment_shader */
+
+static void GLAPIENTRY
+exec_BindAttribLocationARB(GLuint program, GLuint index, const GLchar *name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ FLUSH_VERTICES(ctx, 0);
+ CALL_BindAttribLocationARB(ctx->Exec, (program, index, name));
+}
+
+static GLint GLAPIENTRY
+exec_GetAttribLocationARB(GLuint program, const GLchar *name)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ FLUSH_VERTICES(ctx, 0);
+ return CALL_GetAttribLocationARB(ctx->Exec, (program, name));
+}
+/* XXX more shader functions needed here */
+
+
+
#if FEATURE_EXT_framebuffer_blit
static void GLAPIENTRY
save_BlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
@@ -5834,7 +5807,8 @@ execute_list(GLcontext *ctx, GLuint list)
_mesa_error(ctx, GL_INVALID_ENUM, "glCallLists(type)");
}
else if (ctx->ListState.CallDepth < MAX_LIST_NESTING) {
- execute_list(ctx, ctx->List.ListBase + n[1].ui);
+ GLuint list = (GLuint) (ctx->List.ListBase + n[1].i);
+ execute_list(ctx, list);
}
break;
case OPCODE_CLEAR:
@@ -6459,10 +6433,6 @@ execute_list(GLcontext *ctx, GLuint list)
CALL_LoadProgramNV(ctx->Exec, (n[1].e, n[2].ui, n[3].i,
(const GLubyte *) n[4].data));
break;
- case OPCODE_PROGRAM_PARAMETER4F_NV:
- CALL_ProgramParameter4fNV(ctx->Exec, (n[1].e, n[2].ui, n[3].f,
- n[4].f, n[5].f, n[6].f));
- break;
case OPCODE_TRACK_MATRIX_NV:
CALL_TrackMatrixNV(ctx->Exec, (n[1].e, n[2].ui, n[3].e, n[4].e));
break;
@@ -6493,6 +6463,8 @@ execute_list(GLcontext *ctx, GLuint list)
CALL_ProgramStringARB(ctx->Exec,
(n[1].e, n[2].e, n[3].i, n[4].data));
break;
+#endif
+#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program || FEATURE_NV_vertex_program
case OPCODE_PROGRAM_ENV_PARAMETER_ARB:
CALL_ProgramEnvParameter4fARB(ctx->Exec, (n[1].e, n[2].ui, n[3].f,
n[4].f, n[5].f,
@@ -6630,9 +6602,6 @@ execute_list(GLcontext *ctx, GLuint list)
CALL_EvalPoint2(ctx->Exec, (n[1].i, n[2].i));
break;
-
-
-
case OPCODE_CONTINUE:
n = (Node *) n[1].next;
break;
@@ -6887,7 +6856,6 @@ void GLAPIENTRY
_mesa_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
{
GET_CURRENT_CONTEXT(ctx);
- GLuint list;
GLint i;
GLboolean save_compile_flag;
@@ -6919,8 +6887,8 @@ _mesa_CallLists(GLsizei n, GLenum type, const GLvoid * lists)
ctx->CompileFlag = GL_FALSE;
for (i = 0; i < n; i++) {
- list = translate_id(i, type, lists);
- execute_list(ctx, ctx->List.ListBase + list);
+ GLuint list = (GLuint) (ctx->List.ListBase + translate_id(i, type, lists));
+ execute_list(ctx, list);
}
ctx->CompileFlag = save_compile_flag;
@@ -8054,10 +8022,10 @@ _mesa_init_dlist_table(struct _glapi_table *table)
SET_GetVertexAttribPointervNV(table, _mesa_GetVertexAttribPointervNV);
SET_IsProgramNV(table, _mesa_IsProgramARB);
SET_LoadProgramNV(table, save_LoadProgramNV);
- SET_ProgramParameter4dNV(table, save_ProgramParameter4dNV);
- SET_ProgramParameter4dvNV(table, save_ProgramParameter4dvNV);
- SET_ProgramParameter4fNV(table, save_ProgramParameter4fNV);
- SET_ProgramParameter4fvNV(table, save_ProgramParameter4fvNV);
+ SET_ProgramEnvParameter4dARB(table, save_ProgramEnvParameter4dARB);
+ SET_ProgramEnvParameter4dvARB(table, save_ProgramEnvParameter4dvARB);
+ SET_ProgramEnvParameter4fARB(table, save_ProgramEnvParameter4fARB);
+ SET_ProgramEnvParameter4fvARB(table, save_ProgramEnvParameter4fvARB);
SET_ProgramParameters4dvNV(table, save_ProgramParameters4dvNV);
SET_ProgramParameters4fvNV(table, save_ProgramParameters4fvNV);
SET_TrackMatrixNV(table, save_TrackMatrixNV);
@@ -8200,6 +8168,11 @@ _mesa_init_dlist_table(struct _glapi_table *table)
SET_BlitFramebufferEXT(table, save_BlitFramebufferEXT);
#endif
+ /* ARB 30/31/32. GL_ARB_shader_objects, GL_ARB_vertex/fragment_shader */
+ SET_BindAttribLocationARB(table, exec_BindAttribLocationARB);
+ SET_GetAttribLocationARB(table, exec_GetAttribLocationARB);
+ /* XXX additional functions need to be implemented here! */
+
/* 299. GL_EXT_blend_equation_separate */
SET_BlendEquationSeparateEXT(table, save_BlendEquationSeparateEXT);
@@ -8444,8 +8417,6 @@ print_list(GLcontext *ctx, GLuint list)
_mesa_printf("EVAL_P2 %d %d\n", n[1].i, n[2].i);
break;
-
-
/*
* meta opcodes/commands
*/
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c
index b0f54dcd48d..fde93384309 100644
--- a/src/mesa/main/drawpix.c
+++ b/src/mesa/main/drawpix.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.3
+ * Version: 7.1
*
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
@@ -24,6 +24,7 @@
#include "glheader.h"
#include "imports.h"
+#include "bufferobj.h"
#include "context.h"
#include "drawpix.h"
#include "feedback.h"
@@ -105,8 +106,7 @@ error_check_format_type(GLcontext *ctx, GLenum format, GLenum type,
}
break;
case GL_DEPTH_COMPONENT:
- if ((drawing && !_mesa_dest_buffer_exists(ctx, format)) ||
- (!drawing && !_mesa_source_buffer_exists(ctx, format))) {
+ if (!drawing && !_mesa_source_buffer_exists(ctx, format)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"gl%sPixels(no depth buffer)", readDraw);
return GL_TRUE;
@@ -183,6 +183,23 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
/* Round, to satisfy conformance tests (matches SGI's OpenGL) */
GLint x = IROUND(ctx->Current.RasterPos[0]);
GLint y = IROUND(ctx->Current.RasterPos[1]);
+
+ if (ctx->Unpack.BufferObj->Name) {
+ /* unpack from PBO */
+ if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
+ format, type, pixels)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glDrawPixels(invalid PBO access)");
+ return;
+ }
+ if (ctx->Unpack.BufferObj->Pointer) {
+ /* buffer is mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glDrawPixels(PBO is mapped)");
+ return;
+ }
+ }
+
ctx->Driver.DrawPixels(ctx, x, y, width, height, format, type,
&ctx->Unpack, pixels);
}
@@ -301,6 +318,21 @@ _mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
return;
}
+ if (ctx->Pack.BufferObj->Name) {
+ if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1,
+ format, type, pixels)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glReadPixels(invalid PBO access)");
+ return;
+ }
+
+ if (ctx->Pack.BufferObj->Pointer) {
+ /* buffer is mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)");
+ return;
+ }
+ }
+
ctx->Driver.ReadPixels(ctx, x, y, width, height,
format, type, &ctx->Pack, pixels);
}
@@ -345,6 +377,23 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
const GLfloat epsilon = 0.0001;
GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig);
GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig);
+
+ if (ctx->Unpack.BufferObj->Name) {
+ /* unpack from PBO */
+ if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
+ GL_COLOR_INDEX, GL_BITMAP,
+ (GLvoid *) bitmap)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBitmap(invalid PBO access)");
+ return;
+ }
+ if (ctx->Unpack.BufferObj->Pointer) {
+ /* buffer is mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBitmap(PBO is mapped)");
+ return;
+ }
+ }
+
ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
}
#if _HAVE_FULL_GL
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 0c2bf8ceaa5..9fe979a6b2e 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -935,6 +935,22 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
ctx->ATIFragmentShader.Enabled = state;
break;
#endif
+
+ /* GL_MESA_texture_array */
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ CHECK_EXTENSION(MESA_texture_array, cap);
+ if (!enable_texture(ctx, state, TEXTURE_1D_ARRAY_BIT)) {
+ return;
+ }
+ break;
+
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ CHECK_EXTENSION(MESA_texture_array, cap);
+ if (!enable_texture(ctx, state, TEXTURE_2D_ARRAY_BIT)) {
+ return;
+ }
+ break;
+
default:
_mesa_error(ctx, GL_INVALID_ENUM,
"%s(0x%x)", state ? "glEnable" : "glDisable", cap);
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index e4e8611f437..6aeb18fa272 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -251,6 +251,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_COMBINE_RGB\0"
"GL_COMBINE_RGB_ARB\0"
"GL_COMBINE_RGB_EXT\0"
+ "GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT\0"
"GL_COMPARE_R_TO_TEXTURE\0"
"GL_COMPARE_R_TO_TEXTURE_ARB\0"
"GL_COMPILE\0"
@@ -527,6 +528,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT\0"
"GL_FRAMEBUFFER_BINDING_EXT\0"
"GL_FRAMEBUFFER_COMPLETE_EXT\0"
@@ -828,6 +830,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MATRIX_PALETTE_ARB\0"
"GL_MAX\0"
"GL_MAX_3D_TEXTURE_SIZE\0"
+ "GL_MAX_ARRAY_TEXTURE_LAYERS_EXT\0"
"GL_MAX_ATTRIB_STACK_DEPTH\0"
"GL_MAX_CLIENT_ATTRIB_STACK_DEPTH\0"
"GL_MAX_CLIPMAP_DEPTH_SGIX\0"
@@ -1230,8 +1233,10 @@ LONGSTRING static const char enum_string_table[] =
"GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE\0"
"GL_PROXY_POST_CONVOLUTION_COLOR_TABLE\0"
"GL_PROXY_TEXTURE_1D\0"
+ "GL_PROXY_TEXTURE_1D_ARRAY_EXT\0"
"GL_PROXY_TEXTURE_1D_EXT\0"
"GL_PROXY_TEXTURE_2D\0"
+ "GL_PROXY_TEXTURE_2D_ARRAY_EXT\0"
"GL_PROXY_TEXTURE_2D_EXT\0"
"GL_PROXY_TEXTURE_3D\0"
"GL_PROXY_TEXTURE_COLOR_TABLE_SGI\0"
@@ -1541,13 +1546,17 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE9\0"
"GL_TEXTURE9_ARB\0"
"GL_TEXTURE_1D\0"
+ "GL_TEXTURE_1D_ARRAY_EXT\0"
"GL_TEXTURE_2D\0"
+ "GL_TEXTURE_2D_ARRAY_EXT\0"
"GL_TEXTURE_3D\0"
"GL_TEXTURE_ALPHA_SIZE\0"
"GL_TEXTURE_ALPHA_SIZE_EXT\0"
"GL_TEXTURE_BASE_LEVEL\0"
"GL_TEXTURE_BINDING_1D\0"
+ "GL_TEXTURE_BINDING_1D_ARRAY_EXT\0"
"GL_TEXTURE_BINDING_2D\0"
+ "GL_TEXTURE_BINDING_2D_ARRAY_EXT\0"
"GL_TEXTURE_BINDING_3D\0"
"GL_TEXTURE_BINDING_CUBE_MAP\0"
"GL_TEXTURE_BINDING_CUBE_MAP_ARB\0"
@@ -1778,7 +1787,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[1741] =
+static const enum_elt all_enums[1750] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -1996,2134 +2005,2143 @@ static const enum_elt all_enums[1741] =
{ 4100, 0x00008571 }, /* GL_COMBINE_RGB */
{ 4115, 0x00008571 }, /* GL_COMBINE_RGB_ARB */
{ 4134, 0x00008571 }, /* GL_COMBINE_RGB_EXT */
- { 4153, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
- { 4177, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
- { 4205, 0x00001300 }, /* GL_COMPILE */
- { 4216, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
- { 4239, 0x00008B81 }, /* GL_COMPILE_STATUS */
- { 4257, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
- { 4277, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
- { 4301, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
- { 4325, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
- { 4353, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
- { 4377, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- { 4407, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
- { 4441, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
- { 4469, 0x000084ED }, /* GL_COMPRESSED_RGB */
- { 4487, 0x000084EE }, /* GL_COMPRESSED_RGBA */
- { 4506, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
- { 4529, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- { 4558, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- { 4591, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- { 4624, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- { 4657, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
- { 4679, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- { 4707, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- { 4739, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
- { 4769, 0x00008576 }, /* GL_CONSTANT */
- { 4781, 0x00008003 }, /* GL_CONSTANT_ALPHA */
- { 4799, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
- { 4821, 0x00008576 }, /* GL_CONSTANT_ARB */
- { 4837, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
- { 4861, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
- { 4883, 0x00008001 }, /* GL_CONSTANT_COLOR */
- { 4901, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
- { 4923, 0x00008576 }, /* GL_CONSTANT_EXT */
- { 4939, 0x00008010 }, /* GL_CONVOLUTION_1D */
- { 4957, 0x00008011 }, /* GL_CONVOLUTION_2D */
- { 4975, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
- { 5003, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
- { 5034, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
- { 5061, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
- { 5092, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
- { 5119, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
- { 5150, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
- { 5178, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
- { 5210, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
- { 5232, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
- { 5258, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
- { 5280, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
- { 5306, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
- { 5327, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
- { 5352, 0x00008862 }, /* GL_COORD_REPLACE */
- { 5369, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
- { 5390, 0x00008862 }, /* GL_COORD_REPLACE_NV */
- { 5410, 0x00001503 }, /* GL_COPY */
- { 5418, 0x0000150C }, /* GL_COPY_INVERTED */
- { 5435, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
- { 5455, 0x00000B44 }, /* GL_CULL_FACE */
- { 5468, 0x00000B45 }, /* GL_CULL_FACE_MODE */
- { 5486, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
- { 5505, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- { 5537, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- { 5572, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
- { 5593, 0x00000001 }, /* GL_CURRENT_BIT */
- { 5608, 0x00000B00 }, /* GL_CURRENT_COLOR */
- { 5625, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
- { 5646, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
- { 5672, 0x00000B01 }, /* GL_CURRENT_INDEX */
- { 5689, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
- { 5711, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
- { 5739, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
- { 5760, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- { 5794, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
- { 5827, 0x00000B02 }, /* GL_CURRENT_NORMAL */
- { 5845, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- { 5875, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
- { 5894, 0x00008865 }, /* GL_CURRENT_QUERY */
- { 5911, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
- { 5932, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
- { 5956, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
- { 5983, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
- { 6007, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
- { 6034, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
- { 6067, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- { 6100, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
- { 6127, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
- { 6153, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
- { 6178, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
- { 6207, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
- { 6229, 0x00000900 }, /* GL_CW */
- { 6235, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
- { 6256, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
- { 6277, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
- { 6297, 0x00002101 }, /* GL_DECAL */
- { 6306, 0x00001E03 }, /* GL_DECR */
- { 6314, 0x00008508 }, /* GL_DECR_WRAP */
- { 6327, 0x00008508 }, /* GL_DECR_WRAP_EXT */
- { 6344, 0x00008B80 }, /* GL_DELETE_STATUS */
- { 6361, 0x00001801 }, /* GL_DEPTH */
- { 6370, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
- { 6394, 0x00000D1F }, /* GL_DEPTH_BIAS */
- { 6408, 0x00000D56 }, /* GL_DEPTH_BITS */
- { 6422, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
- { 6442, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
- { 6467, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
- { 6487, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
- { 6505, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
- { 6526, 0x00001902 }, /* GL_DEPTH_COMPONENT */
- { 6545, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
- { 6566, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
- { 6591, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
- { 6617, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
- { 6638, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
- { 6663, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
- { 6689, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
- { 6710, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
- { 6735, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
- { 6761, 0x00000B74 }, /* GL_DEPTH_FUNC */
- { 6775, 0x00000B70 }, /* GL_DEPTH_RANGE */
- { 6790, 0x00000D1E }, /* GL_DEPTH_SCALE */
- { 6805, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
- { 6825, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- { 6853, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- { 6881, 0x00000B71 }, /* GL_DEPTH_TEST */
- { 6895, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
- { 6917, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
- { 6943, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
- { 6962, 0x00001201 }, /* GL_DIFFUSE */
- { 6973, 0x00000BD0 }, /* GL_DITHER */
- { 6983, 0x00000A02 }, /* GL_DOMAIN */
- { 6993, 0x00001100 }, /* GL_DONT_CARE */
- { 7006, 0x000086AE }, /* GL_DOT3_RGB */
- { 7018, 0x000086AF }, /* GL_DOT3_RGBA */
- { 7031, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
- { 7048, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
- { 7065, 0x000086AE }, /* GL_DOT3_RGB_ARB */
- { 7081, 0x00008740 }, /* GL_DOT3_RGB_EXT */
- { 7097, 0x0000140A }, /* GL_DOUBLE */
- { 7107, 0x00000C32 }, /* GL_DOUBLEBUFFER */
- { 7123, 0x00000C01 }, /* GL_DRAW_BUFFER */
- { 7138, 0x00008825 }, /* GL_DRAW_BUFFER0 */
- { 7154, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
- { 7174, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
- { 7194, 0x00008826 }, /* GL_DRAW_BUFFER1 */
- { 7210, 0x0000882F }, /* GL_DRAW_BUFFER10 */
- { 7227, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
- { 7248, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
- { 7269, 0x00008830 }, /* GL_DRAW_BUFFER11 */
- { 7286, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
- { 7307, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
- { 7328, 0x00008831 }, /* GL_DRAW_BUFFER12 */
- { 7345, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
- { 7366, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
- { 7387, 0x00008832 }, /* GL_DRAW_BUFFER13 */
- { 7404, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
- { 7425, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
- { 7446, 0x00008833 }, /* GL_DRAW_BUFFER14 */
- { 7463, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
- { 7484, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
- { 7505, 0x00008834 }, /* GL_DRAW_BUFFER15 */
- { 7522, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
- { 7543, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
- { 7564, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
- { 7584, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
- { 7604, 0x00008827 }, /* GL_DRAW_BUFFER2 */
- { 7620, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
- { 7640, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
- { 7660, 0x00008828 }, /* GL_DRAW_BUFFER3 */
- { 7676, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
- { 7696, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
- { 7716, 0x00008829 }, /* GL_DRAW_BUFFER4 */
- { 7732, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
- { 7752, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
- { 7772, 0x0000882A }, /* GL_DRAW_BUFFER5 */
- { 7788, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
- { 7808, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
- { 7828, 0x0000882B }, /* GL_DRAW_BUFFER6 */
- { 7844, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
- { 7864, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
- { 7884, 0x0000882C }, /* GL_DRAW_BUFFER7 */
- { 7900, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
- { 7920, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
- { 7940, 0x0000882D }, /* GL_DRAW_BUFFER8 */
- { 7956, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
- { 7976, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
- { 7996, 0x0000882E }, /* GL_DRAW_BUFFER9 */
- { 8012, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
- { 8032, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
- { 8052, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- { 8084, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
- { 8108, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
- { 8128, 0x00000304 }, /* GL_DST_ALPHA */
- { 8141, 0x00000306 }, /* GL_DST_COLOR */
- { 8154, 0x000088EA }, /* GL_DYNAMIC_COPY */
- { 8170, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
- { 8190, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
- { 8206, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
- { 8226, 0x000088E9 }, /* GL_DYNAMIC_READ */
- { 8242, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
- { 8262, 0x00000B43 }, /* GL_EDGE_FLAG */
- { 8275, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
- { 8294, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- { 8328, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
- { 8366, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
- { 8393, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- { 8419, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
- { 8443, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER_ARB */
- { 8471, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- { 8503, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
- { 8539, 0x00001600 }, /* GL_EMISSION */
- { 8551, 0x00002000 }, /* GL_ENABLE_BIT */
- { 8565, 0x00000202 }, /* GL_EQUAL */
- { 8574, 0x00001509 }, /* GL_EQUIV */
- { 8583, 0x00010000 }, /* GL_EVAL_BIT */
- { 8595, 0x00000800 }, /* GL_EXP */
- { 8602, 0x00000801 }, /* GL_EXP2 */
- { 8610, 0x00001F03 }, /* GL_EXTENSIONS */
- { 8624, 0x00002400 }, /* GL_EYE_LINEAR */
- { 8638, 0x00002502 }, /* GL_EYE_PLANE */
- { 8651, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
- { 8676, 0x0000855B }, /* GL_EYE_RADIAL_NV */
- { 8693, 0x00000000 }, /* GL_FALSE */
- { 8702, 0x00001101 }, /* GL_FASTEST */
- { 8713, 0x00001C01 }, /* GL_FEEDBACK */
- { 8725, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
- { 8752, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
- { 8776, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
- { 8800, 0x00001B02 }, /* GL_FILL */
- { 8808, 0x00001D00 }, /* GL_FLAT */
- { 8816, 0x00001406 }, /* GL_FLOAT */
- { 8825, 0x00008B5A }, /* GL_FLOAT_MAT2 */
- { 8839, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
- { 8857, 0x00008B5B }, /* GL_FLOAT_MAT3 */
- { 8871, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
- { 8889, 0x00008B5C }, /* GL_FLOAT_MAT4 */
- { 8903, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
- { 8921, 0x00008B50 }, /* GL_FLOAT_VEC2 */
- { 8935, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
- { 8953, 0x00008B51 }, /* GL_FLOAT_VEC3 */
- { 8967, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
- { 8985, 0x00008B52 }, /* GL_FLOAT_VEC4 */
- { 8999, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
- { 9017, 0x00000B60 }, /* GL_FOG */
- { 9024, 0x00000080 }, /* GL_FOG_BIT */
- { 9035, 0x00000B66 }, /* GL_FOG_COLOR */
- { 9048, 0x00008451 }, /* GL_FOG_COORD */
- { 9061, 0x00008451 }, /* GL_FOG_COORDINATE */
- { 9079, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
- { 9103, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- { 9142, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
- { 9185, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- { 9217, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- { 9248, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- { 9277, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
- { 9302, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
- { 9321, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
- { 9355, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
- { 9382, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
- { 9408, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
- { 9432, 0x00008450 }, /* GL_FOG_COORD_SRC */
- { 9449, 0x00000B62 }, /* GL_FOG_DENSITY */
- { 9464, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
- { 9488, 0x00000B64 }, /* GL_FOG_END */
- { 9499, 0x00000C54 }, /* GL_FOG_HINT */
- { 9511, 0x00000B61 }, /* GL_FOG_INDEX */
- { 9524, 0x00000B65 }, /* GL_FOG_MODE */
- { 9536, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
- { 9555, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
- { 9580, 0x00000B63 }, /* GL_FOG_START */
- { 9593, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
- { 9611, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
- { 9635, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
- { 9654, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
- { 9677, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- { 9712, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- { 9754, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- { 9796, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- { 9845, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- { 9897, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- { 9941, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
- { 9968, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- { 9996, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
- { 10015, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- { 10056, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- { 10097, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- { 10139, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- { 10190, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- { 10228, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- { 10277, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- { 10319, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- { 10351, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- { 10382, 0x00000404 }, /* GL_FRONT */
- { 10391, 0x00000408 }, /* GL_FRONT_AND_BACK */
- { 10409, 0x00000B46 }, /* GL_FRONT_FACE */
- { 10423, 0x00000400 }, /* GL_FRONT_LEFT */
- { 10437, 0x00000401 }, /* GL_FRONT_RIGHT */
- { 10452, 0x00008006 }, /* GL_FUNC_ADD */
- { 10464, 0x00008006 }, /* GL_FUNC_ADD_EXT */
- { 10480, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
- { 10505, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
- { 10534, 0x0000800A }, /* GL_FUNC_SUBTRACT */
- { 10551, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
- { 10572, 0x00008191 }, /* GL_GENERATE_MIPMAP */
- { 10591, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
- { 10615, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
- { 10644, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
- { 10668, 0x00000206 }, /* GL_GEQUAL */
- { 10678, 0x00008009 }, /* GL_GL_BLEND_EQUATION_RGB */
- { 10703, 0x00008C4A }, /* GL_GL_COMPRESSED_SLUMINANCE */
- { 10731, 0x00008C4B }, /* GL_GL_COMPRESSED_SLUMINANCE_ALPHA */
- { 10765, 0x00008C48 }, /* GL_GL_COMPRESSED_SRGB */
- { 10787, 0x00008C49 }, /* GL_GL_COMPRESSED_SRGB_ALPHA */
- { 10815, 0x0000845F }, /* GL_GL_CURRENT_RASTER_SECONDARY_COLOR */
- { 10852, 0x00008B65 }, /* GL_GL_FLOAT_MAT2x3 */
- { 10871, 0x00008B66 }, /* GL_GL_FLOAT_MAT2x4 */
- { 10890, 0x00008B67 }, /* GL_GL_FLOAT_MAT3x2 */
- { 10909, 0x00008B68 }, /* GL_GL_FLOAT_MAT3x4 */
- { 10928, 0x00008B69 }, /* GL_GL_FLOAT_MAT4x2 */
- { 10947, 0x00008B6A }, /* GL_GL_FLOAT_MAT4x3 */
- { 10966, 0x000088EB }, /* GL_GL_PIXEL_PACK_BUFFER */
- { 10990, 0x000088ED }, /* GL_GL_PIXEL_PACK_BUFFER_BINDING */
- { 11022, 0x000088EC }, /* GL_GL_PIXEL_UNPACK_BUFFER */
- { 11048, 0x000088EF }, /* GL_GL_PIXEL_UNPACK_BUFFER_BINDING */
- { 11082, 0x00008C46 }, /* GL_GL_SLUMINANCE */
- { 11099, 0x00008C47 }, /* GL_GL_SLUMINANCE8 */
- { 11117, 0x00008C45 }, /* GL_GL_SLUMINANCE8_ALPHA8 */
- { 11142, 0x00008C44 }, /* GL_GL_SLUMINANCE_ALPHA */
- { 11165, 0x00008C40 }, /* GL_GL_SRGB */
- { 11176, 0x00008C41 }, /* GL_GL_SRGB8 */
- { 11188, 0x00008C43 }, /* GL_GL_SRGB8_ALPHA8 */
- { 11207, 0x00008C42 }, /* GL_GL_SRGB_ALPHA */
- { 11224, 0x00000204 }, /* GL_GREATER */
- { 11235, 0x00001904 }, /* GL_GREEN */
- { 11244, 0x00000D19 }, /* GL_GREEN_BIAS */
- { 11258, 0x00000D53 }, /* GL_GREEN_BITS */
- { 11272, 0x00000D18 }, /* GL_GREEN_SCALE */
- { 11287, 0x00008000 }, /* GL_HINT_BIT */
- { 11299, 0x00008024 }, /* GL_HISTOGRAM */
- { 11312, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
- { 11336, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
- { 11364, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
- { 11387, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
- { 11414, 0x00008024 }, /* GL_HISTOGRAM_EXT */
- { 11431, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
- { 11451, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
- { 11475, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
- { 11499, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
- { 11527, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- { 11555, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
- { 11587, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
- { 11609, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
- { 11635, 0x0000802D }, /* GL_HISTOGRAM_SINK */
- { 11653, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
- { 11675, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
- { 11694, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
- { 11717, 0x0000862A }, /* GL_IDENTITY_NV */
- { 11732, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
- { 11752, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- { 11792, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- { 11830, 0x00001E02 }, /* GL_INCR */
- { 11838, 0x00008507 }, /* GL_INCR_WRAP */
- { 11851, 0x00008507 }, /* GL_INCR_WRAP_EXT */
- { 11868, 0x00008077 }, /* GL_INDEX_ARRAY */
- { 11883, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- { 11913, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
- { 11947, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
- { 11970, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
- { 11992, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
- { 12012, 0x00000D51 }, /* GL_INDEX_BITS */
- { 12026, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
- { 12047, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
- { 12065, 0x00000C30 }, /* GL_INDEX_MODE */
- { 12079, 0x00000D13 }, /* GL_INDEX_OFFSET */
- { 12095, 0x00000D12 }, /* GL_INDEX_SHIFT */
- { 12110, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
- { 12129, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
- { 12148, 0x00001404 }, /* GL_INT */
- { 12155, 0x00008049 }, /* GL_INTENSITY */
- { 12168, 0x0000804C }, /* GL_INTENSITY12 */
- { 12183, 0x0000804C }, /* GL_INTENSITY12_EXT */
- { 12202, 0x0000804D }, /* GL_INTENSITY16 */
- { 12217, 0x0000804D }, /* GL_INTENSITY16_EXT */
- { 12236, 0x0000804A }, /* GL_INTENSITY4 */
- { 12250, 0x0000804A }, /* GL_INTENSITY4_EXT */
- { 12268, 0x0000804B }, /* GL_INTENSITY8 */
- { 12282, 0x0000804B }, /* GL_INTENSITY8_EXT */
- { 12300, 0x00008049 }, /* GL_INTENSITY_EXT */
- { 12317, 0x00008575 }, /* GL_INTERPOLATE */
- { 12332, 0x00008575 }, /* GL_INTERPOLATE_ARB */
- { 12351, 0x00008575 }, /* GL_INTERPOLATE_EXT */
- { 12370, 0x00008B53 }, /* GL_INT_VEC2 */
- { 12382, 0x00008B53 }, /* GL_INT_VEC2_ARB */
- { 12398, 0x00008B54 }, /* GL_INT_VEC3 */
- { 12410, 0x00008B54 }, /* GL_INT_VEC3_ARB */
- { 12426, 0x00008B55 }, /* GL_INT_VEC4 */
- { 12438, 0x00008B55 }, /* GL_INT_VEC4_ARB */
- { 12454, 0x00000500 }, /* GL_INVALID_ENUM */
- { 12470, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
- { 12507, 0x00000502 }, /* GL_INVALID_OPERATION */
- { 12528, 0x00000501 }, /* GL_INVALID_VALUE */
- { 12545, 0x0000862B }, /* GL_INVERSE_NV */
- { 12559, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
- { 12583, 0x0000150A }, /* GL_INVERT */
- { 12593, 0x00001E00 }, /* GL_KEEP */
- { 12601, 0x00000406 }, /* GL_LEFT */
- { 12609, 0x00000203 }, /* GL_LEQUAL */
- { 12619, 0x00000201 }, /* GL_LESS */
- { 12627, 0x00004000 }, /* GL_LIGHT0 */
- { 12637, 0x00004001 }, /* GL_LIGHT1 */
- { 12647, 0x00004002 }, /* GL_LIGHT2 */
- { 12657, 0x00004003 }, /* GL_LIGHT3 */
- { 12667, 0x00004004 }, /* GL_LIGHT4 */
- { 12677, 0x00004005 }, /* GL_LIGHT5 */
- { 12687, 0x00004006 }, /* GL_LIGHT6 */
- { 12697, 0x00004007 }, /* GL_LIGHT7 */
- { 12707, 0x00000B50 }, /* GL_LIGHTING */
- { 12719, 0x00000040 }, /* GL_LIGHTING_BIT */
- { 12735, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
- { 12758, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- { 12787, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
- { 12820, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- { 12848, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
- { 12872, 0x00001B01 }, /* GL_LINE */
- { 12880, 0x00002601 }, /* GL_LINEAR */
- { 12890, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
- { 12912, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- { 12942, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- { 12973, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
- { 12997, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
- { 13022, 0x00000001 }, /* GL_LINES */
- { 13031, 0x00000004 }, /* GL_LINE_BIT */
- { 13043, 0x00000002 }, /* GL_LINE_LOOP */
- { 13056, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
- { 13076, 0x00000B20 }, /* GL_LINE_SMOOTH */
- { 13091, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
- { 13111, 0x00000B24 }, /* GL_LINE_STIPPLE */
- { 13127, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
- { 13151, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
- { 13174, 0x00000003 }, /* GL_LINE_STRIP */
- { 13188, 0x00000702 }, /* GL_LINE_TOKEN */
- { 13202, 0x00000B21 }, /* GL_LINE_WIDTH */
- { 13216, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
- { 13242, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
- { 13262, 0x00008B82 }, /* GL_LINK_STATUS */
- { 13277, 0x00000B32 }, /* GL_LIST_BASE */
- { 13290, 0x00020000 }, /* GL_LIST_BIT */
- { 13302, 0x00000B33 }, /* GL_LIST_INDEX */
- { 13316, 0x00000B30 }, /* GL_LIST_MODE */
- { 13329, 0x00000101 }, /* GL_LOAD */
- { 13337, 0x00000BF1 }, /* GL_LOGIC_OP */
- { 13349, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
- { 13366, 0x00008CA1 }, /* GL_LOWER_LEFT */
- { 13380, 0x00001909 }, /* GL_LUMINANCE */
- { 13393, 0x00008041 }, /* GL_LUMINANCE12 */
- { 13408, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
- { 13431, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
- { 13458, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
- { 13480, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
- { 13506, 0x00008041 }, /* GL_LUMINANCE12_EXT */
- { 13525, 0x00008042 }, /* GL_LUMINANCE16 */
- { 13540, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
- { 13563, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
- { 13590, 0x00008042 }, /* GL_LUMINANCE16_EXT */
- { 13609, 0x0000803F }, /* GL_LUMINANCE4 */
- { 13623, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
- { 13644, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
- { 13669, 0x0000803F }, /* GL_LUMINANCE4_EXT */
- { 13687, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
- { 13708, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
- { 13733, 0x00008040 }, /* GL_LUMINANCE8 */
- { 13747, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
- { 13768, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
- { 13793, 0x00008040 }, /* GL_LUMINANCE8_EXT */
- { 13811, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
- { 13830, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
- { 13846, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
- { 13866, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
- { 13888, 0x00000D91 }, /* GL_MAP1_INDEX */
- { 13902, 0x00000D92 }, /* GL_MAP1_NORMAL */
- { 13917, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
- { 13941, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
- { 13965, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
- { 13989, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
- { 14013, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
- { 14030, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
- { 14047, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- { 14075, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- { 14104, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- { 14133, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- { 14162, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- { 14191, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- { 14220, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- { 14249, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- { 14277, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- { 14305, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- { 14333, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- { 14361, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- { 14389, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- { 14417, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- { 14445, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- { 14473, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- { 14501, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
- { 14517, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
- { 14537, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
- { 14559, 0x00000DB1 }, /* GL_MAP2_INDEX */
- { 14573, 0x00000DB2 }, /* GL_MAP2_NORMAL */
- { 14588, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
- { 14612, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
- { 14636, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
- { 14660, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
- { 14684, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
- { 14701, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
- { 14718, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- { 14746, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- { 14775, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- { 14804, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- { 14833, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- { 14862, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- { 14891, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- { 14920, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- { 14948, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- { 14976, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- { 15004, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- { 15032, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- { 15060, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- { 15088, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
- { 15116, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- { 15144, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- { 15172, 0x00000D10 }, /* GL_MAP_COLOR */
- { 15185, 0x00000D11 }, /* GL_MAP_STENCIL */
- { 15200, 0x000088C0 }, /* GL_MATRIX0_ARB */
- { 15215, 0x00008630 }, /* GL_MATRIX0_NV */
- { 15229, 0x000088CA }, /* GL_MATRIX10_ARB */
- { 15245, 0x000088CB }, /* GL_MATRIX11_ARB */
- { 15261, 0x000088CC }, /* GL_MATRIX12_ARB */
- { 15277, 0x000088CD }, /* GL_MATRIX13_ARB */
- { 15293, 0x000088CE }, /* GL_MATRIX14_ARB */
- { 15309, 0x000088CF }, /* GL_MATRIX15_ARB */
- { 15325, 0x000088D0 }, /* GL_MATRIX16_ARB */
- { 15341, 0x000088D1 }, /* GL_MATRIX17_ARB */
- { 15357, 0x000088D2 }, /* GL_MATRIX18_ARB */
- { 15373, 0x000088D3 }, /* GL_MATRIX19_ARB */
- { 15389, 0x000088C1 }, /* GL_MATRIX1_ARB */
- { 15404, 0x00008631 }, /* GL_MATRIX1_NV */
- { 15418, 0x000088D4 }, /* GL_MATRIX20_ARB */
- { 15434, 0x000088D5 }, /* GL_MATRIX21_ARB */
- { 15450, 0x000088D6 }, /* GL_MATRIX22_ARB */
- { 15466, 0x000088D7 }, /* GL_MATRIX23_ARB */
- { 15482, 0x000088D8 }, /* GL_MATRIX24_ARB */
- { 15498, 0x000088D9 }, /* GL_MATRIX25_ARB */
- { 15514, 0x000088DA }, /* GL_MATRIX26_ARB */
- { 15530, 0x000088DB }, /* GL_MATRIX27_ARB */
- { 15546, 0x000088DC }, /* GL_MATRIX28_ARB */
- { 15562, 0x000088DD }, /* GL_MATRIX29_ARB */
- { 15578, 0x000088C2 }, /* GL_MATRIX2_ARB */
- { 15593, 0x00008632 }, /* GL_MATRIX2_NV */
- { 15607, 0x000088DE }, /* GL_MATRIX30_ARB */
- { 15623, 0x000088DF }, /* GL_MATRIX31_ARB */
- { 15639, 0x000088C3 }, /* GL_MATRIX3_ARB */
- { 15654, 0x00008633 }, /* GL_MATRIX3_NV */
- { 15668, 0x000088C4 }, /* GL_MATRIX4_ARB */
- { 15683, 0x00008634 }, /* GL_MATRIX4_NV */
- { 15697, 0x000088C5 }, /* GL_MATRIX5_ARB */
- { 15712, 0x00008635 }, /* GL_MATRIX5_NV */
- { 15726, 0x000088C6 }, /* GL_MATRIX6_ARB */
- { 15741, 0x00008636 }, /* GL_MATRIX6_NV */
- { 15755, 0x000088C7 }, /* GL_MATRIX7_ARB */
- { 15770, 0x00008637 }, /* GL_MATRIX7_NV */
- { 15784, 0x000088C8 }, /* GL_MATRIX8_ARB */
- { 15799, 0x000088C9 }, /* GL_MATRIX9_ARB */
- { 15814, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
- { 15840, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- { 15874, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- { 15905, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- { 15938, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- { 15969, 0x00000BA0 }, /* GL_MATRIX_MODE */
- { 15984, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
- { 16006, 0x00008008 }, /* GL_MAX */
- { 16013, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
- { 16036, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
- { 16062, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- { 16095, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- { 16121, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 16155, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
- { 16174, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- { 16203, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- { 16235, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 16271, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- { 16307, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
- { 16347, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
- { 16373, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
- { 16403, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
- { 16428, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
- { 16457, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- { 16486, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
- { 16519, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
- { 16539, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
- { 16563, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
- { 16587, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
- { 16611, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
- { 16636, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
- { 16654, 0x00008008 }, /* GL_MAX_EXT */
- { 16665, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- { 16700, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
- { 16739, 0x00000D31 }, /* GL_MAX_LIGHTS */
- { 16753, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
- { 16773, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- { 16811, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- { 16840, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
- { 16864, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
- { 16892, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
- { 16915, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 16952, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 16988, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- { 17015, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- { 17044, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- { 17078, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- { 17114, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- { 17141, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- { 17173, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- { 17209, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- { 17238, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- { 17267, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
- { 17295, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- { 17333, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 17377, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 17420, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 17454, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 17493, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 17530, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 17568, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 17611, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 17654, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- { 17684, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- { 17715, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 17751, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 17787, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
- { 17817, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- { 17851, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
- { 17884, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- { 17913, 0x00008504 }, /* GL_MAX_SHININESS_NV */
- { 17933, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
- { 17957, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
- { 17979, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
- { 18005, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- { 18032, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
- { 18063, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
- { 18087, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- { 18121, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
- { 18141, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
- { 18168, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
- { 18189, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
- { 18214, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
- { 18239, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
- { 18274, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
- { 18296, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
- { 18322, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
- { 18344, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
- { 18370, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- { 18404, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
- { 18442, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- { 18475, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
- { 18512, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
- { 18536, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
- { 18557, 0x00008007 }, /* GL_MIN */
- { 18564, 0x0000802E }, /* GL_MINMAX */
- { 18574, 0x0000802E }, /* GL_MINMAX_EXT */
- { 18588, 0x0000802F }, /* GL_MINMAX_FORMAT */
- { 18605, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
- { 18626, 0x00008030 }, /* GL_MINMAX_SINK */
- { 18641, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
- { 18660, 0x00008007 }, /* GL_MIN_EXT */
- { 18671, 0x00008370 }, /* GL_MIRRORED_REPEAT */
- { 18690, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
- { 18713, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
- { 18736, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
- { 18756, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
- { 18776, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- { 18806, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
- { 18834, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- { 18862, 0x00001700 }, /* GL_MODELVIEW */
- { 18875, 0x00001700 }, /* GL_MODELVIEW0_ARB */
- { 18893, 0x0000872A }, /* GL_MODELVIEW10_ARB */
- { 18912, 0x0000872B }, /* GL_MODELVIEW11_ARB */
- { 18931, 0x0000872C }, /* GL_MODELVIEW12_ARB */
- { 18950, 0x0000872D }, /* GL_MODELVIEW13_ARB */
- { 18969, 0x0000872E }, /* GL_MODELVIEW14_ARB */
- { 18988, 0x0000872F }, /* GL_MODELVIEW15_ARB */
- { 19007, 0x00008730 }, /* GL_MODELVIEW16_ARB */
- { 19026, 0x00008731 }, /* GL_MODELVIEW17_ARB */
- { 19045, 0x00008732 }, /* GL_MODELVIEW18_ARB */
- { 19064, 0x00008733 }, /* GL_MODELVIEW19_ARB */
- { 19083, 0x0000850A }, /* GL_MODELVIEW1_ARB */
- { 19101, 0x00008734 }, /* GL_MODELVIEW20_ARB */
- { 19120, 0x00008735 }, /* GL_MODELVIEW21_ARB */
- { 19139, 0x00008736 }, /* GL_MODELVIEW22_ARB */
- { 19158, 0x00008737 }, /* GL_MODELVIEW23_ARB */
- { 19177, 0x00008738 }, /* GL_MODELVIEW24_ARB */
- { 19196, 0x00008739 }, /* GL_MODELVIEW25_ARB */
- { 19215, 0x0000873A }, /* GL_MODELVIEW26_ARB */
- { 19234, 0x0000873B }, /* GL_MODELVIEW27_ARB */
- { 19253, 0x0000873C }, /* GL_MODELVIEW28_ARB */
- { 19272, 0x0000873D }, /* GL_MODELVIEW29_ARB */
- { 19291, 0x00008722 }, /* GL_MODELVIEW2_ARB */
- { 19309, 0x0000873E }, /* GL_MODELVIEW30_ARB */
- { 19328, 0x0000873F }, /* GL_MODELVIEW31_ARB */
- { 19347, 0x00008723 }, /* GL_MODELVIEW3_ARB */
- { 19365, 0x00008724 }, /* GL_MODELVIEW4_ARB */
- { 19383, 0x00008725 }, /* GL_MODELVIEW5_ARB */
- { 19401, 0x00008726 }, /* GL_MODELVIEW6_ARB */
- { 19419, 0x00008727 }, /* GL_MODELVIEW7_ARB */
- { 19437, 0x00008728 }, /* GL_MODELVIEW8_ARB */
- { 19455, 0x00008729 }, /* GL_MODELVIEW9_ARB */
- { 19473, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
- { 19493, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
- { 19520, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
- { 19545, 0x00002100 }, /* GL_MODULATE */
- { 19557, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
- { 19577, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
- { 19604, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
- { 19629, 0x00000103 }, /* GL_MULT */
- { 19637, 0x0000809D }, /* GL_MULTISAMPLE */
- { 19652, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
- { 19672, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
- { 19691, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
- { 19710, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
- { 19734, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
- { 19757, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- { 19787, 0x00002A25 }, /* GL_N3F_V3F */
- { 19798, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
- { 19818, 0x0000150E }, /* GL_NAND */
- { 19826, 0x00002600 }, /* GL_NEAREST */
- { 19837, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- { 19868, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- { 19900, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
- { 19925, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
- { 19951, 0x00000200 }, /* GL_NEVER */
- { 19960, 0x00001102 }, /* GL_NICEST */
- { 19970, 0x00000000 }, /* GL_NONE */
- { 19978, 0x00001505 }, /* GL_NOOP */
- { 19986, 0x00001508 }, /* GL_NOR */
- { 19993, 0x00000BA1 }, /* GL_NORMALIZE */
- { 20006, 0x00008075 }, /* GL_NORMAL_ARRAY */
- { 20022, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- { 20053, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
- { 20088, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
- { 20112, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
- { 20135, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
- { 20156, 0x00008511 }, /* GL_NORMAL_MAP */
- { 20170, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
- { 20188, 0x00008511 }, /* GL_NORMAL_MAP_NV */
- { 20205, 0x00000205 }, /* GL_NOTEQUAL */
- { 20217, 0x00000000 }, /* GL_NO_ERROR */
- { 20229, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- { 20263, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
- { 20301, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
- { 20333, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
- { 20375, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
- { 20405, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
- { 20445, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
- { 20476, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
- { 20505, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
- { 20533, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
- { 20563, 0x00002401 }, /* GL_OBJECT_LINEAR */
- { 20580, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
- { 20606, 0x00002501 }, /* GL_OBJECT_PLANE */
- { 20622, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
- { 20657, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
- { 20679, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
- { 20698, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
- { 20728, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
- { 20749, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
- { 20777, 0x00000001 }, /* GL_ONE */
- { 20784, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- { 20812, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
- { 20844, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
- { 20872, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
- { 20904, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
- { 20927, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
- { 20950, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
- { 20973, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
- { 20996, 0x00008598 }, /* GL_OPERAND0_ALPHA */
- { 21014, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
- { 21036, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
- { 21058, 0x00008590 }, /* GL_OPERAND0_RGB */
- { 21074, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
- { 21094, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
- { 21114, 0x00008599 }, /* GL_OPERAND1_ALPHA */
- { 21132, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
- { 21154, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
- { 21176, 0x00008591 }, /* GL_OPERAND1_RGB */
- { 21192, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
- { 21212, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
- { 21232, 0x0000859A }, /* GL_OPERAND2_ALPHA */
- { 21250, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
- { 21272, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
- { 21294, 0x00008592 }, /* GL_OPERAND2_RGB */
- { 21310, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
- { 21330, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
- { 21350, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
- { 21371, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
- { 21390, 0x00001507 }, /* GL_OR */
- { 21396, 0x00000A01 }, /* GL_ORDER */
- { 21405, 0x0000150D }, /* GL_OR_INVERTED */
- { 21420, 0x0000150B }, /* GL_OR_REVERSE */
- { 21434, 0x00000505 }, /* GL_OUT_OF_MEMORY */
- { 21451, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
- { 21469, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
- { 21490, 0x00008758 }, /* GL_PACK_INVERT_MESA */
- { 21510, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
- { 21528, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
- { 21547, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
- { 21567, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
- { 21587, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
- { 21605, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
- { 21624, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
- { 21649, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
- { 21673, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
- { 21694, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
- { 21716, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
- { 21738, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
- { 21763, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
- { 21787, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
- { 21808, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
- { 21830, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
- { 21852, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
- { 21874, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
- { 21905, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
- { 21925, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- { 21950, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
- { 21970, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- { 21995, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
- { 22015, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- { 22040, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
- { 22060, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- { 22085, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
- { 22105, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- { 22130, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
- { 22150, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- { 22175, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
- { 22195, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- { 22220, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
- { 22240, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- { 22265, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
- { 22285, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- { 22310, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
- { 22330, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- { 22355, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
- { 22373, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
- { 22406, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
- { 22431, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
- { 22466, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
- { 22493, 0x00001B00 }, /* GL_POINT */
- { 22502, 0x00000000 }, /* GL_POINTS */
- { 22512, 0x00000002 }, /* GL_POINT_BIT */
- { 22525, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
- { 22555, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
- { 22589, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
- { 22623, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
- { 22658, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
- { 22687, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
- { 22720, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
- { 22753, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
- { 22787, 0x00000B11 }, /* GL_POINT_SIZE */
- { 22801, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
- { 22827, 0x00008127 }, /* GL_POINT_SIZE_MAX */
- { 22845, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
- { 22867, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
- { 22889, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
- { 22912, 0x00008126 }, /* GL_POINT_SIZE_MIN */
- { 22930, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
- { 22952, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
- { 22974, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
- { 22997, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
- { 23017, 0x00000B10 }, /* GL_POINT_SMOOTH */
- { 23033, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
- { 23054, 0x00008861 }, /* GL_POINT_SPRITE */
- { 23070, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
- { 23090, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
- { 23119, 0x00008861 }, /* GL_POINT_SPRITE_NV */
- { 23138, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
- { 23164, 0x00000701 }, /* GL_POINT_TOKEN */
- { 23179, 0x00000009 }, /* GL_POLYGON */
- { 23190, 0x00000008 }, /* GL_POLYGON_BIT */
- { 23205, 0x00000B40 }, /* GL_POLYGON_MODE */
- { 23221, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
- { 23244, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
- { 23269, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
- { 23292, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
- { 23315, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
- { 23339, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
- { 23363, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
- { 23381, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
- { 23404, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
- { 23423, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
- { 23446, 0x00000703 }, /* GL_POLYGON_TOKEN */
- { 23463, 0x00001203 }, /* GL_POSITION */
- { 23475, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- { 23507, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
- { 23543, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- { 23576, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
- { 23613, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- { 23644, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
- { 23679, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- { 23711, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
- { 23747, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- { 23780, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- { 23812, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
- { 23848, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- { 23881, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
- { 23918, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- { 23948, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
- { 23982, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- { 24013, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
- { 24048, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- { 24079, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
- { 24114, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- { 24146, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
- { 24182, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- { 24212, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
- { 24246, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- { 24277, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
- { 24312, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- { 24344, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- { 24375, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
- { 24410, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- { 24442, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
- { 24478, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
- { 24507, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
- { 24540, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
- { 24570, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
- { 24604, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- { 24643, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- { 24676, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- { 24716, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- { 24750, 0x00008578 }, /* GL_PREVIOUS */
- { 24762, 0x00008578 }, /* GL_PREVIOUS_ARB */
- { 24778, 0x00008578 }, /* GL_PREVIOUS_EXT */
- { 24794, 0x00008577 }, /* GL_PRIMARY_COLOR */
- { 24811, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
- { 24832, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
- { 24853, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 24886, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 24918, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
- { 24941, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
- { 24964, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
- { 24994, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
- { 25023, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
- { 25051, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
- { 25073, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- { 25101, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- { 25129, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
- { 25151, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
- { 25172, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 25212, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 25251, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 25281, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 25316, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 25349, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 25383, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 25422, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 25461, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
- { 25483, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
- { 25509, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
- { 25533, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
- { 25556, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
- { 25578, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
- { 25599, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
- { 25620, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
- { 25647, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 25679, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 25711, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- { 25746, 0x00001701 }, /* GL_PROJECTION */
- { 25760, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
- { 25781, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
- { 25807, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
- { 25828, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
- { 25847, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
- { 25870, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- { 25909, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- { 25947, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
- { 25967, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
- { 25991, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
- { 26011, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
- { 26035, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
- { 26055, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- { 26088, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
- { 26114, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
- { 26144, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- { 26175, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
- { 26205, 0x00002003 }, /* GL_Q */
- { 26210, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
- { 26235, 0x00000007 }, /* GL_QUADS */
- { 26244, 0x00008614 }, /* GL_QUAD_MESH_SUN */
- { 26261, 0x00000008 }, /* GL_QUAD_STRIP */
- { 26275, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
- { 26297, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
- { 26323, 0x00008866 }, /* GL_QUERY_RESULT */
- { 26339, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
- { 26359, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
- { 26385, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
- { 26415, 0x00002002 }, /* GL_R */
- { 26420, 0x00002A10 }, /* GL_R3_G3_B2 */
- { 26432, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- { 26465, 0x00000C02 }, /* GL_READ_BUFFER */
- { 26480, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- { 26512, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
- { 26536, 0x000088B8 }, /* GL_READ_ONLY */
- { 26549, 0x000088B8 }, /* GL_READ_ONLY_ARB */
- { 26566, 0x000088BA }, /* GL_READ_WRITE */
- { 26580, 0x000088BA }, /* GL_READ_WRITE_ARB */
- { 26598, 0x00001903 }, /* GL_RED */
- { 26605, 0x00008016 }, /* GL_REDUCE */
- { 26615, 0x00008016 }, /* GL_REDUCE_EXT */
- { 26629, 0x00000D15 }, /* GL_RED_BIAS */
- { 26641, 0x00000D52 }, /* GL_RED_BITS */
- { 26653, 0x00000D14 }, /* GL_RED_SCALE */
- { 26666, 0x00008512 }, /* GL_REFLECTION_MAP */
- { 26684, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
- { 26706, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
- { 26727, 0x00001C00 }, /* GL_RENDER */
- { 26737, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
- { 26765, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
- { 26785, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
- { 26812, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- { 26848, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
- { 26874, 0x00001F01 }, /* GL_RENDERER */
- { 26886, 0x00000C40 }, /* GL_RENDER_MODE */
- { 26901, 0x00002901 }, /* GL_REPEAT */
- { 26911, 0x00001E01 }, /* GL_REPLACE */
- { 26922, 0x00008062 }, /* GL_REPLACE_EXT */
- { 26937, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
- { 26960, 0x0000803A }, /* GL_RESCALE_NORMAL */
- { 26978, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
- { 27000, 0x00000102 }, /* GL_RETURN */
- { 27010, 0x00001907 }, /* GL_RGB */
- { 27017, 0x00008052 }, /* GL_RGB10 */
- { 27026, 0x00008059 }, /* GL_RGB10_A2 */
- { 27038, 0x00008059 }, /* GL_RGB10_A2_EXT */
- { 27054, 0x00008052 }, /* GL_RGB10_EXT */
- { 27067, 0x00008053 }, /* GL_RGB12 */
- { 27076, 0x00008053 }, /* GL_RGB12_EXT */
- { 27089, 0x00008054 }, /* GL_RGB16 */
- { 27098, 0x00008054 }, /* GL_RGB16_EXT */
- { 27111, 0x0000804E }, /* GL_RGB2_EXT */
- { 27123, 0x0000804F }, /* GL_RGB4 */
- { 27131, 0x0000804F }, /* GL_RGB4_EXT */
- { 27143, 0x000083A1 }, /* GL_RGB4_S3TC */
- { 27156, 0x00008050 }, /* GL_RGB5 */
- { 27164, 0x00008057 }, /* GL_RGB5_A1 */
- { 27175, 0x00008057 }, /* GL_RGB5_A1_EXT */
- { 27190, 0x00008050 }, /* GL_RGB5_EXT */
- { 27202, 0x00008051 }, /* GL_RGB8 */
- { 27210, 0x00008051 }, /* GL_RGB8_EXT */
- { 27222, 0x00001908 }, /* GL_RGBA */
- { 27230, 0x0000805A }, /* GL_RGBA12 */
- { 27240, 0x0000805A }, /* GL_RGBA12_EXT */
- { 27254, 0x0000805B }, /* GL_RGBA16 */
- { 27264, 0x0000805B }, /* GL_RGBA16_EXT */
- { 27278, 0x00008055 }, /* GL_RGBA2 */
- { 27287, 0x00008055 }, /* GL_RGBA2_EXT */
- { 27300, 0x00008056 }, /* GL_RGBA4 */
- { 27309, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
- { 27328, 0x00008056 }, /* GL_RGBA4_EXT */
- { 27341, 0x000083A3 }, /* GL_RGBA4_S3TC */
- { 27355, 0x00008058 }, /* GL_RGBA8 */
- { 27364, 0x00008058 }, /* GL_RGBA8_EXT */
- { 27377, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
- { 27395, 0x00000C31 }, /* GL_RGBA_MODE */
- { 27408, 0x000083A2 }, /* GL_RGBA_S3TC */
- { 27421, 0x000083A0 }, /* GL_RGB_S3TC */
- { 27433, 0x00008573 }, /* GL_RGB_SCALE */
- { 27446, 0x00008573 }, /* GL_RGB_SCALE_ARB */
- { 27463, 0x00008573 }, /* GL_RGB_SCALE_EXT */
- { 27480, 0x00000407 }, /* GL_RIGHT */
- { 27489, 0x00002000 }, /* GL_S */
- { 27494, 0x00008B5D }, /* GL_SAMPLER_1D */
- { 27508, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
- { 27529, 0x00008B5E }, /* GL_SAMPLER_2D */
- { 27543, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
- { 27564, 0x00008B5F }, /* GL_SAMPLER_3D */
- { 27578, 0x00008B60 }, /* GL_SAMPLER_CUBE */
- { 27594, 0x000080A9 }, /* GL_SAMPLES */
- { 27605, 0x000086B4 }, /* GL_SAMPLES_3DFX */
- { 27621, 0x000080A9 }, /* GL_SAMPLES_ARB */
- { 27636, 0x00008914 }, /* GL_SAMPLES_PASSED */
- { 27654, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
- { 27676, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- { 27704, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
- { 27736, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
- { 27759, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
- { 27786, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
- { 27804, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
- { 27827, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
- { 27849, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
- { 27868, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
- { 27891, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
- { 27917, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
- { 27947, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
- { 27972, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
- { 28001, 0x00080000 }, /* GL_SCISSOR_BIT */
- { 28016, 0x00000C10 }, /* GL_SCISSOR_BOX */
- { 28031, 0x00000C11 }, /* GL_SCISSOR_TEST */
- { 28047, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
- { 28072, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- { 28112, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 28156, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- { 28189, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- { 28219, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- { 28251, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- { 28281, 0x00001C02 }, /* GL_SELECT */
- { 28291, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
- { 28319, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
- { 28344, 0x00008012 }, /* GL_SEPARABLE_2D */
- { 28360, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
- { 28387, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
- { 28418, 0x0000150F }, /* GL_SET */
- { 28425, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
- { 28446, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
- { 28470, 0x00008B4F }, /* GL_SHADER_TYPE */
- { 28485, 0x00000B54 }, /* GL_SHADE_MODEL */
- { 28500, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
- { 28528, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
- { 28551, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- { 28581, 0x00001601 }, /* GL_SHININESS */
- { 28594, 0x00001402 }, /* GL_SHORT */
- { 28603, 0x000081F9 }, /* GL_SINGLE_COLOR */
- { 28619, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
- { 28639, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
- { 28658, 0x00001D01 }, /* GL_SMOOTH */
- { 28668, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
- { 28701, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
- { 28728, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
- { 28761, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
- { 28788, 0x00008588 }, /* GL_SOURCE0_ALPHA */
- { 28805, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
- { 28826, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
- { 28847, 0x00008580 }, /* GL_SOURCE0_RGB */
- { 28862, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
- { 28881, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
- { 28900, 0x00008589 }, /* GL_SOURCE1_ALPHA */
- { 28917, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
- { 28938, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
- { 28959, 0x00008581 }, /* GL_SOURCE1_RGB */
- { 28974, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
- { 28993, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
- { 29012, 0x0000858A }, /* GL_SOURCE2_ALPHA */
- { 29029, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
- { 29050, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
- { 29071, 0x00008582 }, /* GL_SOURCE2_RGB */
- { 29086, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
- { 29105, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
- { 29124, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
- { 29144, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
- { 29162, 0x00001202 }, /* GL_SPECULAR */
- { 29174, 0x00002402 }, /* GL_SPHERE_MAP */
- { 29188, 0x00001206 }, /* GL_SPOT_CUTOFF */
- { 29203, 0x00001204 }, /* GL_SPOT_DIRECTION */
- { 29221, 0x00001205 }, /* GL_SPOT_EXPONENT */
- { 29238, 0x00008588 }, /* GL_SRC0_ALPHA */
- { 29252, 0x00008580 }, /* GL_SRC0_RGB */
- { 29264, 0x00008589 }, /* GL_SRC1_ALPHA */
- { 29278, 0x00008581 }, /* GL_SRC1_RGB */
- { 29290, 0x0000858A }, /* GL_SRC2_ALPHA */
- { 29304, 0x00008582 }, /* GL_SRC2_RGB */
- { 29316, 0x00000302 }, /* GL_SRC_ALPHA */
- { 29329, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
- { 29351, 0x00000300 }, /* GL_SRC_COLOR */
- { 29364, 0x00000503 }, /* GL_STACK_OVERFLOW */
- { 29382, 0x00000504 }, /* GL_STACK_UNDERFLOW */
- { 29401, 0x000088E6 }, /* GL_STATIC_COPY */
- { 29416, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
- { 29435, 0x000088E4 }, /* GL_STATIC_DRAW */
- { 29450, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
- { 29469, 0x000088E5 }, /* GL_STATIC_READ */
- { 29484, 0x000088E5 }, /* GL_STATIC_READ_ARB */
- { 29503, 0x00001802 }, /* GL_STENCIL */
- { 29514, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
- { 29540, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 29561, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
- { 29586, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 29607, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
- { 29632, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 29664, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
- { 29700, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 29732, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
- { 29768, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 29788, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 29815, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 29841, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 29857, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 29879, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 29902, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 29918, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 29934, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 29951, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 29974, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 29996, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 30018, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 30040, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 30061, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 30088, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 30115, 0x00000B97 }, /* GL_STENCIL_REF */
- { 30130, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 30146, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 30175, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 30197, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 30218, 0x00000C33 }, /* GL_STEREO */
- { 30228, 0x000088E2 }, /* GL_STREAM_COPY */
- { 30243, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 30262, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 30277, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 30296, 0x000088E1 }, /* GL_STREAM_READ */
- { 30311, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 30330, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 30347, 0x000084E7 }, /* GL_SUBTRACT */
- { 30359, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 30375, 0x00002001 }, /* GL_T */
- { 30380, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 30395, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 30414, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 30430, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 30445, 0x00002A27 }, /* GL_T2F_V3F */
- { 30456, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 30475, 0x00002A28 }, /* GL_T4F_V4F */
- { 30486, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 30509, 0x00001702 }, /* GL_TEXTURE */
- { 30520, 0x000084C0 }, /* GL_TEXTURE0 */
- { 30532, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 30548, 0x000084C1 }, /* GL_TEXTURE1 */
- { 30560, 0x000084CA }, /* GL_TEXTURE10 */
- { 30573, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 30590, 0x000084CB }, /* GL_TEXTURE11 */
- { 30603, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 30620, 0x000084CC }, /* GL_TEXTURE12 */
- { 30633, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 30650, 0x000084CD }, /* GL_TEXTURE13 */
- { 30663, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 30680, 0x000084CE }, /* GL_TEXTURE14 */
- { 30693, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 30710, 0x000084CF }, /* GL_TEXTURE15 */
- { 30723, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 30740, 0x000084D0 }, /* GL_TEXTURE16 */
- { 30753, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 30770, 0x000084D1 }, /* GL_TEXTURE17 */
- { 30783, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 30800, 0x000084D2 }, /* GL_TEXTURE18 */
- { 30813, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 30830, 0x000084D3 }, /* GL_TEXTURE19 */
- { 30843, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 30860, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 30876, 0x000084C2 }, /* GL_TEXTURE2 */
- { 30888, 0x000084D4 }, /* GL_TEXTURE20 */
- { 30901, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 30918, 0x000084D5 }, /* GL_TEXTURE21 */
- { 30931, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 30948, 0x000084D6 }, /* GL_TEXTURE22 */
- { 30961, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 30978, 0x000084D7 }, /* GL_TEXTURE23 */
- { 30991, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 31008, 0x000084D8 }, /* GL_TEXTURE24 */
- { 31021, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 31038, 0x000084D9 }, /* GL_TEXTURE25 */
- { 31051, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 31068, 0x000084DA }, /* GL_TEXTURE26 */
- { 31081, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 31098, 0x000084DB }, /* GL_TEXTURE27 */
- { 31111, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 31128, 0x000084DC }, /* GL_TEXTURE28 */
- { 31141, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 31158, 0x000084DD }, /* GL_TEXTURE29 */
- { 31171, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 31188, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 31204, 0x000084C3 }, /* GL_TEXTURE3 */
- { 31216, 0x000084DE }, /* GL_TEXTURE30 */
- { 31229, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 31246, 0x000084DF }, /* GL_TEXTURE31 */
- { 31259, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 31276, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 31292, 0x000084C4 }, /* GL_TEXTURE4 */
- { 31304, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 31320, 0x000084C5 }, /* GL_TEXTURE5 */
- { 31332, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 31348, 0x000084C6 }, /* GL_TEXTURE6 */
- { 31360, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 31376, 0x000084C7 }, /* GL_TEXTURE7 */
- { 31388, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 31404, 0x000084C8 }, /* GL_TEXTURE8 */
- { 31416, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 31432, 0x000084C9 }, /* GL_TEXTURE9 */
- { 31444, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 31460, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 31474, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 31488, 0x0000806F }, /* GL_TEXTURE_3D */
- { 31502, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 31524, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 31550, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 31572, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 31594, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 31616, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 31638, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 31666, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 31698, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 31731, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 31763, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 31778, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 31799, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 31824, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 31842, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 31866, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 31897, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 31927, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 31957, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 31992, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 32023, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 32061, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 32088, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 32120, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 32154, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 32178, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 32206, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 32230, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 32258, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 32291, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 32315, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 32337, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 32359, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 32385, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 32419, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 32452, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 32489, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 32517, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 32549, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 32572, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 32610, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 32652, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 32683, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 32711, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 32741, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 32769, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 32789, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 32813, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 32844, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 32879, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 32910, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 32945, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 32976, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 33011, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 33042, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 33077, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 33108, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 33143, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 33174, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 33209, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 33226, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 33248, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 33274, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 33289, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 33310, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 33330, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 33356, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 33376, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 33393, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 33410, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 33427, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 33444, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 33469, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 33491, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 33517, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 33535, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 33561, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 33587, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 33617, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 33644, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 33669, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 33689, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 33713, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 33740, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 33767, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 33794, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 33820, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 33850, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 33872, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 33890, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 33920, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 33948, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 33976, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 34004, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 34025, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 34044, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 34066, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 34085, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 34105, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 34130, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 34154, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 34174, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 34198, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 34218, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 34241, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 34266, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 34300, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 34317, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 34335, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 34353, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 34371, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 34391, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 34410, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 34439, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 34456, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 34482, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 34512, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 34544, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 34574, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 34608, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 34624, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 34655, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 34690, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 34718, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 34750, 0x00000004 }, /* GL_TRIANGLES */
- { 34763, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 34779, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 34800, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 34818, 0x00000001 }, /* GL_TRUE */
- { 34826, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 34846, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 34869, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 34889, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 34910, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 34932, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 34954, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 34974, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 34995, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 35012, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 35039, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 35062, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 35078, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 35105, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 35129, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 35160, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 35184, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 35212, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 35230, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 35260, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 35286, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 35316, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 35342, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 35366, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 35394, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 35422, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 35449, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 35481, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 35512, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 35526, 0x00002A20 }, /* GL_V2F */
- { 35533, 0x00002A21 }, /* GL_V3F */
- { 35540, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 35559, 0x00001F00 }, /* GL_VENDOR */
- { 35569, 0x00001F02 }, /* GL_VERSION */
- { 35580, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 35596, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 35626, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 35657, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 35692, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 35716, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 35737, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 35760, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 35781, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 35808, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 35836, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 35864, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 35892, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 35920, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 35948, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 35976, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 36003, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 36030, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 36057, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 36084, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 36111, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 36138, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 36165, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 36192, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 36219, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 36257, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 36299, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 36330, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 36365, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 36399, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 36437, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 36468, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 36503, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 36531, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 36563, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 36593, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 36627, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 36655, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 36687, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 36707, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 36729, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 36758, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 36779, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 36808, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 36841, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 36873, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 36900, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 36931, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 36961, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 36978, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 36999, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 37026, 0x00000BA2 }, /* GL_VIEWPORT */
- { 37038, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 37054, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 37074, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 37105, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 37140, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 37168, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 37193, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 37220, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 37245, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 37269, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 37288, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 37302, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 37320, 0x00001506 }, /* GL_XOR */
- { 37327, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 37346, 0x00008757 }, /* GL_YCBCR_MESA */
- { 37360, 0x00000000 }, /* GL_ZERO */
- { 37368, 0x00000D16 }, /* GL_ZOOM_X */
- { 37378, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 4153, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */
+ { 4189, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
+ { 4213, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
+ { 4241, 0x00001300 }, /* GL_COMPILE */
+ { 4252, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
+ { 4275, 0x00008B81 }, /* GL_COMPILE_STATUS */
+ { 4293, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
+ { 4313, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
+ { 4337, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
+ { 4361, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
+ { 4389, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
+ { 4413, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ { 4443, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
+ { 4477, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
+ { 4505, 0x000084ED }, /* GL_COMPRESSED_RGB */
+ { 4523, 0x000084EE }, /* GL_COMPRESSED_RGBA */
+ { 4542, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
+ { 4565, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ { 4594, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ { 4627, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ { 4660, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ { 4693, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
+ { 4715, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ { 4743, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ { 4775, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ { 4805, 0x00008576 }, /* GL_CONSTANT */
+ { 4817, 0x00008003 }, /* GL_CONSTANT_ALPHA */
+ { 4835, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
+ { 4857, 0x00008576 }, /* GL_CONSTANT_ARB */
+ { 4873, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
+ { 4897, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
+ { 4919, 0x00008001 }, /* GL_CONSTANT_COLOR */
+ { 4937, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
+ { 4959, 0x00008576 }, /* GL_CONSTANT_EXT */
+ { 4975, 0x00008010 }, /* GL_CONVOLUTION_1D */
+ { 4993, 0x00008011 }, /* GL_CONVOLUTION_2D */
+ { 5011, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
+ { 5039, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
+ { 5070, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
+ { 5097, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
+ { 5128, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
+ { 5155, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
+ { 5186, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
+ { 5214, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
+ { 5246, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
+ { 5268, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
+ { 5294, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
+ { 5316, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
+ { 5342, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
+ { 5363, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
+ { 5388, 0x00008862 }, /* GL_COORD_REPLACE */
+ { 5405, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
+ { 5426, 0x00008862 }, /* GL_COORD_REPLACE_NV */
+ { 5446, 0x00001503 }, /* GL_COPY */
+ { 5454, 0x0000150C }, /* GL_COPY_INVERTED */
+ { 5471, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
+ { 5491, 0x00000B44 }, /* GL_CULL_FACE */
+ { 5504, 0x00000B45 }, /* GL_CULL_FACE_MODE */
+ { 5522, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
+ { 5541, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ { 5573, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ { 5608, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
+ { 5629, 0x00000001 }, /* GL_CURRENT_BIT */
+ { 5644, 0x00000B00 }, /* GL_CURRENT_COLOR */
+ { 5661, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
+ { 5682, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
+ { 5708, 0x00000B01 }, /* GL_CURRENT_INDEX */
+ { 5725, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
+ { 5747, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ { 5775, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
+ { 5796, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ { 5830, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
+ { 5863, 0x00000B02 }, /* GL_CURRENT_NORMAL */
+ { 5881, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ { 5911, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
+ { 5930, 0x00008865 }, /* GL_CURRENT_QUERY */
+ { 5947, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
+ { 5968, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
+ { 5992, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
+ { 6019, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
+ { 6043, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
+ { 6070, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
+ { 6103, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ { 6136, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
+ { 6163, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
+ { 6189, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
+ { 6214, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
+ { 6243, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
+ { 6265, 0x00000900 }, /* GL_CW */
+ { 6271, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
+ { 6292, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
+ { 6313, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
+ { 6333, 0x00002101 }, /* GL_DECAL */
+ { 6342, 0x00001E03 }, /* GL_DECR */
+ { 6350, 0x00008508 }, /* GL_DECR_WRAP */
+ { 6363, 0x00008508 }, /* GL_DECR_WRAP_EXT */
+ { 6380, 0x00008B80 }, /* GL_DELETE_STATUS */
+ { 6397, 0x00001801 }, /* GL_DEPTH */
+ { 6406, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
+ { 6430, 0x00000D1F }, /* GL_DEPTH_BIAS */
+ { 6444, 0x00000D56 }, /* GL_DEPTH_BITS */
+ { 6458, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
+ { 6478, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ { 6503, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
+ { 6523, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
+ { 6541, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
+ { 6562, 0x00001902 }, /* GL_DEPTH_COMPONENT */
+ { 6581, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
+ { 6602, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
+ { 6627, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
+ { 6653, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
+ { 6674, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
+ { 6699, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
+ { 6725, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
+ { 6746, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
+ { 6771, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
+ { 6797, 0x00000B74 }, /* GL_DEPTH_FUNC */
+ { 6811, 0x00000B70 }, /* GL_DEPTH_RANGE */
+ { 6826, 0x00000D1E }, /* GL_DEPTH_SCALE */
+ { 6841, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
+ { 6861, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ { 6889, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ { 6917, 0x00000B71 }, /* GL_DEPTH_TEST */
+ { 6931, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
+ { 6953, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
+ { 6979, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
+ { 6998, 0x00001201 }, /* GL_DIFFUSE */
+ { 7009, 0x00000BD0 }, /* GL_DITHER */
+ { 7019, 0x00000A02 }, /* GL_DOMAIN */
+ { 7029, 0x00001100 }, /* GL_DONT_CARE */
+ { 7042, 0x000086AE }, /* GL_DOT3_RGB */
+ { 7054, 0x000086AF }, /* GL_DOT3_RGBA */
+ { 7067, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
+ { 7084, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
+ { 7101, 0x000086AE }, /* GL_DOT3_RGB_ARB */
+ { 7117, 0x00008740 }, /* GL_DOT3_RGB_EXT */
+ { 7133, 0x0000140A }, /* GL_DOUBLE */
+ { 7143, 0x00000C32 }, /* GL_DOUBLEBUFFER */
+ { 7159, 0x00000C01 }, /* GL_DRAW_BUFFER */
+ { 7174, 0x00008825 }, /* GL_DRAW_BUFFER0 */
+ { 7190, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
+ { 7210, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
+ { 7230, 0x00008826 }, /* GL_DRAW_BUFFER1 */
+ { 7246, 0x0000882F }, /* GL_DRAW_BUFFER10 */
+ { 7263, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
+ { 7284, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
+ { 7305, 0x00008830 }, /* GL_DRAW_BUFFER11 */
+ { 7322, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
+ { 7343, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
+ { 7364, 0x00008831 }, /* GL_DRAW_BUFFER12 */
+ { 7381, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
+ { 7402, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
+ { 7423, 0x00008832 }, /* GL_DRAW_BUFFER13 */
+ { 7440, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
+ { 7461, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
+ { 7482, 0x00008833 }, /* GL_DRAW_BUFFER14 */
+ { 7499, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
+ { 7520, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
+ { 7541, 0x00008834 }, /* GL_DRAW_BUFFER15 */
+ { 7558, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
+ { 7579, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
+ { 7600, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
+ { 7620, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
+ { 7640, 0x00008827 }, /* GL_DRAW_BUFFER2 */
+ { 7656, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
+ { 7676, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
+ { 7696, 0x00008828 }, /* GL_DRAW_BUFFER3 */
+ { 7712, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
+ { 7732, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
+ { 7752, 0x00008829 }, /* GL_DRAW_BUFFER4 */
+ { 7768, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
+ { 7788, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
+ { 7808, 0x0000882A }, /* GL_DRAW_BUFFER5 */
+ { 7824, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
+ { 7844, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
+ { 7864, 0x0000882B }, /* GL_DRAW_BUFFER6 */
+ { 7880, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
+ { 7900, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
+ { 7920, 0x0000882C }, /* GL_DRAW_BUFFER7 */
+ { 7936, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
+ { 7956, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
+ { 7976, 0x0000882D }, /* GL_DRAW_BUFFER8 */
+ { 7992, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
+ { 8012, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
+ { 8032, 0x0000882E }, /* GL_DRAW_BUFFER9 */
+ { 8048, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
+ { 8068, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
+ { 8088, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ { 8120, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
+ { 8144, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
+ { 8164, 0x00000304 }, /* GL_DST_ALPHA */
+ { 8177, 0x00000306 }, /* GL_DST_COLOR */
+ { 8190, 0x000088EA }, /* GL_DYNAMIC_COPY */
+ { 8206, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
+ { 8226, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
+ { 8242, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
+ { 8262, 0x000088E9 }, /* GL_DYNAMIC_READ */
+ { 8278, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
+ { 8298, 0x00000B43 }, /* GL_EDGE_FLAG */
+ { 8311, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
+ { 8330, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ { 8364, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
+ { 8402, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ { 8429, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ { 8455, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
+ { 8479, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER_ARB */
+ { 8507, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ { 8539, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
+ { 8575, 0x00001600 }, /* GL_EMISSION */
+ { 8587, 0x00002000 }, /* GL_ENABLE_BIT */
+ { 8601, 0x00000202 }, /* GL_EQUAL */
+ { 8610, 0x00001509 }, /* GL_EQUIV */
+ { 8619, 0x00010000 }, /* GL_EVAL_BIT */
+ { 8631, 0x00000800 }, /* GL_EXP */
+ { 8638, 0x00000801 }, /* GL_EXP2 */
+ { 8646, 0x00001F03 }, /* GL_EXTENSIONS */
+ { 8660, 0x00002400 }, /* GL_EYE_LINEAR */
+ { 8674, 0x00002502 }, /* GL_EYE_PLANE */
+ { 8687, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ { 8712, 0x0000855B }, /* GL_EYE_RADIAL_NV */
+ { 8729, 0x00000000 }, /* GL_FALSE */
+ { 8738, 0x00001101 }, /* GL_FASTEST */
+ { 8749, 0x00001C01 }, /* GL_FEEDBACK */
+ { 8761, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
+ { 8788, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
+ { 8812, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
+ { 8836, 0x00001B02 }, /* GL_FILL */
+ { 8844, 0x00001D00 }, /* GL_FLAT */
+ { 8852, 0x00001406 }, /* GL_FLOAT */
+ { 8861, 0x00008B5A }, /* GL_FLOAT_MAT2 */
+ { 8875, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
+ { 8893, 0x00008B5B }, /* GL_FLOAT_MAT3 */
+ { 8907, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
+ { 8925, 0x00008B5C }, /* GL_FLOAT_MAT4 */
+ { 8939, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
+ { 8957, 0x00008B50 }, /* GL_FLOAT_VEC2 */
+ { 8971, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
+ { 8989, 0x00008B51 }, /* GL_FLOAT_VEC3 */
+ { 9003, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
+ { 9021, 0x00008B52 }, /* GL_FLOAT_VEC4 */
+ { 9035, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
+ { 9053, 0x00000B60 }, /* GL_FOG */
+ { 9060, 0x00000080 }, /* GL_FOG_BIT */
+ { 9071, 0x00000B66 }, /* GL_FOG_COLOR */
+ { 9084, 0x00008451 }, /* GL_FOG_COORD */
+ { 9097, 0x00008451 }, /* GL_FOG_COORDINATE */
+ { 9115, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
+ { 9139, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ { 9178, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
+ { 9221, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ { 9253, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ { 9284, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ { 9313, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
+ { 9338, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
+ { 9357, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
+ { 9391, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
+ { 9418, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
+ { 9444, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
+ { 9468, 0x00008450 }, /* GL_FOG_COORD_SRC */
+ { 9485, 0x00000B62 }, /* GL_FOG_DENSITY */
+ { 9500, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
+ { 9524, 0x00000B64 }, /* GL_FOG_END */
+ { 9535, 0x00000C54 }, /* GL_FOG_HINT */
+ { 9547, 0x00000B61 }, /* GL_FOG_INDEX */
+ { 9560, 0x00000B65 }, /* GL_FOG_MODE */
+ { 9572, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
+ { 9591, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
+ { 9616, 0x00000B63 }, /* GL_FOG_START */
+ { 9629, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
+ { 9647, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
+ { 9671, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
+ { 9690, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
+ { 9713, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ { 9748, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
+ { 9790, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
+ { 9832, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
+ { 9881, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
+ { 9933, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
+ { 9977, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
+ { 10021, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
+ { 10048, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
+ { 10076, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
+ { 10095, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
+ { 10136, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ { 10177, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ { 10219, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ { 10270, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ { 10308, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
+ { 10357, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ { 10399, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ { 10431, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
+ { 10462, 0x00000404 }, /* GL_FRONT */
+ { 10471, 0x00000408 }, /* GL_FRONT_AND_BACK */
+ { 10489, 0x00000B46 }, /* GL_FRONT_FACE */
+ { 10503, 0x00000400 }, /* GL_FRONT_LEFT */
+ { 10517, 0x00000401 }, /* GL_FRONT_RIGHT */
+ { 10532, 0x00008006 }, /* GL_FUNC_ADD */
+ { 10544, 0x00008006 }, /* GL_FUNC_ADD_EXT */
+ { 10560, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
+ { 10585, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
+ { 10614, 0x0000800A }, /* GL_FUNC_SUBTRACT */
+ { 10631, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
+ { 10652, 0x00008191 }, /* GL_GENERATE_MIPMAP */
+ { 10671, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
+ { 10695, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
+ { 10724, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
+ { 10748, 0x00000206 }, /* GL_GEQUAL */
+ { 10758, 0x00008009 }, /* GL_GL_BLEND_EQUATION_RGB */
+ { 10783, 0x00008C4A }, /* GL_GL_COMPRESSED_SLUMINANCE */
+ { 10811, 0x00008C4B }, /* GL_GL_COMPRESSED_SLUMINANCE_ALPHA */
+ { 10845, 0x00008C48 }, /* GL_GL_COMPRESSED_SRGB */
+ { 10867, 0x00008C49 }, /* GL_GL_COMPRESSED_SRGB_ALPHA */
+ { 10895, 0x0000845F }, /* GL_GL_CURRENT_RASTER_SECONDARY_COLOR */
+ { 10932, 0x00008B65 }, /* GL_GL_FLOAT_MAT2x3 */
+ { 10951, 0x00008B66 }, /* GL_GL_FLOAT_MAT2x4 */
+ { 10970, 0x00008B67 }, /* GL_GL_FLOAT_MAT3x2 */
+ { 10989, 0x00008B68 }, /* GL_GL_FLOAT_MAT3x4 */
+ { 11008, 0x00008B69 }, /* GL_GL_FLOAT_MAT4x2 */
+ { 11027, 0x00008B6A }, /* GL_GL_FLOAT_MAT4x3 */
+ { 11046, 0x000088EB }, /* GL_GL_PIXEL_PACK_BUFFER */
+ { 11070, 0x000088ED }, /* GL_GL_PIXEL_PACK_BUFFER_BINDING */
+ { 11102, 0x000088EC }, /* GL_GL_PIXEL_UNPACK_BUFFER */
+ { 11128, 0x000088EF }, /* GL_GL_PIXEL_UNPACK_BUFFER_BINDING */
+ { 11162, 0x00008C46 }, /* GL_GL_SLUMINANCE */
+ { 11179, 0x00008C47 }, /* GL_GL_SLUMINANCE8 */
+ { 11197, 0x00008C45 }, /* GL_GL_SLUMINANCE8_ALPHA8 */
+ { 11222, 0x00008C44 }, /* GL_GL_SLUMINANCE_ALPHA */
+ { 11245, 0x00008C40 }, /* GL_GL_SRGB */
+ { 11256, 0x00008C41 }, /* GL_GL_SRGB8 */
+ { 11268, 0x00008C43 }, /* GL_GL_SRGB8_ALPHA8 */
+ { 11287, 0x00008C42 }, /* GL_GL_SRGB_ALPHA */
+ { 11304, 0x00000204 }, /* GL_GREATER */
+ { 11315, 0x00001904 }, /* GL_GREEN */
+ { 11324, 0x00000D19 }, /* GL_GREEN_BIAS */
+ { 11338, 0x00000D53 }, /* GL_GREEN_BITS */
+ { 11352, 0x00000D18 }, /* GL_GREEN_SCALE */
+ { 11367, 0x00008000 }, /* GL_HINT_BIT */
+ { 11379, 0x00008024 }, /* GL_HISTOGRAM */
+ { 11392, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
+ { 11416, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
+ { 11444, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
+ { 11467, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
+ { 11494, 0x00008024 }, /* GL_HISTOGRAM_EXT */
+ { 11511, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
+ { 11531, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
+ { 11555, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
+ { 11579, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
+ { 11607, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ { 11635, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
+ { 11667, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
+ { 11689, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
+ { 11715, 0x0000802D }, /* GL_HISTOGRAM_SINK */
+ { 11733, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
+ { 11755, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
+ { 11774, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
+ { 11797, 0x0000862A }, /* GL_IDENTITY_NV */
+ { 11812, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
+ { 11832, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ { 11872, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ { 11910, 0x00001E02 }, /* GL_INCR */
+ { 11918, 0x00008507 }, /* GL_INCR_WRAP */
+ { 11931, 0x00008507 }, /* GL_INCR_WRAP_EXT */
+ { 11948, 0x00008077 }, /* GL_INDEX_ARRAY */
+ { 11963, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ { 11993, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
+ { 12027, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
+ { 12050, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
+ { 12072, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
+ { 12092, 0x00000D51 }, /* GL_INDEX_BITS */
+ { 12106, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
+ { 12127, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
+ { 12145, 0x00000C30 }, /* GL_INDEX_MODE */
+ { 12159, 0x00000D13 }, /* GL_INDEX_OFFSET */
+ { 12175, 0x00000D12 }, /* GL_INDEX_SHIFT */
+ { 12190, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
+ { 12209, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
+ { 12228, 0x00001404 }, /* GL_INT */
+ { 12235, 0x00008049 }, /* GL_INTENSITY */
+ { 12248, 0x0000804C }, /* GL_INTENSITY12 */
+ { 12263, 0x0000804C }, /* GL_INTENSITY12_EXT */
+ { 12282, 0x0000804D }, /* GL_INTENSITY16 */
+ { 12297, 0x0000804D }, /* GL_INTENSITY16_EXT */
+ { 12316, 0x0000804A }, /* GL_INTENSITY4 */
+ { 12330, 0x0000804A }, /* GL_INTENSITY4_EXT */
+ { 12348, 0x0000804B }, /* GL_INTENSITY8 */
+ { 12362, 0x0000804B }, /* GL_INTENSITY8_EXT */
+ { 12380, 0x00008049 }, /* GL_INTENSITY_EXT */
+ { 12397, 0x00008575 }, /* GL_INTERPOLATE */
+ { 12412, 0x00008575 }, /* GL_INTERPOLATE_ARB */
+ { 12431, 0x00008575 }, /* GL_INTERPOLATE_EXT */
+ { 12450, 0x00008B53 }, /* GL_INT_VEC2 */
+ { 12462, 0x00008B53 }, /* GL_INT_VEC2_ARB */
+ { 12478, 0x00008B54 }, /* GL_INT_VEC3 */
+ { 12490, 0x00008B54 }, /* GL_INT_VEC3_ARB */
+ { 12506, 0x00008B55 }, /* GL_INT_VEC4 */
+ { 12518, 0x00008B55 }, /* GL_INT_VEC4_ARB */
+ { 12534, 0x00000500 }, /* GL_INVALID_ENUM */
+ { 12550, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
+ { 12587, 0x00000502 }, /* GL_INVALID_OPERATION */
+ { 12608, 0x00000501 }, /* GL_INVALID_VALUE */
+ { 12625, 0x0000862B }, /* GL_INVERSE_NV */
+ { 12639, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
+ { 12663, 0x0000150A }, /* GL_INVERT */
+ { 12673, 0x00001E00 }, /* GL_KEEP */
+ { 12681, 0x00000406 }, /* GL_LEFT */
+ { 12689, 0x00000203 }, /* GL_LEQUAL */
+ { 12699, 0x00000201 }, /* GL_LESS */
+ { 12707, 0x00004000 }, /* GL_LIGHT0 */
+ { 12717, 0x00004001 }, /* GL_LIGHT1 */
+ { 12727, 0x00004002 }, /* GL_LIGHT2 */
+ { 12737, 0x00004003 }, /* GL_LIGHT3 */
+ { 12747, 0x00004004 }, /* GL_LIGHT4 */
+ { 12757, 0x00004005 }, /* GL_LIGHT5 */
+ { 12767, 0x00004006 }, /* GL_LIGHT6 */
+ { 12777, 0x00004007 }, /* GL_LIGHT7 */
+ { 12787, 0x00000B50 }, /* GL_LIGHTING */
+ { 12799, 0x00000040 }, /* GL_LIGHTING_BIT */
+ { 12815, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
+ { 12838, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ { 12867, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
+ { 12900, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ { 12928, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
+ { 12952, 0x00001B01 }, /* GL_LINE */
+ { 12960, 0x00002601 }, /* GL_LINEAR */
+ { 12970, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
+ { 12992, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ { 13022, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ { 13053, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
+ { 13077, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
+ { 13102, 0x00000001 }, /* GL_LINES */
+ { 13111, 0x00000004 }, /* GL_LINE_BIT */
+ { 13123, 0x00000002 }, /* GL_LINE_LOOP */
+ { 13136, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
+ { 13156, 0x00000B20 }, /* GL_LINE_SMOOTH */
+ { 13171, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
+ { 13191, 0x00000B24 }, /* GL_LINE_STIPPLE */
+ { 13207, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
+ { 13231, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
+ { 13254, 0x00000003 }, /* GL_LINE_STRIP */
+ { 13268, 0x00000702 }, /* GL_LINE_TOKEN */
+ { 13282, 0x00000B21 }, /* GL_LINE_WIDTH */
+ { 13296, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
+ { 13322, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
+ { 13342, 0x00008B82 }, /* GL_LINK_STATUS */
+ { 13357, 0x00000B32 }, /* GL_LIST_BASE */
+ { 13370, 0x00020000 }, /* GL_LIST_BIT */
+ { 13382, 0x00000B33 }, /* GL_LIST_INDEX */
+ { 13396, 0x00000B30 }, /* GL_LIST_MODE */
+ { 13409, 0x00000101 }, /* GL_LOAD */
+ { 13417, 0x00000BF1 }, /* GL_LOGIC_OP */
+ { 13429, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
+ { 13446, 0x00008CA1 }, /* GL_LOWER_LEFT */
+ { 13460, 0x00001909 }, /* GL_LUMINANCE */
+ { 13473, 0x00008041 }, /* GL_LUMINANCE12 */
+ { 13488, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
+ { 13511, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
+ { 13538, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
+ { 13560, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
+ { 13586, 0x00008041 }, /* GL_LUMINANCE12_EXT */
+ { 13605, 0x00008042 }, /* GL_LUMINANCE16 */
+ { 13620, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
+ { 13643, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
+ { 13670, 0x00008042 }, /* GL_LUMINANCE16_EXT */
+ { 13689, 0x0000803F }, /* GL_LUMINANCE4 */
+ { 13703, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
+ { 13724, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
+ { 13749, 0x0000803F }, /* GL_LUMINANCE4_EXT */
+ { 13767, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
+ { 13788, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
+ { 13813, 0x00008040 }, /* GL_LUMINANCE8 */
+ { 13827, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
+ { 13848, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
+ { 13873, 0x00008040 }, /* GL_LUMINANCE8_EXT */
+ { 13891, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
+ { 13910, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
+ { 13926, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
+ { 13946, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
+ { 13968, 0x00000D91 }, /* GL_MAP1_INDEX */
+ { 13982, 0x00000D92 }, /* GL_MAP1_NORMAL */
+ { 13997, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
+ { 14021, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
+ { 14045, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
+ { 14069, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
+ { 14093, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
+ { 14110, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
+ { 14127, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ { 14155, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ { 14184, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ { 14213, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ { 14242, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ { 14271, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ { 14300, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ { 14329, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ { 14357, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ { 14385, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ { 14413, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ { 14441, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ { 14469, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ { 14497, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ { 14525, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ { 14553, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ { 14581, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
+ { 14597, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
+ { 14617, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
+ { 14639, 0x00000DB1 }, /* GL_MAP2_INDEX */
+ { 14653, 0x00000DB2 }, /* GL_MAP2_NORMAL */
+ { 14668, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
+ { 14692, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
+ { 14716, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
+ { 14740, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
+ { 14764, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
+ { 14781, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
+ { 14798, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ { 14826, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ { 14855, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ { 14884, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ { 14913, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ { 14942, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ { 14971, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ { 15000, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ { 15028, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ { 15056, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ { 15084, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ { 15112, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ { 15140, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ { 15168, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
+ { 15196, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ { 15224, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ { 15252, 0x00000D10 }, /* GL_MAP_COLOR */
+ { 15265, 0x00000D11 }, /* GL_MAP_STENCIL */
+ { 15280, 0x000088C0 }, /* GL_MATRIX0_ARB */
+ { 15295, 0x00008630 }, /* GL_MATRIX0_NV */
+ { 15309, 0x000088CA }, /* GL_MATRIX10_ARB */
+ { 15325, 0x000088CB }, /* GL_MATRIX11_ARB */
+ { 15341, 0x000088CC }, /* GL_MATRIX12_ARB */
+ { 15357, 0x000088CD }, /* GL_MATRIX13_ARB */
+ { 15373, 0x000088CE }, /* GL_MATRIX14_ARB */
+ { 15389, 0x000088CF }, /* GL_MATRIX15_ARB */
+ { 15405, 0x000088D0 }, /* GL_MATRIX16_ARB */
+ { 15421, 0x000088D1 }, /* GL_MATRIX17_ARB */
+ { 15437, 0x000088D2 }, /* GL_MATRIX18_ARB */
+ { 15453, 0x000088D3 }, /* GL_MATRIX19_ARB */
+ { 15469, 0x000088C1 }, /* GL_MATRIX1_ARB */
+ { 15484, 0x00008631 }, /* GL_MATRIX1_NV */
+ { 15498, 0x000088D4 }, /* GL_MATRIX20_ARB */
+ { 15514, 0x000088D5 }, /* GL_MATRIX21_ARB */
+ { 15530, 0x000088D6 }, /* GL_MATRIX22_ARB */
+ { 15546, 0x000088D7 }, /* GL_MATRIX23_ARB */
+ { 15562, 0x000088D8 }, /* GL_MATRIX24_ARB */
+ { 15578, 0x000088D9 }, /* GL_MATRIX25_ARB */
+ { 15594, 0x000088DA }, /* GL_MATRIX26_ARB */
+ { 15610, 0x000088DB }, /* GL_MATRIX27_ARB */
+ { 15626, 0x000088DC }, /* GL_MATRIX28_ARB */
+ { 15642, 0x000088DD }, /* GL_MATRIX29_ARB */
+ { 15658, 0x000088C2 }, /* GL_MATRIX2_ARB */
+ { 15673, 0x00008632 }, /* GL_MATRIX2_NV */
+ { 15687, 0x000088DE }, /* GL_MATRIX30_ARB */
+ { 15703, 0x000088DF }, /* GL_MATRIX31_ARB */
+ { 15719, 0x000088C3 }, /* GL_MATRIX3_ARB */
+ { 15734, 0x00008633 }, /* GL_MATRIX3_NV */
+ { 15748, 0x000088C4 }, /* GL_MATRIX4_ARB */
+ { 15763, 0x00008634 }, /* GL_MATRIX4_NV */
+ { 15777, 0x000088C5 }, /* GL_MATRIX5_ARB */
+ { 15792, 0x00008635 }, /* GL_MATRIX5_NV */
+ { 15806, 0x000088C6 }, /* GL_MATRIX6_ARB */
+ { 15821, 0x00008636 }, /* GL_MATRIX6_NV */
+ { 15835, 0x000088C7 }, /* GL_MATRIX7_ARB */
+ { 15850, 0x00008637 }, /* GL_MATRIX7_NV */
+ { 15864, 0x000088C8 }, /* GL_MATRIX8_ARB */
+ { 15879, 0x000088C9 }, /* GL_MATRIX9_ARB */
+ { 15894, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ { 15920, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ { 15954, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ { 15985, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ { 16018, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ { 16049, 0x00000BA0 }, /* GL_MATRIX_MODE */
+ { 16064, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
+ { 16086, 0x00008008 }, /* GL_MAX */
+ { 16093, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
+ { 16116, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ { 16148, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ { 16174, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ { 16207, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ { 16233, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 16267, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
+ { 16286, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ { 16315, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ { 16347, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 16383, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ { 16419, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
+ { 16459, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
+ { 16485, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
+ { 16515, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
+ { 16540, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
+ { 16569, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ { 16598, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
+ { 16631, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
+ { 16651, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
+ { 16675, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
+ { 16699, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
+ { 16723, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
+ { 16748, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
+ { 16766, 0x00008008 }, /* GL_MAX_EXT */
+ { 16777, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ { 16812, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
+ { 16851, 0x00000D31 }, /* GL_MAX_LIGHTS */
+ { 16865, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
+ { 16885, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ { 16923, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ { 16952, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
+ { 16976, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
+ { 17004, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
+ { 17027, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 17064, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 17100, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ { 17127, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ { 17156, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ { 17190, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
+ { 17226, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ { 17253, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ { 17285, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ { 17321, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ { 17350, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ { 17379, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ { 17407, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ { 17445, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 17489, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 17532, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 17566, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 17605, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 17642, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 17680, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 17723, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 17766, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ { 17796, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ { 17827, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 17863, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 17899, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ { 17929, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ { 17963, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
+ { 17996, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ { 18025, 0x00008504 }, /* GL_MAX_SHININESS_NV */
+ { 18045, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
+ { 18069, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
+ { 18091, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
+ { 18117, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ { 18144, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
+ { 18175, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
+ { 18199, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 18233, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
+ { 18253, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ { 18280, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
+ { 18301, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
+ { 18326, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
+ { 18351, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
+ { 18386, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
+ { 18408, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
+ { 18434, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
+ { 18456, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
+ { 18482, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ { 18516, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
+ { 18554, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ { 18587, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
+ { 18624, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
+ { 18648, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
+ { 18669, 0x00008007 }, /* GL_MIN */
+ { 18676, 0x0000802E }, /* GL_MINMAX */
+ { 18686, 0x0000802E }, /* GL_MINMAX_EXT */
+ { 18700, 0x0000802F }, /* GL_MINMAX_FORMAT */
+ { 18717, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
+ { 18738, 0x00008030 }, /* GL_MINMAX_SINK */
+ { 18753, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
+ { 18772, 0x00008007 }, /* GL_MIN_EXT */
+ { 18783, 0x00008370 }, /* GL_MIRRORED_REPEAT */
+ { 18802, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
+ { 18825, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
+ { 18848, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
+ { 18868, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
+ { 18888, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ { 18918, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
+ { 18946, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ { 18974, 0x00001700 }, /* GL_MODELVIEW */
+ { 18987, 0x00001700 }, /* GL_MODELVIEW0_ARB */
+ { 19005, 0x0000872A }, /* GL_MODELVIEW10_ARB */
+ { 19024, 0x0000872B }, /* GL_MODELVIEW11_ARB */
+ { 19043, 0x0000872C }, /* GL_MODELVIEW12_ARB */
+ { 19062, 0x0000872D }, /* GL_MODELVIEW13_ARB */
+ { 19081, 0x0000872E }, /* GL_MODELVIEW14_ARB */
+ { 19100, 0x0000872F }, /* GL_MODELVIEW15_ARB */
+ { 19119, 0x00008730 }, /* GL_MODELVIEW16_ARB */
+ { 19138, 0x00008731 }, /* GL_MODELVIEW17_ARB */
+ { 19157, 0x00008732 }, /* GL_MODELVIEW18_ARB */
+ { 19176, 0x00008733 }, /* GL_MODELVIEW19_ARB */
+ { 19195, 0x0000850A }, /* GL_MODELVIEW1_ARB */
+ { 19213, 0x00008734 }, /* GL_MODELVIEW20_ARB */
+ { 19232, 0x00008735 }, /* GL_MODELVIEW21_ARB */
+ { 19251, 0x00008736 }, /* GL_MODELVIEW22_ARB */
+ { 19270, 0x00008737 }, /* GL_MODELVIEW23_ARB */
+ { 19289, 0x00008738 }, /* GL_MODELVIEW24_ARB */
+ { 19308, 0x00008739 }, /* GL_MODELVIEW25_ARB */
+ { 19327, 0x0000873A }, /* GL_MODELVIEW26_ARB */
+ { 19346, 0x0000873B }, /* GL_MODELVIEW27_ARB */
+ { 19365, 0x0000873C }, /* GL_MODELVIEW28_ARB */
+ { 19384, 0x0000873D }, /* GL_MODELVIEW29_ARB */
+ { 19403, 0x00008722 }, /* GL_MODELVIEW2_ARB */
+ { 19421, 0x0000873E }, /* GL_MODELVIEW30_ARB */
+ { 19440, 0x0000873F }, /* GL_MODELVIEW31_ARB */
+ { 19459, 0x00008723 }, /* GL_MODELVIEW3_ARB */
+ { 19477, 0x00008724 }, /* GL_MODELVIEW4_ARB */
+ { 19495, 0x00008725 }, /* GL_MODELVIEW5_ARB */
+ { 19513, 0x00008726 }, /* GL_MODELVIEW6_ARB */
+ { 19531, 0x00008727 }, /* GL_MODELVIEW7_ARB */
+ { 19549, 0x00008728 }, /* GL_MODELVIEW8_ARB */
+ { 19567, 0x00008729 }, /* GL_MODELVIEW9_ARB */
+ { 19585, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
+ { 19605, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
+ { 19632, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
+ { 19657, 0x00002100 }, /* GL_MODULATE */
+ { 19669, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
+ { 19689, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
+ { 19716, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
+ { 19741, 0x00000103 }, /* GL_MULT */
+ { 19749, 0x0000809D }, /* GL_MULTISAMPLE */
+ { 19764, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
+ { 19784, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
+ { 19803, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
+ { 19822, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
+ { 19846, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
+ { 19869, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ { 19899, 0x00002A25 }, /* GL_N3F_V3F */
+ { 19910, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
+ { 19930, 0x0000150E }, /* GL_NAND */
+ { 19938, 0x00002600 }, /* GL_NEAREST */
+ { 19949, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ { 19980, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ { 20012, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
+ { 20037, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
+ { 20063, 0x00000200 }, /* GL_NEVER */
+ { 20072, 0x00001102 }, /* GL_NICEST */
+ { 20082, 0x00000000 }, /* GL_NONE */
+ { 20090, 0x00001505 }, /* GL_NOOP */
+ { 20098, 0x00001508 }, /* GL_NOR */
+ { 20105, 0x00000BA1 }, /* GL_NORMALIZE */
+ { 20118, 0x00008075 }, /* GL_NORMAL_ARRAY */
+ { 20134, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ { 20165, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
+ { 20200, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
+ { 20224, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
+ { 20247, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
+ { 20268, 0x00008511 }, /* GL_NORMAL_MAP */
+ { 20282, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
+ { 20300, 0x00008511 }, /* GL_NORMAL_MAP_NV */
+ { 20317, 0x00000205 }, /* GL_NOTEQUAL */
+ { 20329, 0x00000000 }, /* GL_NO_ERROR */
+ { 20341, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ { 20375, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
+ { 20413, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
+ { 20445, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
+ { 20487, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
+ { 20517, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
+ { 20557, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
+ { 20588, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
+ { 20617, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
+ { 20645, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
+ { 20675, 0x00002401 }, /* GL_OBJECT_LINEAR */
+ { 20692, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
+ { 20718, 0x00002501 }, /* GL_OBJECT_PLANE */
+ { 20734, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
+ { 20769, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
+ { 20791, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
+ { 20810, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
+ { 20840, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
+ { 20861, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
+ { 20889, 0x00000001 }, /* GL_ONE */
+ { 20896, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ { 20924, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
+ { 20956, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ { 20984, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
+ { 21016, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
+ { 21039, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
+ { 21062, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
+ { 21085, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
+ { 21108, 0x00008598 }, /* GL_OPERAND0_ALPHA */
+ { 21126, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
+ { 21148, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
+ { 21170, 0x00008590 }, /* GL_OPERAND0_RGB */
+ { 21186, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
+ { 21206, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
+ { 21226, 0x00008599 }, /* GL_OPERAND1_ALPHA */
+ { 21244, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
+ { 21266, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
+ { 21288, 0x00008591 }, /* GL_OPERAND1_RGB */
+ { 21304, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
+ { 21324, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
+ { 21344, 0x0000859A }, /* GL_OPERAND2_ALPHA */
+ { 21362, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
+ { 21384, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
+ { 21406, 0x00008592 }, /* GL_OPERAND2_RGB */
+ { 21422, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
+ { 21442, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
+ { 21462, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
+ { 21483, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
+ { 21502, 0x00001507 }, /* GL_OR */
+ { 21508, 0x00000A01 }, /* GL_ORDER */
+ { 21517, 0x0000150D }, /* GL_OR_INVERTED */
+ { 21532, 0x0000150B }, /* GL_OR_REVERSE */
+ { 21546, 0x00000505 }, /* GL_OUT_OF_MEMORY */
+ { 21563, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
+ { 21581, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
+ { 21602, 0x00008758 }, /* GL_PACK_INVERT_MESA */
+ { 21622, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
+ { 21640, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
+ { 21659, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
+ { 21679, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
+ { 21699, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
+ { 21717, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
+ { 21736, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
+ { 21761, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
+ { 21785, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
+ { 21806, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
+ { 21828, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
+ { 21850, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
+ { 21875, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
+ { 21899, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
+ { 21920, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
+ { 21942, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
+ { 21964, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
+ { 21986, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ { 22017, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
+ { 22037, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ { 22062, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
+ { 22082, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ { 22107, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
+ { 22127, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ { 22152, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
+ { 22172, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ { 22197, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
+ { 22217, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ { 22242, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
+ { 22262, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ { 22287, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
+ { 22307, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ { 22332, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
+ { 22352, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ { 22377, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
+ { 22397, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ { 22422, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
+ { 22442, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ { 22467, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
+ { 22485, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
+ { 22518, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
+ { 22543, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
+ { 22578, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
+ { 22605, 0x00001B00 }, /* GL_POINT */
+ { 22614, 0x00000000 }, /* GL_POINTS */
+ { 22624, 0x00000002 }, /* GL_POINT_BIT */
+ { 22637, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
+ { 22667, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
+ { 22701, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
+ { 22735, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
+ { 22770, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ { 22799, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
+ { 22832, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
+ { 22865, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
+ { 22899, 0x00000B11 }, /* GL_POINT_SIZE */
+ { 22913, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
+ { 22939, 0x00008127 }, /* GL_POINT_SIZE_MAX */
+ { 22957, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
+ { 22979, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
+ { 23001, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
+ { 23024, 0x00008126 }, /* GL_POINT_SIZE_MIN */
+ { 23042, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
+ { 23064, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
+ { 23086, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
+ { 23109, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
+ { 23129, 0x00000B10 }, /* GL_POINT_SMOOTH */
+ { 23145, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
+ { 23166, 0x00008861 }, /* GL_POINT_SPRITE */
+ { 23182, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
+ { 23202, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ { 23231, 0x00008861 }, /* GL_POINT_SPRITE_NV */
+ { 23250, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
+ { 23276, 0x00000701 }, /* GL_POINT_TOKEN */
+ { 23291, 0x00000009 }, /* GL_POLYGON */
+ { 23302, 0x00000008 }, /* GL_POLYGON_BIT */
+ { 23317, 0x00000B40 }, /* GL_POLYGON_MODE */
+ { 23333, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
+ { 23356, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
+ { 23381, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
+ { 23404, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
+ { 23427, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
+ { 23451, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
+ { 23475, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
+ { 23493, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
+ { 23516, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
+ { 23535, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
+ { 23558, 0x00000703 }, /* GL_POLYGON_TOKEN */
+ { 23575, 0x00001203 }, /* GL_POSITION */
+ { 23587, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ { 23619, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
+ { 23655, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ { 23688, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
+ { 23725, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ { 23756, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
+ { 23791, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ { 23823, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
+ { 23859, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 23892, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ { 23924, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
+ { 23960, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ { 23993, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
+ { 24030, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ { 24060, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
+ { 24094, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ { 24125, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
+ { 24160, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ { 24191, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
+ { 24226, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ { 24258, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
+ { 24294, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ { 24324, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
+ { 24358, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ { 24389, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
+ { 24424, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ { 24456, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ { 24487, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
+ { 24522, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ { 24554, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
+ { 24590, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
+ { 24619, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
+ { 24652, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
+ { 24682, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
+ { 24716, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ { 24755, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ { 24788, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ { 24828, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ { 24862, 0x00008578 }, /* GL_PREVIOUS */
+ { 24874, 0x00008578 }, /* GL_PREVIOUS_ARB */
+ { 24890, 0x00008578 }, /* GL_PREVIOUS_EXT */
+ { 24906, 0x00008577 }, /* GL_PRIMARY_COLOR */
+ { 24923, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
+ { 24944, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
+ { 24965, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 24998, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 25030, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
+ { 25053, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
+ { 25076, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ { 25106, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
+ { 25135, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
+ { 25163, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
+ { 25185, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ { 25213, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ { 25241, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
+ { 25263, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
+ { 25284, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 25324, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 25363, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 25393, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 25428, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 25461, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 25495, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 25534, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 25573, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
+ { 25595, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
+ { 25621, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
+ { 25645, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
+ { 25668, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
+ { 25690, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
+ { 25711, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
+ { 25732, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
+ { 25759, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 25791, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 25823, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ { 25858, 0x00001701 }, /* GL_PROJECTION */
+ { 25872, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
+ { 25893, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
+ { 25919, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
+ { 25940, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
+ { 25959, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
+ { 25982, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 26021, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ { 26059, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
+ { 26079, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ { 26109, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
+ { 26133, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
+ { 26153, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ { 26183, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
+ { 26207, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
+ { 26227, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ { 26260, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ { 26286, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
+ { 26316, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ { 26347, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
+ { 26377, 0x00002003 }, /* GL_Q */
+ { 26382, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
+ { 26407, 0x00000007 }, /* GL_QUADS */
+ { 26416, 0x00008614 }, /* GL_QUAD_MESH_SUN */
+ { 26433, 0x00000008 }, /* GL_QUAD_STRIP */
+ { 26447, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
+ { 26469, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
+ { 26495, 0x00008866 }, /* GL_QUERY_RESULT */
+ { 26511, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
+ { 26531, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
+ { 26557, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
+ { 26587, 0x00002002 }, /* GL_R */
+ { 26592, 0x00002A10 }, /* GL_R3_G3_B2 */
+ { 26604, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ { 26637, 0x00000C02 }, /* GL_READ_BUFFER */
+ { 26652, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ { 26684, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
+ { 26708, 0x000088B8 }, /* GL_READ_ONLY */
+ { 26721, 0x000088B8 }, /* GL_READ_ONLY_ARB */
+ { 26738, 0x000088BA }, /* GL_READ_WRITE */
+ { 26752, 0x000088BA }, /* GL_READ_WRITE_ARB */
+ { 26770, 0x00001903 }, /* GL_RED */
+ { 26777, 0x00008016 }, /* GL_REDUCE */
+ { 26787, 0x00008016 }, /* GL_REDUCE_EXT */
+ { 26801, 0x00000D15 }, /* GL_RED_BIAS */
+ { 26813, 0x00000D52 }, /* GL_RED_BITS */
+ { 26825, 0x00000D14 }, /* GL_RED_SCALE */
+ { 26838, 0x00008512 }, /* GL_REFLECTION_MAP */
+ { 26856, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
+ { 26878, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
+ { 26899, 0x00001C00 }, /* GL_RENDER */
+ { 26909, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
+ { 26937, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
+ { 26957, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
+ { 26984, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
+ { 27020, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
+ { 27046, 0x00001F01 }, /* GL_RENDERER */
+ { 27058, 0x00000C40 }, /* GL_RENDER_MODE */
+ { 27073, 0x00002901 }, /* GL_REPEAT */
+ { 27083, 0x00001E01 }, /* GL_REPLACE */
+ { 27094, 0x00008062 }, /* GL_REPLACE_EXT */
+ { 27109, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
+ { 27132, 0x0000803A }, /* GL_RESCALE_NORMAL */
+ { 27150, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
+ { 27172, 0x00000102 }, /* GL_RETURN */
+ { 27182, 0x00001907 }, /* GL_RGB */
+ { 27189, 0x00008052 }, /* GL_RGB10 */
+ { 27198, 0x00008059 }, /* GL_RGB10_A2 */
+ { 27210, 0x00008059 }, /* GL_RGB10_A2_EXT */
+ { 27226, 0x00008052 }, /* GL_RGB10_EXT */
+ { 27239, 0x00008053 }, /* GL_RGB12 */
+ { 27248, 0x00008053 }, /* GL_RGB12_EXT */
+ { 27261, 0x00008054 }, /* GL_RGB16 */
+ { 27270, 0x00008054 }, /* GL_RGB16_EXT */
+ { 27283, 0x0000804E }, /* GL_RGB2_EXT */
+ { 27295, 0x0000804F }, /* GL_RGB4 */
+ { 27303, 0x0000804F }, /* GL_RGB4_EXT */
+ { 27315, 0x000083A1 }, /* GL_RGB4_S3TC */
+ { 27328, 0x00008050 }, /* GL_RGB5 */
+ { 27336, 0x00008057 }, /* GL_RGB5_A1 */
+ { 27347, 0x00008057 }, /* GL_RGB5_A1_EXT */
+ { 27362, 0x00008050 }, /* GL_RGB5_EXT */
+ { 27374, 0x00008051 }, /* GL_RGB8 */
+ { 27382, 0x00008051 }, /* GL_RGB8_EXT */
+ { 27394, 0x00001908 }, /* GL_RGBA */
+ { 27402, 0x0000805A }, /* GL_RGBA12 */
+ { 27412, 0x0000805A }, /* GL_RGBA12_EXT */
+ { 27426, 0x0000805B }, /* GL_RGBA16 */
+ { 27436, 0x0000805B }, /* GL_RGBA16_EXT */
+ { 27450, 0x00008055 }, /* GL_RGBA2 */
+ { 27459, 0x00008055 }, /* GL_RGBA2_EXT */
+ { 27472, 0x00008056 }, /* GL_RGBA4 */
+ { 27481, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
+ { 27500, 0x00008056 }, /* GL_RGBA4_EXT */
+ { 27513, 0x000083A3 }, /* GL_RGBA4_S3TC */
+ { 27527, 0x00008058 }, /* GL_RGBA8 */
+ { 27536, 0x00008058 }, /* GL_RGBA8_EXT */
+ { 27549, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
+ { 27567, 0x00000C31 }, /* GL_RGBA_MODE */
+ { 27580, 0x000083A2 }, /* GL_RGBA_S3TC */
+ { 27593, 0x000083A0 }, /* GL_RGB_S3TC */
+ { 27605, 0x00008573 }, /* GL_RGB_SCALE */
+ { 27618, 0x00008573 }, /* GL_RGB_SCALE_ARB */
+ { 27635, 0x00008573 }, /* GL_RGB_SCALE_EXT */
+ { 27652, 0x00000407 }, /* GL_RIGHT */
+ { 27661, 0x00002000 }, /* GL_S */
+ { 27666, 0x00008B5D }, /* GL_SAMPLER_1D */
+ { 27680, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
+ { 27701, 0x00008B5E }, /* GL_SAMPLER_2D */
+ { 27715, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
+ { 27736, 0x00008B5F }, /* GL_SAMPLER_3D */
+ { 27750, 0x00008B60 }, /* GL_SAMPLER_CUBE */
+ { 27766, 0x000080A9 }, /* GL_SAMPLES */
+ { 27777, 0x000086B4 }, /* GL_SAMPLES_3DFX */
+ { 27793, 0x000080A9 }, /* GL_SAMPLES_ARB */
+ { 27808, 0x00008914 }, /* GL_SAMPLES_PASSED */
+ { 27826, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
+ { 27848, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ { 27876, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
+ { 27908, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
+ { 27931, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
+ { 27958, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
+ { 27976, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
+ { 27999, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
+ { 28021, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
+ { 28040, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
+ { 28063, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
+ { 28089, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
+ { 28119, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
+ { 28144, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
+ { 28173, 0x00080000 }, /* GL_SCISSOR_BIT */
+ { 28188, 0x00000C10 }, /* GL_SCISSOR_BOX */
+ { 28203, 0x00000C11 }, /* GL_SCISSOR_TEST */
+ { 28219, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
+ { 28244, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ { 28284, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 28328, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ { 28361, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ { 28391, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ { 28423, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ { 28453, 0x00001C02 }, /* GL_SELECT */
+ { 28463, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
+ { 28491, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
+ { 28516, 0x00008012 }, /* GL_SEPARABLE_2D */
+ { 28532, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
+ { 28559, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
+ { 28590, 0x0000150F }, /* GL_SET */
+ { 28597, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
+ { 28618, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
+ { 28642, 0x00008B4F }, /* GL_SHADER_TYPE */
+ { 28657, 0x00000B54 }, /* GL_SHADE_MODEL */
+ { 28672, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
+ { 28700, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
+ { 28723, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ { 28753, 0x00001601 }, /* GL_SHININESS */
+ { 28766, 0x00001402 }, /* GL_SHORT */
+ { 28775, 0x000081F9 }, /* GL_SINGLE_COLOR */
+ { 28791, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
+ { 28811, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
+ { 28830, 0x00001D01 }, /* GL_SMOOTH */
+ { 28840, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
+ { 28873, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
+ { 28900, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
+ { 28933, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
+ { 28960, 0x00008588 }, /* GL_SOURCE0_ALPHA */
+ { 28977, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
+ { 28998, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
+ { 29019, 0x00008580 }, /* GL_SOURCE0_RGB */
+ { 29034, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
+ { 29053, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
+ { 29072, 0x00008589 }, /* GL_SOURCE1_ALPHA */
+ { 29089, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
+ { 29110, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
+ { 29131, 0x00008581 }, /* GL_SOURCE1_RGB */
+ { 29146, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
+ { 29165, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
+ { 29184, 0x0000858A }, /* GL_SOURCE2_ALPHA */
+ { 29201, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
+ { 29222, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
+ { 29243, 0x00008582 }, /* GL_SOURCE2_RGB */
+ { 29258, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
+ { 29277, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
+ { 29296, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
+ { 29316, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
+ { 29334, 0x00001202 }, /* GL_SPECULAR */
+ { 29346, 0x00002402 }, /* GL_SPHERE_MAP */
+ { 29360, 0x00001206 }, /* GL_SPOT_CUTOFF */
+ { 29375, 0x00001204 }, /* GL_SPOT_DIRECTION */
+ { 29393, 0x00001205 }, /* GL_SPOT_EXPONENT */
+ { 29410, 0x00008588 }, /* GL_SRC0_ALPHA */
+ { 29424, 0x00008580 }, /* GL_SRC0_RGB */
+ { 29436, 0x00008589 }, /* GL_SRC1_ALPHA */
+ { 29450, 0x00008581 }, /* GL_SRC1_RGB */
+ { 29462, 0x0000858A }, /* GL_SRC2_ALPHA */
+ { 29476, 0x00008582 }, /* GL_SRC2_RGB */
+ { 29488, 0x00000302 }, /* GL_SRC_ALPHA */
+ { 29501, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
+ { 29523, 0x00000300 }, /* GL_SRC_COLOR */
+ { 29536, 0x00000503 }, /* GL_STACK_OVERFLOW */
+ { 29554, 0x00000504 }, /* GL_STACK_UNDERFLOW */
+ { 29573, 0x000088E6 }, /* GL_STATIC_COPY */
+ { 29588, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
+ { 29607, 0x000088E4 }, /* GL_STATIC_DRAW */
+ { 29622, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
+ { 29641, 0x000088E5 }, /* GL_STATIC_READ */
+ { 29656, 0x000088E5 }, /* GL_STATIC_READ_ARB */
+ { 29675, 0x00001802 }, /* GL_STENCIL */
+ { 29686, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
+ { 29712, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
+ { 29733, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
+ { 29758, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
+ { 29779, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
+ { 29804, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ { 29836, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
+ { 29872, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ { 29904, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
+ { 29940, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
+ { 29960, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
+ { 29987, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
+ { 30013, 0x00000D57 }, /* GL_STENCIL_BITS */
+ { 30029, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
+ { 30051, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
+ { 30074, 0x00000B94 }, /* GL_STENCIL_FAIL */
+ { 30090, 0x00000B92 }, /* GL_STENCIL_FUNC */
+ { 30106, 0x00001901 }, /* GL_STENCIL_INDEX */
+ { 30123, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
+ { 30146, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
+ { 30168, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
+ { 30190, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
+ { 30212, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
+ { 30233, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ { 30260, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
+ { 30287, 0x00000B97 }, /* GL_STENCIL_REF */
+ { 30302, 0x00000B90 }, /* GL_STENCIL_TEST */
+ { 30318, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ { 30347, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
+ { 30369, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
+ { 30390, 0x00000C33 }, /* GL_STEREO */
+ { 30400, 0x000088E2 }, /* GL_STREAM_COPY */
+ { 30415, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
+ { 30434, 0x000088E0 }, /* GL_STREAM_DRAW */
+ { 30449, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
+ { 30468, 0x000088E1 }, /* GL_STREAM_READ */
+ { 30483, 0x000088E1 }, /* GL_STREAM_READ_ARB */
+ { 30502, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
+ { 30519, 0x000084E7 }, /* GL_SUBTRACT */
+ { 30531, 0x000084E7 }, /* GL_SUBTRACT_ARB */
+ { 30547, 0x00002001 }, /* GL_T */
+ { 30552, 0x00002A2A }, /* GL_T2F_C3F_V3F */
+ { 30567, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
+ { 30586, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
+ { 30602, 0x00002A2B }, /* GL_T2F_N3F_V3F */
+ { 30617, 0x00002A27 }, /* GL_T2F_V3F */
+ { 30628, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
+ { 30647, 0x00002A28 }, /* GL_T4F_V4F */
+ { 30658, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
+ { 30681, 0x00001702 }, /* GL_TEXTURE */
+ { 30692, 0x000084C0 }, /* GL_TEXTURE0 */
+ { 30704, 0x000084C0 }, /* GL_TEXTURE0_ARB */
+ { 30720, 0x000084C1 }, /* GL_TEXTURE1 */
+ { 30732, 0x000084CA }, /* GL_TEXTURE10 */
+ { 30745, 0x000084CA }, /* GL_TEXTURE10_ARB */
+ { 30762, 0x000084CB }, /* GL_TEXTURE11 */
+ { 30775, 0x000084CB }, /* GL_TEXTURE11_ARB */
+ { 30792, 0x000084CC }, /* GL_TEXTURE12 */
+ { 30805, 0x000084CC }, /* GL_TEXTURE12_ARB */
+ { 30822, 0x000084CD }, /* GL_TEXTURE13 */
+ { 30835, 0x000084CD }, /* GL_TEXTURE13_ARB */
+ { 30852, 0x000084CE }, /* GL_TEXTURE14 */
+ { 30865, 0x000084CE }, /* GL_TEXTURE14_ARB */
+ { 30882, 0x000084CF }, /* GL_TEXTURE15 */
+ { 30895, 0x000084CF }, /* GL_TEXTURE15_ARB */
+ { 30912, 0x000084D0 }, /* GL_TEXTURE16 */
+ { 30925, 0x000084D0 }, /* GL_TEXTURE16_ARB */
+ { 30942, 0x000084D1 }, /* GL_TEXTURE17 */
+ { 30955, 0x000084D1 }, /* GL_TEXTURE17_ARB */
+ { 30972, 0x000084D2 }, /* GL_TEXTURE18 */
+ { 30985, 0x000084D2 }, /* GL_TEXTURE18_ARB */
+ { 31002, 0x000084D3 }, /* GL_TEXTURE19 */
+ { 31015, 0x000084D3 }, /* GL_TEXTURE19_ARB */
+ { 31032, 0x000084C1 }, /* GL_TEXTURE1_ARB */
+ { 31048, 0x000084C2 }, /* GL_TEXTURE2 */
+ { 31060, 0x000084D4 }, /* GL_TEXTURE20 */
+ { 31073, 0x000084D4 }, /* GL_TEXTURE20_ARB */
+ { 31090, 0x000084D5 }, /* GL_TEXTURE21 */
+ { 31103, 0x000084D5 }, /* GL_TEXTURE21_ARB */
+ { 31120, 0x000084D6 }, /* GL_TEXTURE22 */
+ { 31133, 0x000084D6 }, /* GL_TEXTURE22_ARB */
+ { 31150, 0x000084D7 }, /* GL_TEXTURE23 */
+ { 31163, 0x000084D7 }, /* GL_TEXTURE23_ARB */
+ { 31180, 0x000084D8 }, /* GL_TEXTURE24 */
+ { 31193, 0x000084D8 }, /* GL_TEXTURE24_ARB */
+ { 31210, 0x000084D9 }, /* GL_TEXTURE25 */
+ { 31223, 0x000084D9 }, /* GL_TEXTURE25_ARB */
+ { 31240, 0x000084DA }, /* GL_TEXTURE26 */
+ { 31253, 0x000084DA }, /* GL_TEXTURE26_ARB */
+ { 31270, 0x000084DB }, /* GL_TEXTURE27 */
+ { 31283, 0x000084DB }, /* GL_TEXTURE27_ARB */
+ { 31300, 0x000084DC }, /* GL_TEXTURE28 */
+ { 31313, 0x000084DC }, /* GL_TEXTURE28_ARB */
+ { 31330, 0x000084DD }, /* GL_TEXTURE29 */
+ { 31343, 0x000084DD }, /* GL_TEXTURE29_ARB */
+ { 31360, 0x000084C2 }, /* GL_TEXTURE2_ARB */
+ { 31376, 0x000084C3 }, /* GL_TEXTURE3 */
+ { 31388, 0x000084DE }, /* GL_TEXTURE30 */
+ { 31401, 0x000084DE }, /* GL_TEXTURE30_ARB */
+ { 31418, 0x000084DF }, /* GL_TEXTURE31 */
+ { 31431, 0x000084DF }, /* GL_TEXTURE31_ARB */
+ { 31448, 0x000084C3 }, /* GL_TEXTURE3_ARB */
+ { 31464, 0x000084C4 }, /* GL_TEXTURE4 */
+ { 31476, 0x000084C4 }, /* GL_TEXTURE4_ARB */
+ { 31492, 0x000084C5 }, /* GL_TEXTURE5 */
+ { 31504, 0x000084C5 }, /* GL_TEXTURE5_ARB */
+ { 31520, 0x000084C6 }, /* GL_TEXTURE6 */
+ { 31532, 0x000084C6 }, /* GL_TEXTURE6_ARB */
+ { 31548, 0x000084C7 }, /* GL_TEXTURE7 */
+ { 31560, 0x000084C7 }, /* GL_TEXTURE7_ARB */
+ { 31576, 0x000084C8 }, /* GL_TEXTURE8 */
+ { 31588, 0x000084C8 }, /* GL_TEXTURE8_ARB */
+ { 31604, 0x000084C9 }, /* GL_TEXTURE9 */
+ { 31616, 0x000084C9 }, /* GL_TEXTURE9_ARB */
+ { 31632, 0x00000DE0 }, /* GL_TEXTURE_1D */
+ { 31646, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
+ { 31670, 0x00000DE1 }, /* GL_TEXTURE_2D */
+ { 31684, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
+ { 31708, 0x0000806F }, /* GL_TEXTURE_3D */
+ { 31722, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
+ { 31744, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
+ { 31770, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
+ { 31792, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
+ { 31814, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ { 31846, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
+ { 31868, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ { 31900, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
+ { 31922, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ { 31950, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
+ { 31982, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ { 32015, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
+ { 32047, 0x00040000 }, /* GL_TEXTURE_BIT */
+ { 32062, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
+ { 32083, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
+ { 32108, 0x00001005 }, /* GL_TEXTURE_BORDER */
+ { 32126, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
+ { 32150, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ { 32181, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ { 32211, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ { 32241, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ { 32276, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ { 32307, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 32345, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ { 32372, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ { 32404, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ { 32438, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
+ { 32462, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
+ { 32490, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
+ { 32514, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
+ { 32542, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ { 32575, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
+ { 32599, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
+ { 32621, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
+ { 32643, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
+ { 32669, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
+ { 32703, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ { 32736, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
+ { 32773, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
+ { 32801, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
+ { 32833, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
+ { 32856, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ { 32894, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
+ { 32936, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ { 32967, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ { 32995, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ { 33025, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ { 33053, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
+ { 33073, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
+ { 33097, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ { 33128, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
+ { 33163, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ { 33194, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
+ { 33229, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ { 33260, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
+ { 33295, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ { 33326, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
+ { 33361, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ { 33392, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
+ { 33427, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ { 33458, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
+ { 33493, 0x00008071 }, /* GL_TEXTURE_DEPTH */
+ { 33510, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
+ { 33532, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
+ { 33558, 0x00002300 }, /* GL_TEXTURE_ENV */
+ { 33573, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
+ { 33594, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
+ { 33614, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
+ { 33640, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
+ { 33660, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
+ { 33677, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
+ { 33694, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
+ { 33711, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
+ { 33728, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ { 33753, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
+ { 33775, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
+ { 33801, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
+ { 33819, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ { 33845, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
+ { 33871, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
+ { 33901, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
+ { 33928, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ { 33953, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
+ { 33973, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
+ { 33997, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ { 34024, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ { 34051, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ { 34078, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
+ { 34104, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
+ { 34134, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
+ { 34156, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
+ { 34174, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 34204, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ { 34232, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ { 34260, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ { 34288, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
+ { 34309, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
+ { 34328, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
+ { 34350, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
+ { 34369, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
+ { 34389, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
+ { 34414, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
+ { 34438, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
+ { 34458, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
+ { 34482, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
+ { 34502, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
+ { 34525, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
+ { 34550, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ { 34584, 0x00001000 }, /* GL_TEXTURE_WIDTH */
+ { 34601, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
+ { 34619, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
+ { 34637, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
+ { 34655, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 34675, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 34694, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 34723, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 34740, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 34766, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 34796, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 34828, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 34858, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 34892, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 34908, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 34939, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 34974, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 35002, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 35034, 0x00000004 }, /* GL_TRIANGLES */
+ { 35047, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 35063, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 35084, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 35102, 0x00000001 }, /* GL_TRUE */
+ { 35110, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 35130, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 35153, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 35173, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 35194, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 35216, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 35238, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 35258, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 35279, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 35296, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 35323, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 35346, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 35362, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 35389, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 35413, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 35444, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 35468, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 35496, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 35514, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 35544, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 35570, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 35600, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 35626, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 35650, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 35678, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 35706, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 35733, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 35765, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 35796, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 35810, 0x00002A20 }, /* GL_V2F */
+ { 35817, 0x00002A21 }, /* GL_V3F */
+ { 35824, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 35843, 0x00001F00 }, /* GL_VENDOR */
+ { 35853, 0x00001F02 }, /* GL_VERSION */
+ { 35864, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 35880, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 35910, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 35941, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 35976, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 36000, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 36021, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 36044, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 36065, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 36092, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 36120, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 36148, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 36176, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 36204, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 36232, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 36260, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 36287, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 36314, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 36341, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 36368, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 36395, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 36422, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 36449, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 36476, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 36503, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 36541, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 36583, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 36614, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 36649, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 36683, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 36721, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 36752, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 36787, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 36815, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 36847, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 36877, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 36911, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 36939, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 36971, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 36991, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 37013, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 37042, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 37063, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 37092, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 37125, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 37157, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 37184, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 37215, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 37245, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 37262, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 37283, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 37310, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 37322, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 37338, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 37358, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 37389, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 37424, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 37452, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 37477, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 37504, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 37529, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 37553, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 37572, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 37586, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 37604, 0x00001506 }, /* GL_XOR */
+ { 37611, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 37630, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 37644, 0x00000000 }, /* GL_ZERO */
+ { 37652, 0x00000D16 }, /* GL_ZOOM_X */
+ { 37662, 0x00000D17 }, /* GL_ZOOM_Y */
};
-static const unsigned reduced_enums[1277] =
+static const unsigned reduced_enums[1284] =
{
- 435, /* GL_FALSE */
- 643, /* GL_LINES */
- 645, /* GL_LINE_LOOP */
- 652, /* GL_LINE_STRIP */
- 1632, /* GL_TRIANGLES */
- 1635, /* GL_TRIANGLE_STRIP */
- 1633, /* GL_TRIANGLE_FAN */
- 1206, /* GL_QUADS */
- 1208, /* GL_QUAD_STRIP */
- 1096, /* GL_POLYGON */
- 1108, /* GL_POLYGON_STIPPLE_BIT */
- 1061, /* GL_PIXEL_MODE_BIT */
- 630, /* GL_LIGHTING_BIT */
- 457, /* GL_FOG_BIT */
+ 436, /* GL_FALSE */
+ 645, /* GL_LINES */
+ 647, /* GL_LINE_LOOP */
+ 654, /* GL_LINE_STRIP */
+ 1641, /* GL_TRIANGLES */
+ 1644, /* GL_TRIANGLE_STRIP */
+ 1642, /* GL_TRIANGLE_FAN */
+ 1211, /* GL_QUADS */
+ 1213, /* GL_QUAD_STRIP */
+ 1099, /* GL_POLYGON */
+ 1111, /* GL_POLYGON_STIPPLE_BIT */
+ 1064, /* GL_PIXEL_MODE_BIT */
+ 632, /* GL_LIGHTING_BIT */
+ 458, /* GL_FOG_BIT */
8, /* GL_ACCUM */
- 662, /* GL_LOAD */
- 1248, /* GL_RETURN */
- 934, /* GL_MULT */
+ 664, /* GL_LOAD */
+ 1253, /* GL_RETURN */
+ 937, /* GL_MULT */
23, /* GL_ADD */
- 950, /* GL_NEVER */
- 620, /* GL_LESS */
- 425, /* GL_EQUAL */
- 619, /* GL_LEQUAL */
- 545, /* GL_GREATER */
- 965, /* GL_NOTEQUAL */
- 520, /* GL_GEQUAL */
+ 953, /* GL_NEVER */
+ 622, /* GL_LESS */
+ 426, /* GL_EQUAL */
+ 621, /* GL_LEQUAL */
+ 547, /* GL_GREATER */
+ 968, /* GL_NOTEQUAL */
+ 522, /* GL_GEQUAL */
46, /* GL_ALWAYS */
- 1381, /* GL_SRC_COLOR */
- 994, /* GL_ONE_MINUS_SRC_COLOR */
- 1379, /* GL_SRC_ALPHA */
- 993, /* GL_ONE_MINUS_SRC_ALPHA */
- 405, /* GL_DST_ALPHA */
- 991, /* GL_ONE_MINUS_DST_ALPHA */
- 406, /* GL_DST_COLOR */
- 992, /* GL_ONE_MINUS_DST_COLOR */
- 1380, /* GL_SRC_ALPHA_SATURATE */
- 508, /* GL_FRONT_LEFT */
- 509, /* GL_FRONT_RIGHT */
+ 1386, /* GL_SRC_COLOR */
+ 997, /* GL_ONE_MINUS_SRC_COLOR */
+ 1384, /* GL_SRC_ALPHA */
+ 996, /* GL_ONE_MINUS_SRC_ALPHA */
+ 406, /* GL_DST_ALPHA */
+ 994, /* GL_ONE_MINUS_DST_ALPHA */
+ 407, /* GL_DST_COLOR */
+ 995, /* GL_ONE_MINUS_DST_COLOR */
+ 1385, /* GL_SRC_ALPHA_SATURATE */
+ 510, /* GL_FRONT_LEFT */
+ 511, /* GL_FRONT_RIGHT */
69, /* GL_BACK_LEFT */
70, /* GL_BACK_RIGHT */
- 505, /* GL_FRONT */
+ 507, /* GL_FRONT */
68, /* GL_BACK */
- 618, /* GL_LEFT */
- 1288, /* GL_RIGHT */
- 506, /* GL_FRONT_AND_BACK */
+ 620, /* GL_LEFT */
+ 1293, /* GL_RIGHT */
+ 508, /* GL_FRONT_AND_BACK */
63, /* GL_AUX0 */
64, /* GL_AUX1 */
65, /* GL_AUX2 */
66, /* GL_AUX3 */
- 610, /* GL_INVALID_ENUM */
- 613, /* GL_INVALID_VALUE */
- 612, /* GL_INVALID_OPERATION */
- 1382, /* GL_STACK_OVERFLOW */
- 1383, /* GL_STACK_UNDERFLOW */
- 1019, /* GL_OUT_OF_MEMORY */
- 611, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
+ 612, /* GL_INVALID_ENUM */
+ 615, /* GL_INVALID_VALUE */
+ 614, /* GL_INVALID_OPERATION */
+ 1387, /* GL_STACK_OVERFLOW */
+ 1388, /* GL_STACK_UNDERFLOW */
+ 1022, /* GL_OUT_OF_MEMORY */
+ 613, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
0, /* GL_2D */
2, /* GL_3D */
3, /* GL_3D_COLOR */
4, /* GL_3D_COLOR_TEXTURE */
6, /* GL_4D_COLOR_TEXTURE */
- 1039, /* GL_PASS_THROUGH_TOKEN */
- 1095, /* GL_POINT_TOKEN */
- 653, /* GL_LINE_TOKEN */
- 1109, /* GL_POLYGON_TOKEN */
+ 1042, /* GL_PASS_THROUGH_TOKEN */
+ 1098, /* GL_POINT_TOKEN */
+ 655, /* GL_LINE_TOKEN */
+ 1112, /* GL_POLYGON_TOKEN */
74, /* GL_BITMAP_TOKEN */
- 404, /* GL_DRAW_PIXEL_TOKEN */
- 270, /* GL_COPY_PIXEL_TOKEN */
- 646, /* GL_LINE_RESET_TOKEN */
- 428, /* GL_EXP */
- 429, /* GL_EXP2 */
- 303, /* GL_CW */
+ 405, /* GL_DRAW_PIXEL_TOKEN */
+ 271, /* GL_COPY_PIXEL_TOKEN */
+ 648, /* GL_LINE_RESET_TOKEN */
+ 429, /* GL_EXP */
+ 430, /* GL_EXP2 */
+ 304, /* GL_CW */
116, /* GL_CCW */
137, /* GL_COEFF */
- 1016, /* GL_ORDER */
- 343, /* GL_DOMAIN */
- 278, /* GL_CURRENT_COLOR */
- 281, /* GL_CURRENT_INDEX */
- 287, /* GL_CURRENT_NORMAL */
- 299, /* GL_CURRENT_TEXTURE_COORDS */
- 292, /* GL_CURRENT_RASTER_COLOR */
- 294, /* GL_CURRENT_RASTER_INDEX */
- 297, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- 295, /* GL_CURRENT_RASTER_POSITION */
- 296, /* GL_CURRENT_RASTER_POSITION_VALID */
- 293, /* GL_CURRENT_RASTER_DISTANCE */
- 1088, /* GL_POINT_SMOOTH */
- 1077, /* GL_POINT_SIZE */
- 1087, /* GL_POINT_SIZE_RANGE */
- 1078, /* GL_POINT_SIZE_GRANULARITY */
- 647, /* GL_LINE_SMOOTH */
- 654, /* GL_LINE_WIDTH */
- 656, /* GL_LINE_WIDTH_RANGE */
- 655, /* GL_LINE_WIDTH_GRANULARITY */
- 649, /* GL_LINE_STIPPLE */
- 650, /* GL_LINE_STIPPLE_PATTERN */
- 651, /* GL_LINE_STIPPLE_REPEAT */
- 661, /* GL_LIST_MODE */
- 819, /* GL_MAX_LIST_NESTING */
- 658, /* GL_LIST_BASE */
- 660, /* GL_LIST_INDEX */
- 1098, /* GL_POLYGON_MODE */
- 1105, /* GL_POLYGON_SMOOTH */
- 1107, /* GL_POLYGON_STIPPLE */
- 413, /* GL_EDGE_FLAG */
- 271, /* GL_CULL_FACE */
- 272, /* GL_CULL_FACE_MODE */
- 507, /* GL_FRONT_FACE */
- 629, /* GL_LIGHTING */
- 634, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- 635, /* GL_LIGHT_MODEL_TWO_SIDE */
- 631, /* GL_LIGHT_MODEL_AMBIENT */
- 1334, /* GL_SHADE_MODEL */
+ 1019, /* GL_ORDER */
+ 344, /* GL_DOMAIN */
+ 279, /* GL_CURRENT_COLOR */
+ 282, /* GL_CURRENT_INDEX */
+ 288, /* GL_CURRENT_NORMAL */
+ 300, /* GL_CURRENT_TEXTURE_COORDS */
+ 293, /* GL_CURRENT_RASTER_COLOR */
+ 295, /* GL_CURRENT_RASTER_INDEX */
+ 298, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ 296, /* GL_CURRENT_RASTER_POSITION */
+ 297, /* GL_CURRENT_RASTER_POSITION_VALID */
+ 294, /* GL_CURRENT_RASTER_DISTANCE */
+ 1091, /* GL_POINT_SMOOTH */
+ 1080, /* GL_POINT_SIZE */
+ 1090, /* GL_POINT_SIZE_RANGE */
+ 1081, /* GL_POINT_SIZE_GRANULARITY */
+ 649, /* GL_LINE_SMOOTH */
+ 656, /* GL_LINE_WIDTH */
+ 658, /* GL_LINE_WIDTH_RANGE */
+ 657, /* GL_LINE_WIDTH_GRANULARITY */
+ 651, /* GL_LINE_STIPPLE */
+ 652, /* GL_LINE_STIPPLE_PATTERN */
+ 653, /* GL_LINE_STIPPLE_REPEAT */
+ 663, /* GL_LIST_MODE */
+ 822, /* GL_MAX_LIST_NESTING */
+ 660, /* GL_LIST_BASE */
+ 662, /* GL_LIST_INDEX */
+ 1101, /* GL_POLYGON_MODE */
+ 1108, /* GL_POLYGON_SMOOTH */
+ 1110, /* GL_POLYGON_STIPPLE */
+ 414, /* GL_EDGE_FLAG */
+ 272, /* GL_CULL_FACE */
+ 273, /* GL_CULL_FACE_MODE */
+ 509, /* GL_FRONT_FACE */
+ 631, /* GL_LIGHTING */
+ 636, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ 637, /* GL_LIGHT_MODEL_TWO_SIDE */
+ 633, /* GL_LIGHT_MODEL_AMBIENT */
+ 1339, /* GL_SHADE_MODEL */
168, /* GL_COLOR_MATERIAL_FACE */
169, /* GL_COLOR_MATERIAL_PARAMETER */
167, /* GL_COLOR_MATERIAL */
- 456, /* GL_FOG */
- 478, /* GL_FOG_INDEX */
- 474, /* GL_FOG_DENSITY */
- 482, /* GL_FOG_START */
- 476, /* GL_FOG_END */
- 479, /* GL_FOG_MODE */
- 458, /* GL_FOG_COLOR */
- 332, /* GL_DEPTH_RANGE */
- 337, /* GL_DEPTH_TEST */
- 340, /* GL_DEPTH_WRITEMASK */
- 320, /* GL_DEPTH_CLEAR_VALUE */
- 331, /* GL_DEPTH_FUNC */
+ 457, /* GL_FOG */
+ 479, /* GL_FOG_INDEX */
+ 475, /* GL_FOG_DENSITY */
+ 483, /* GL_FOG_START */
+ 477, /* GL_FOG_END */
+ 480, /* GL_FOG_MODE */
+ 459, /* GL_FOG_COLOR */
+ 333, /* GL_DEPTH_RANGE */
+ 338, /* GL_DEPTH_TEST */
+ 341, /* GL_DEPTH_WRITEMASK */
+ 321, /* GL_DEPTH_CLEAR_VALUE */
+ 332, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1417, /* GL_STENCIL_TEST */
- 1405, /* GL_STENCIL_CLEAR_VALUE */
- 1407, /* GL_STENCIL_FUNC */
- 1419, /* GL_STENCIL_VALUE_MASK */
- 1406, /* GL_STENCIL_FAIL */
- 1414, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1415, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1416, /* GL_STENCIL_REF */
- 1420, /* GL_STENCIL_WRITEMASK */
- 789, /* GL_MATRIX_MODE */
- 955, /* GL_NORMALIZE */
- 1722, /* GL_VIEWPORT */
- 929, /* GL_MODELVIEW_STACK_DEPTH */
- 1188, /* GL_PROJECTION_STACK_DEPTH */
- 1611, /* GL_TEXTURE_STACK_DEPTH */
- 927, /* GL_MODELVIEW_MATRIX */
- 1187, /* GL_PROJECTION_MATRIX */
- 1596, /* GL_TEXTURE_MATRIX */
+ 1422, /* GL_STENCIL_TEST */
+ 1410, /* GL_STENCIL_CLEAR_VALUE */
+ 1412, /* GL_STENCIL_FUNC */
+ 1424, /* GL_STENCIL_VALUE_MASK */
+ 1411, /* GL_STENCIL_FAIL */
+ 1419, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ 1420, /* GL_STENCIL_PASS_DEPTH_PASS */
+ 1421, /* GL_STENCIL_REF */
+ 1425, /* GL_STENCIL_WRITEMASK */
+ 791, /* GL_MATRIX_MODE */
+ 958, /* GL_NORMALIZE */
+ 1731, /* GL_VIEWPORT */
+ 932, /* GL_MODELVIEW_STACK_DEPTH */
+ 1191, /* GL_PROJECTION_STACK_DEPTH */
+ 1620, /* GL_TEXTURE_STACK_DEPTH */
+ 930, /* GL_MODELVIEW_MATRIX */
+ 1190, /* GL_PROJECTION_MATRIX */
+ 1605, /* GL_TEXTURE_MATRIX */
61, /* GL_ATTRIB_STACK_DEPTH */
127, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
43, /* GL_ALPHA_TEST */
44, /* GL_ALPHA_TEST_FUNC */
45, /* GL_ALPHA_TEST_REF */
- 342, /* GL_DITHER */
+ 343, /* GL_DITHER */
78, /* GL_BLEND_DST */
86, /* GL_BLEND_SRC */
75, /* GL_BLEND */
- 664, /* GL_LOGIC_OP_MODE */
- 584, /* GL_INDEX_LOGIC_OP */
+ 666, /* GL_LOGIC_OP_MODE */
+ 586, /* GL_INDEX_LOGIC_OP */
166, /* GL_COLOR_LOGIC_OP */
67, /* GL_AUX_BUFFERS */
- 353, /* GL_DRAW_BUFFER */
- 1218, /* GL_READ_BUFFER */
- 1315, /* GL_SCISSOR_BOX */
- 1316, /* GL_SCISSOR_TEST */
- 583, /* GL_INDEX_CLEAR_VALUE */
- 588, /* GL_INDEX_WRITEMASK */
+ 354, /* GL_DRAW_BUFFER */
+ 1223, /* GL_READ_BUFFER */
+ 1320, /* GL_SCISSOR_BOX */
+ 1321, /* GL_SCISSOR_TEST */
+ 585, /* GL_INDEX_CLEAR_VALUE */
+ 590, /* GL_INDEX_WRITEMASK */
163, /* GL_COLOR_CLEAR_VALUE */
205, /* GL_COLOR_WRITEMASK */
- 585, /* GL_INDEX_MODE */
- 1282, /* GL_RGBA_MODE */
- 352, /* GL_DOUBLEBUFFER */
- 1421, /* GL_STEREO */
- 1241, /* GL_RENDER_MODE */
- 1040, /* GL_PERSPECTIVE_CORRECTION_HINT */
- 1089, /* GL_POINT_SMOOTH_HINT */
- 648, /* GL_LINE_SMOOTH_HINT */
- 1106, /* GL_POLYGON_SMOOTH_HINT */
- 477, /* GL_FOG_HINT */
- 1577, /* GL_TEXTURE_GEN_S */
- 1578, /* GL_TEXTURE_GEN_T */
- 1576, /* GL_TEXTURE_GEN_R */
- 1575, /* GL_TEXTURE_GEN_Q */
- 1053, /* GL_PIXEL_MAP_I_TO_I */
- 1059, /* GL_PIXEL_MAP_S_TO_S */
- 1055, /* GL_PIXEL_MAP_I_TO_R */
- 1051, /* GL_PIXEL_MAP_I_TO_G */
- 1049, /* GL_PIXEL_MAP_I_TO_B */
- 1047, /* GL_PIXEL_MAP_I_TO_A */
- 1057, /* GL_PIXEL_MAP_R_TO_R */
- 1045, /* GL_PIXEL_MAP_G_TO_G */
- 1043, /* GL_PIXEL_MAP_B_TO_B */
- 1041, /* GL_PIXEL_MAP_A_TO_A */
- 1054, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- 1060, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- 1056, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- 1052, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- 1050, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- 1048, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- 1058, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- 1046, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- 1044, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- 1042, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1644, /* GL_UNPACK_SWAP_BYTES */
- 1639, /* GL_UNPACK_LSB_FIRST */
- 1640, /* GL_UNPACK_ROW_LENGTH */
- 1643, /* GL_UNPACK_SKIP_ROWS */
- 1642, /* GL_UNPACK_SKIP_PIXELS */
- 1637, /* GL_UNPACK_ALIGNMENT */
- 1028, /* GL_PACK_SWAP_BYTES */
- 1023, /* GL_PACK_LSB_FIRST */
- 1024, /* GL_PACK_ROW_LENGTH */
- 1027, /* GL_PACK_SKIP_ROWS */
- 1026, /* GL_PACK_SKIP_PIXELS */
- 1020, /* GL_PACK_ALIGNMENT */
- 742, /* GL_MAP_COLOR */
- 743, /* GL_MAP_STENCIL */
- 587, /* GL_INDEX_SHIFT */
- 586, /* GL_INDEX_OFFSET */
- 1230, /* GL_RED_SCALE */
- 1228, /* GL_RED_BIAS */
- 1739, /* GL_ZOOM_X */
- 1740, /* GL_ZOOM_Y */
- 549, /* GL_GREEN_SCALE */
- 547, /* GL_GREEN_BIAS */
+ 587, /* GL_INDEX_MODE */
+ 1287, /* GL_RGBA_MODE */
+ 353, /* GL_DOUBLEBUFFER */
+ 1426, /* GL_STEREO */
+ 1246, /* GL_RENDER_MODE */
+ 1043, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ 1092, /* GL_POINT_SMOOTH_HINT */
+ 650, /* GL_LINE_SMOOTH_HINT */
+ 1109, /* GL_POLYGON_SMOOTH_HINT */
+ 478, /* GL_FOG_HINT */
+ 1586, /* GL_TEXTURE_GEN_S */
+ 1587, /* GL_TEXTURE_GEN_T */
+ 1585, /* GL_TEXTURE_GEN_R */
+ 1584, /* GL_TEXTURE_GEN_Q */
+ 1056, /* GL_PIXEL_MAP_I_TO_I */
+ 1062, /* GL_PIXEL_MAP_S_TO_S */
+ 1058, /* GL_PIXEL_MAP_I_TO_R */
+ 1054, /* GL_PIXEL_MAP_I_TO_G */
+ 1052, /* GL_PIXEL_MAP_I_TO_B */
+ 1050, /* GL_PIXEL_MAP_I_TO_A */
+ 1060, /* GL_PIXEL_MAP_R_TO_R */
+ 1048, /* GL_PIXEL_MAP_G_TO_G */
+ 1046, /* GL_PIXEL_MAP_B_TO_B */
+ 1044, /* GL_PIXEL_MAP_A_TO_A */
+ 1057, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ 1063, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ 1059, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ 1055, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ 1053, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ 1051, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ 1061, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ 1049, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ 1047, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ 1045, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ 1653, /* GL_UNPACK_SWAP_BYTES */
+ 1648, /* GL_UNPACK_LSB_FIRST */
+ 1649, /* GL_UNPACK_ROW_LENGTH */
+ 1652, /* GL_UNPACK_SKIP_ROWS */
+ 1651, /* GL_UNPACK_SKIP_PIXELS */
+ 1646, /* GL_UNPACK_ALIGNMENT */
+ 1031, /* GL_PACK_SWAP_BYTES */
+ 1026, /* GL_PACK_LSB_FIRST */
+ 1027, /* GL_PACK_ROW_LENGTH */
+ 1030, /* GL_PACK_SKIP_ROWS */
+ 1029, /* GL_PACK_SKIP_PIXELS */
+ 1023, /* GL_PACK_ALIGNMENT */
+ 744, /* GL_MAP_COLOR */
+ 745, /* GL_MAP_STENCIL */
+ 589, /* GL_INDEX_SHIFT */
+ 588, /* GL_INDEX_OFFSET */
+ 1235, /* GL_RED_SCALE */
+ 1233, /* GL_RED_BIAS */
+ 1748, /* GL_ZOOM_X */
+ 1749, /* GL_ZOOM_Y */
+ 551, /* GL_GREEN_SCALE */
+ 549, /* GL_GREEN_BIAS */
92, /* GL_BLUE_SCALE */
90, /* GL_BLUE_BIAS */
42, /* GL_ALPHA_SCALE */
40, /* GL_ALPHA_BIAS */
- 333, /* GL_DEPTH_SCALE */
- 314, /* GL_DEPTH_BIAS */
- 814, /* GL_MAX_EVAL_ORDER */
- 818, /* GL_MAX_LIGHTS */
- 797, /* GL_MAX_CLIP_PLANES */
- 862, /* GL_MAX_TEXTURE_SIZE */
- 824, /* GL_MAX_PIXEL_MAP_TABLE */
- 793, /* GL_MAX_ATTRIB_STACK_DEPTH */
- 821, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- 822, /* GL_MAX_NAME_STACK_DEPTH */
- 850, /* GL_MAX_PROJECTION_STACK_DEPTH */
- 863, /* GL_MAX_TEXTURE_STACK_DEPTH */
- 877, /* GL_MAX_VIEWPORT_DIMS */
- 794, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1428, /* GL_SUBPIXEL_BITS */
- 582, /* GL_INDEX_BITS */
- 1229, /* GL_RED_BITS */
- 548, /* GL_GREEN_BITS */
+ 334, /* GL_DEPTH_SCALE */
+ 315, /* GL_DEPTH_BIAS */
+ 817, /* GL_MAX_EVAL_ORDER */
+ 821, /* GL_MAX_LIGHTS */
+ 800, /* GL_MAX_CLIP_PLANES */
+ 865, /* GL_MAX_TEXTURE_SIZE */
+ 827, /* GL_MAX_PIXEL_MAP_TABLE */
+ 796, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ 824, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ 825, /* GL_MAX_NAME_STACK_DEPTH */
+ 853, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ 866, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ 880, /* GL_MAX_VIEWPORT_DIMS */
+ 797, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ 1433, /* GL_SUBPIXEL_BITS */
+ 584, /* GL_INDEX_BITS */
+ 1234, /* GL_RED_BITS */
+ 550, /* GL_GREEN_BITS */
91, /* GL_BLUE_BITS */
41, /* GL_ALPHA_BITS */
- 315, /* GL_DEPTH_BITS */
- 1403, /* GL_STENCIL_BITS */
+ 316, /* GL_DEPTH_BITS */
+ 1408, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
9, /* GL_ACCUM_ALPHA_BITS */
- 943, /* GL_NAME_STACK_DEPTH */
+ 946, /* GL_NAME_STACK_DEPTH */
62, /* GL_AUTO_NORMAL */
- 688, /* GL_MAP1_COLOR_4 */
- 691, /* GL_MAP1_INDEX */
- 692, /* GL_MAP1_NORMAL */
- 693, /* GL_MAP1_TEXTURE_COORD_1 */
- 694, /* GL_MAP1_TEXTURE_COORD_2 */
- 695, /* GL_MAP1_TEXTURE_COORD_3 */
- 696, /* GL_MAP1_TEXTURE_COORD_4 */
- 697, /* GL_MAP1_VERTEX_3 */
- 698, /* GL_MAP1_VERTEX_4 */
- 715, /* GL_MAP2_COLOR_4 */
- 718, /* GL_MAP2_INDEX */
- 719, /* GL_MAP2_NORMAL */
- 720, /* GL_MAP2_TEXTURE_COORD_1 */
- 721, /* GL_MAP2_TEXTURE_COORD_2 */
- 722, /* GL_MAP2_TEXTURE_COORD_3 */
- 723, /* GL_MAP2_TEXTURE_COORD_4 */
- 724, /* GL_MAP2_VERTEX_3 */
- 725, /* GL_MAP2_VERTEX_4 */
- 689, /* GL_MAP1_GRID_DOMAIN */
- 690, /* GL_MAP1_GRID_SEGMENTS */
- 716, /* GL_MAP2_GRID_DOMAIN */
- 717, /* GL_MAP2_GRID_SEGMENTS */
- 1505, /* GL_TEXTURE_1D */
- 1506, /* GL_TEXTURE_2D */
- 438, /* GL_FEEDBACK_BUFFER_POINTER */
- 439, /* GL_FEEDBACK_BUFFER_SIZE */
- 440, /* GL_FEEDBACK_BUFFER_TYPE */
- 1325, /* GL_SELECTION_BUFFER_POINTER */
- 1326, /* GL_SELECTION_BUFFER_SIZE */
- 1614, /* GL_TEXTURE_WIDTH */
- 1582, /* GL_TEXTURE_HEIGHT */
- 1538, /* GL_TEXTURE_COMPONENTS */
- 1522, /* GL_TEXTURE_BORDER_COLOR */
- 1521, /* GL_TEXTURE_BORDER */
- 344, /* GL_DONT_CARE */
- 436, /* GL_FASTEST */
- 951, /* GL_NICEST */
+ 690, /* GL_MAP1_COLOR_4 */
+ 693, /* GL_MAP1_INDEX */
+ 694, /* GL_MAP1_NORMAL */
+ 695, /* GL_MAP1_TEXTURE_COORD_1 */
+ 696, /* GL_MAP1_TEXTURE_COORD_2 */
+ 697, /* GL_MAP1_TEXTURE_COORD_3 */
+ 698, /* GL_MAP1_TEXTURE_COORD_4 */
+ 699, /* GL_MAP1_VERTEX_3 */
+ 700, /* GL_MAP1_VERTEX_4 */
+ 717, /* GL_MAP2_COLOR_4 */
+ 720, /* GL_MAP2_INDEX */
+ 721, /* GL_MAP2_NORMAL */
+ 722, /* GL_MAP2_TEXTURE_COORD_1 */
+ 723, /* GL_MAP2_TEXTURE_COORD_2 */
+ 724, /* GL_MAP2_TEXTURE_COORD_3 */
+ 725, /* GL_MAP2_TEXTURE_COORD_4 */
+ 726, /* GL_MAP2_VERTEX_3 */
+ 727, /* GL_MAP2_VERTEX_4 */
+ 691, /* GL_MAP1_GRID_DOMAIN */
+ 692, /* GL_MAP1_GRID_SEGMENTS */
+ 718, /* GL_MAP2_GRID_DOMAIN */
+ 719, /* GL_MAP2_GRID_SEGMENTS */
+ 1510, /* GL_TEXTURE_1D */
+ 1512, /* GL_TEXTURE_2D */
+ 439, /* GL_FEEDBACK_BUFFER_POINTER */
+ 440, /* GL_FEEDBACK_BUFFER_SIZE */
+ 441, /* GL_FEEDBACK_BUFFER_TYPE */
+ 1330, /* GL_SELECTION_BUFFER_POINTER */
+ 1331, /* GL_SELECTION_BUFFER_SIZE */
+ 1623, /* GL_TEXTURE_WIDTH */
+ 1591, /* GL_TEXTURE_HEIGHT */
+ 1547, /* GL_TEXTURE_COMPONENTS */
+ 1531, /* GL_TEXTURE_BORDER_COLOR */
+ 1530, /* GL_TEXTURE_BORDER */
+ 345, /* GL_DONT_CARE */
+ 437, /* GL_FASTEST */
+ 954, /* GL_NICEST */
47, /* GL_AMBIENT */
- 341, /* GL_DIFFUSE */
- 1368, /* GL_SPECULAR */
- 1110, /* GL_POSITION */
- 1371, /* GL_SPOT_DIRECTION */
- 1372, /* GL_SPOT_EXPONENT */
- 1370, /* GL_SPOT_CUTOFF */
- 244, /* GL_CONSTANT_ATTENUATION */
- 638, /* GL_LINEAR_ATTENUATION */
- 1205, /* GL_QUADRATIC_ATTENUATION */
- 218, /* GL_COMPILE */
- 219, /* GL_COMPILE_AND_EXECUTE */
+ 342, /* GL_DIFFUSE */
+ 1373, /* GL_SPECULAR */
+ 1113, /* GL_POSITION */
+ 1376, /* GL_SPOT_DIRECTION */
+ 1377, /* GL_SPOT_EXPONENT */
+ 1375, /* GL_SPOT_CUTOFF */
+ 245, /* GL_CONSTANT_ATTENUATION */
+ 640, /* GL_LINEAR_ATTENUATION */
+ 1210, /* GL_QUADRATIC_ATTENUATION */
+ 219, /* GL_COMPILE */
+ 220, /* GL_COMPILE_AND_EXECUTE */
111, /* GL_BYTE */
- 1645, /* GL_UNSIGNED_BYTE */
- 1339, /* GL_SHORT */
- 1654, /* GL_UNSIGNED_SHORT */
- 590, /* GL_INT */
- 1648, /* GL_UNSIGNED_INT */
- 443, /* GL_FLOAT */
+ 1654, /* GL_UNSIGNED_BYTE */
+ 1344, /* GL_SHORT */
+ 1663, /* GL_UNSIGNED_SHORT */
+ 592, /* GL_INT */
+ 1657, /* GL_UNSIGNED_INT */
+ 444, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
7, /* GL_4_BYTES */
- 351, /* GL_DOUBLE */
+ 352, /* GL_DOUBLE */
123, /* GL_CLEAR */
49, /* GL_AND */
51, /* GL_AND_REVERSE */
- 268, /* GL_COPY */
+ 269, /* GL_COPY */
50, /* GL_AND_INVERTED */
- 953, /* GL_NOOP */
- 1735, /* GL_XOR */
- 1015, /* GL_OR */
- 954, /* GL_NOR */
- 426, /* GL_EQUIV */
- 616, /* GL_INVERT */
- 1018, /* GL_OR_REVERSE */
- 269, /* GL_COPY_INVERTED */
- 1017, /* GL_OR_INVERTED */
- 944, /* GL_NAND */
- 1330, /* GL_SET */
- 423, /* GL_EMISSION */
- 1338, /* GL_SHININESS */
+ 956, /* GL_NOOP */
+ 1744, /* GL_XOR */
+ 1018, /* GL_OR */
+ 957, /* GL_NOR */
+ 427, /* GL_EQUIV */
+ 618, /* GL_INVERT */
+ 1021, /* GL_OR_REVERSE */
+ 270, /* GL_COPY_INVERTED */
+ 1020, /* GL_OR_INVERTED */
+ 947, /* GL_NAND */
+ 1335, /* GL_SET */
+ 424, /* GL_EMISSION */
+ 1343, /* GL_SHININESS */
48, /* GL_AMBIENT_AND_DIFFUSE */
165, /* GL_COLOR_INDEXES */
- 894, /* GL_MODELVIEW */
- 1186, /* GL_PROJECTION */
- 1440, /* GL_TEXTURE */
+ 897, /* GL_MODELVIEW */
+ 1189, /* GL_PROJECTION */
+ 1445, /* GL_TEXTURE */
138, /* GL_COLOR */
- 312, /* GL_DEPTH */
- 1390, /* GL_STENCIL */
+ 313, /* GL_DEPTH */
+ 1395, /* GL_STENCIL */
164, /* GL_COLOR_INDEX */
- 1408, /* GL_STENCIL_INDEX */
- 321, /* GL_DEPTH_COMPONENT */
- 1225, /* GL_RED */
- 546, /* GL_GREEN */
+ 1413, /* GL_STENCIL_INDEX */
+ 322, /* GL_DEPTH_COMPONENT */
+ 1230, /* GL_RED */
+ 548, /* GL_GREEN */
89, /* GL_BLUE */
31, /* GL_ALPHA */
- 1249, /* GL_RGB */
- 1268, /* GL_RGBA */
- 666, /* GL_LUMINANCE */
- 687, /* GL_LUMINANCE_ALPHA */
+ 1254, /* GL_RGB */
+ 1273, /* GL_RGBA */
+ 668, /* GL_LUMINANCE */
+ 689, /* GL_LUMINANCE_ALPHA */
73, /* GL_BITMAP */
- 1066, /* GL_POINT */
- 636, /* GL_LINE */
- 441, /* GL_FILL */
- 1234, /* GL_RENDER */
- 437, /* GL_FEEDBACK */
- 1324, /* GL_SELECT */
- 442, /* GL_FLAT */
- 1343, /* GL_SMOOTH */
- 617, /* GL_KEEP */
- 1243, /* GL_REPLACE */
- 573, /* GL_INCR */
- 308, /* GL_DECR */
- 1669, /* GL_VENDOR */
- 1240, /* GL_RENDERER */
- 1670, /* GL_VERSION */
- 430, /* GL_EXTENSIONS */
- 1289, /* GL_S */
- 1431, /* GL_T */
- 1215, /* GL_R */
- 1204, /* GL_Q */
- 930, /* GL_MODULATE */
- 307, /* GL_DECAL */
- 1572, /* GL_TEXTURE_ENV_MODE */
- 1571, /* GL_TEXTURE_ENV_COLOR */
- 1570, /* GL_TEXTURE_ENV */
- 431, /* GL_EYE_LINEAR */
- 977, /* GL_OBJECT_LINEAR */
- 1369, /* GL_SPHERE_MAP */
- 1574, /* GL_TEXTURE_GEN_MODE */
- 979, /* GL_OBJECT_PLANE */
- 432, /* GL_EYE_PLANE */
- 945, /* GL_NEAREST */
- 637, /* GL_LINEAR */
- 949, /* GL_NEAREST_MIPMAP_NEAREST */
- 642, /* GL_LINEAR_MIPMAP_NEAREST */
- 948, /* GL_NEAREST_MIPMAP_LINEAR */
- 641, /* GL_LINEAR_MIPMAP_LINEAR */
- 1595, /* GL_TEXTURE_MAG_FILTER */
- 1603, /* GL_TEXTURE_MIN_FILTER */
- 1616, /* GL_TEXTURE_WRAP_S */
- 1617, /* GL_TEXTURE_WRAP_T */
+ 1069, /* GL_POINT */
+ 638, /* GL_LINE */
+ 442, /* GL_FILL */
+ 1239, /* GL_RENDER */
+ 438, /* GL_FEEDBACK */
+ 1329, /* GL_SELECT */
+ 443, /* GL_FLAT */
+ 1348, /* GL_SMOOTH */
+ 619, /* GL_KEEP */
+ 1248, /* GL_REPLACE */
+ 575, /* GL_INCR */
+ 309, /* GL_DECR */
+ 1678, /* GL_VENDOR */
+ 1245, /* GL_RENDERER */
+ 1679, /* GL_VERSION */
+ 431, /* GL_EXTENSIONS */
+ 1294, /* GL_S */
+ 1436, /* GL_T */
+ 1220, /* GL_R */
+ 1209, /* GL_Q */
+ 933, /* GL_MODULATE */
+ 308, /* GL_DECAL */
+ 1581, /* GL_TEXTURE_ENV_MODE */
+ 1580, /* GL_TEXTURE_ENV_COLOR */
+ 1579, /* GL_TEXTURE_ENV */
+ 432, /* GL_EYE_LINEAR */
+ 980, /* GL_OBJECT_LINEAR */
+ 1374, /* GL_SPHERE_MAP */
+ 1583, /* GL_TEXTURE_GEN_MODE */
+ 982, /* GL_OBJECT_PLANE */
+ 433, /* GL_EYE_PLANE */
+ 948, /* GL_NEAREST */
+ 639, /* GL_LINEAR */
+ 952, /* GL_NEAREST_MIPMAP_NEAREST */
+ 644, /* GL_LINEAR_MIPMAP_NEAREST */
+ 951, /* GL_NEAREST_MIPMAP_LINEAR */
+ 643, /* GL_LINEAR_MIPMAP_LINEAR */
+ 1604, /* GL_TEXTURE_MAG_FILTER */
+ 1612, /* GL_TEXTURE_MIN_FILTER */
+ 1625, /* GL_TEXTURE_WRAP_S */
+ 1626, /* GL_TEXTURE_WRAP_T */
117, /* GL_CLAMP */
- 1242, /* GL_REPEAT */
- 1104, /* GL_POLYGON_OFFSET_UNITS */
- 1103, /* GL_POLYGON_OFFSET_POINT */
- 1102, /* GL_POLYGON_OFFSET_LINE */
- 1216, /* GL_R3_G3_B2 */
- 1666, /* GL_V2F */
- 1667, /* GL_V3F */
+ 1247, /* GL_REPEAT */
+ 1107, /* GL_POLYGON_OFFSET_UNITS */
+ 1106, /* GL_POLYGON_OFFSET_POINT */
+ 1105, /* GL_POLYGON_OFFSET_LINE */
+ 1221, /* GL_R3_G3_B2 */
+ 1675, /* GL_V2F */
+ 1676, /* GL_V3F */
114, /* GL_C4UB_V2F */
115, /* GL_C4UB_V3F */
112, /* GL_C3F_V3F */
- 942, /* GL_N3F_V3F */
+ 945, /* GL_N3F_V3F */
113, /* GL_C4F_N3F_V3F */
- 1436, /* GL_T2F_V3F */
- 1438, /* GL_T4F_V4F */
- 1434, /* GL_T2F_C4UB_V3F */
- 1432, /* GL_T2F_C3F_V3F */
- 1435, /* GL_T2F_N3F_V3F */
- 1433, /* GL_T2F_C4F_N3F_V3F */
- 1437, /* GL_T4F_C4F_N3F_V4F */
+ 1441, /* GL_T2F_V3F */
+ 1443, /* GL_T4F_V4F */
+ 1439, /* GL_T2F_C4UB_V3F */
+ 1437, /* GL_T2F_C3F_V3F */
+ 1440, /* GL_T2F_N3F_V3F */
+ 1438, /* GL_T2F_C4F_N3F_V3F */
+ 1442, /* GL_T4F_C4F_N3F_V4F */
130, /* GL_CLIP_PLANE0 */
131, /* GL_CLIP_PLANE1 */
132, /* GL_CLIP_PLANE2 */
133, /* GL_CLIP_PLANE3 */
134, /* GL_CLIP_PLANE4 */
135, /* GL_CLIP_PLANE5 */
- 621, /* GL_LIGHT0 */
- 622, /* GL_LIGHT1 */
- 623, /* GL_LIGHT2 */
- 624, /* GL_LIGHT3 */
- 625, /* GL_LIGHT4 */
- 626, /* GL_LIGHT5 */
- 627, /* GL_LIGHT6 */
- 628, /* GL_LIGHT7 */
- 550, /* GL_HINT_BIT */
- 246, /* GL_CONSTANT_COLOR */
- 989, /* GL_ONE_MINUS_CONSTANT_COLOR */
- 241, /* GL_CONSTANT_ALPHA */
- 987, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ 623, /* GL_LIGHT0 */
+ 624, /* GL_LIGHT1 */
+ 625, /* GL_LIGHT2 */
+ 626, /* GL_LIGHT3 */
+ 627, /* GL_LIGHT4 */
+ 628, /* GL_LIGHT5 */
+ 629, /* GL_LIGHT6 */
+ 630, /* GL_LIGHT7 */
+ 552, /* GL_HINT_BIT */
+ 247, /* GL_CONSTANT_COLOR */
+ 992, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ 242, /* GL_CONSTANT_ALPHA */
+ 990, /* GL_ONE_MINUS_CONSTANT_ALPHA */
76, /* GL_BLEND_COLOR */
- 510, /* GL_FUNC_ADD */
- 878, /* GL_MIN */
- 791, /* GL_MAX */
+ 512, /* GL_FUNC_ADD */
+ 881, /* GL_MIN */
+ 793, /* GL_MAX */
81, /* GL_BLEND_EQUATION */
- 514, /* GL_FUNC_SUBTRACT */
- 512, /* GL_FUNC_REVERSE_SUBTRACT */
- 249, /* GL_CONVOLUTION_1D */
- 250, /* GL_CONVOLUTION_2D */
- 1327, /* GL_SEPARABLE_2D */
- 253, /* GL_CONVOLUTION_BORDER_MODE */
- 257, /* GL_CONVOLUTION_FILTER_SCALE */
- 255, /* GL_CONVOLUTION_FILTER_BIAS */
- 1226, /* GL_REDUCE */
- 259, /* GL_CONVOLUTION_FORMAT */
- 263, /* GL_CONVOLUTION_WIDTH */
- 261, /* GL_CONVOLUTION_HEIGHT */
- 805, /* GL_MAX_CONVOLUTION_WIDTH */
- 803, /* GL_MAX_CONVOLUTION_HEIGHT */
- 1143, /* GL_POST_CONVOLUTION_RED_SCALE */
- 1139, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- 1134, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- 1130, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- 1141, /* GL_POST_CONVOLUTION_RED_BIAS */
- 1137, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- 1132, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- 1128, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- 551, /* GL_HISTOGRAM */
- 1190, /* GL_PROXY_HISTOGRAM */
- 567, /* GL_HISTOGRAM_WIDTH */
- 557, /* GL_HISTOGRAM_FORMAT */
- 563, /* GL_HISTOGRAM_RED_SIZE */
- 559, /* GL_HISTOGRAM_GREEN_SIZE */
- 554, /* GL_HISTOGRAM_BLUE_SIZE */
- 552, /* GL_HISTOGRAM_ALPHA_SIZE */
- 561, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- 565, /* GL_HISTOGRAM_SINK */
- 879, /* GL_MINMAX */
- 881, /* GL_MINMAX_FORMAT */
- 883, /* GL_MINMAX_SINK */
- 1439, /* GL_TABLE_TOO_LARGE_EXT */
- 1647, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1656, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1658, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1652, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1649, /* GL_UNSIGNED_INT_10_10_10_2 */
- 1101, /* GL_POLYGON_OFFSET_FILL */
- 1100, /* GL_POLYGON_OFFSET_FACTOR */
- 1099, /* GL_POLYGON_OFFSET_BIAS */
- 1246, /* GL_RESCALE_NORMAL */
+ 516, /* GL_FUNC_SUBTRACT */
+ 514, /* GL_FUNC_REVERSE_SUBTRACT */
+ 250, /* GL_CONVOLUTION_1D */
+ 251, /* GL_CONVOLUTION_2D */
+ 1332, /* GL_SEPARABLE_2D */
+ 254, /* GL_CONVOLUTION_BORDER_MODE */
+ 258, /* GL_CONVOLUTION_FILTER_SCALE */
+ 256, /* GL_CONVOLUTION_FILTER_BIAS */
+ 1231, /* GL_REDUCE */
+ 260, /* GL_CONVOLUTION_FORMAT */
+ 264, /* GL_CONVOLUTION_WIDTH */
+ 262, /* GL_CONVOLUTION_HEIGHT */
+ 808, /* GL_MAX_CONVOLUTION_WIDTH */
+ 806, /* GL_MAX_CONVOLUTION_HEIGHT */
+ 1146, /* GL_POST_CONVOLUTION_RED_SCALE */
+ 1142, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ 1137, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ 1133, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ 1144, /* GL_POST_CONVOLUTION_RED_BIAS */
+ 1140, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ 1135, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ 1131, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ 553, /* GL_HISTOGRAM */
+ 1193, /* GL_PROXY_HISTOGRAM */
+ 569, /* GL_HISTOGRAM_WIDTH */
+ 559, /* GL_HISTOGRAM_FORMAT */
+ 565, /* GL_HISTOGRAM_RED_SIZE */
+ 561, /* GL_HISTOGRAM_GREEN_SIZE */
+ 556, /* GL_HISTOGRAM_BLUE_SIZE */
+ 554, /* GL_HISTOGRAM_ALPHA_SIZE */
+ 563, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ 567, /* GL_HISTOGRAM_SINK */
+ 882, /* GL_MINMAX */
+ 884, /* GL_MINMAX_FORMAT */
+ 886, /* GL_MINMAX_SINK */
+ 1444, /* GL_TABLE_TOO_LARGE_EXT */
+ 1656, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 1665, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 1667, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 1661, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 1658, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1104, /* GL_POLYGON_OFFSET_FILL */
+ 1103, /* GL_POLYGON_OFFSET_FACTOR */
+ 1102, /* GL_POLYGON_OFFSET_BIAS */
+ 1251, /* GL_RESCALE_NORMAL */
36, /* GL_ALPHA4 */
38, /* GL_ALPHA8 */
32, /* GL_ALPHA12 */
34, /* GL_ALPHA16 */
- 677, /* GL_LUMINANCE4 */
- 683, /* GL_LUMINANCE8 */
- 667, /* GL_LUMINANCE12 */
- 673, /* GL_LUMINANCE16 */
- 678, /* GL_LUMINANCE4_ALPHA4 */
- 681, /* GL_LUMINANCE6_ALPHA2 */
- 684, /* GL_LUMINANCE8_ALPHA8 */
- 670, /* GL_LUMINANCE12_ALPHA4 */
- 668, /* GL_LUMINANCE12_ALPHA12 */
- 674, /* GL_LUMINANCE16_ALPHA16 */
- 591, /* GL_INTENSITY */
- 596, /* GL_INTENSITY4 */
- 598, /* GL_INTENSITY8 */
- 592, /* GL_INTENSITY12 */
- 594, /* GL_INTENSITY16 */
- 1258, /* GL_RGB2_EXT */
- 1259, /* GL_RGB4 */
- 1262, /* GL_RGB5 */
- 1266, /* GL_RGB8 */
- 1250, /* GL_RGB10 */
- 1254, /* GL_RGB12 */
- 1256, /* GL_RGB16 */
- 1273, /* GL_RGBA2 */
- 1275, /* GL_RGBA4 */
- 1263, /* GL_RGB5_A1 */
- 1279, /* GL_RGBA8 */
- 1251, /* GL_RGB10_A2 */
- 1269, /* GL_RGBA12 */
- 1271, /* GL_RGBA16 */
- 1608, /* GL_TEXTURE_RED_SIZE */
- 1580, /* GL_TEXTURE_GREEN_SIZE */
- 1519, /* GL_TEXTURE_BLUE_SIZE */
- 1508, /* GL_TEXTURE_ALPHA_SIZE */
- 1593, /* GL_TEXTURE_LUMINANCE_SIZE */
- 1584, /* GL_TEXTURE_INTENSITY_SIZE */
- 1244, /* GL_REPLACE_EXT */
- 1194, /* GL_PROXY_TEXTURE_1D */
- 1196, /* GL_PROXY_TEXTURE_2D */
- 1612, /* GL_TEXTURE_TOO_LARGE_EXT */
- 1605, /* GL_TEXTURE_PRIORITY */
- 1610, /* GL_TEXTURE_RESIDENT */
- 1511, /* GL_TEXTURE_BINDING_1D */
- 1512, /* GL_TEXTURE_BINDING_2D */
- 1513, /* GL_TEXTURE_BINDING_3D */
- 1025, /* GL_PACK_SKIP_IMAGES */
- 1021, /* GL_PACK_IMAGE_HEIGHT */
- 1641, /* GL_UNPACK_SKIP_IMAGES */
- 1638, /* GL_UNPACK_IMAGE_HEIGHT */
- 1507, /* GL_TEXTURE_3D */
- 1198, /* GL_PROXY_TEXTURE_3D */
- 1567, /* GL_TEXTURE_DEPTH */
- 1615, /* GL_TEXTURE_WRAP_R */
- 792, /* GL_MAX_3D_TEXTURE_SIZE */
- 1671, /* GL_VERTEX_ARRAY */
- 956, /* GL_NORMAL_ARRAY */
+ 679, /* GL_LUMINANCE4 */
+ 685, /* GL_LUMINANCE8 */
+ 669, /* GL_LUMINANCE12 */
+ 675, /* GL_LUMINANCE16 */
+ 680, /* GL_LUMINANCE4_ALPHA4 */
+ 683, /* GL_LUMINANCE6_ALPHA2 */
+ 686, /* GL_LUMINANCE8_ALPHA8 */
+ 672, /* GL_LUMINANCE12_ALPHA4 */
+ 670, /* GL_LUMINANCE12_ALPHA12 */
+ 676, /* GL_LUMINANCE16_ALPHA16 */
+ 593, /* GL_INTENSITY */
+ 598, /* GL_INTENSITY4 */
+ 600, /* GL_INTENSITY8 */
+ 594, /* GL_INTENSITY12 */
+ 596, /* GL_INTENSITY16 */
+ 1263, /* GL_RGB2_EXT */
+ 1264, /* GL_RGB4 */
+ 1267, /* GL_RGB5 */
+ 1271, /* GL_RGB8 */
+ 1255, /* GL_RGB10 */
+ 1259, /* GL_RGB12 */
+ 1261, /* GL_RGB16 */
+ 1278, /* GL_RGBA2 */
+ 1280, /* GL_RGBA4 */
+ 1268, /* GL_RGB5_A1 */
+ 1284, /* GL_RGBA8 */
+ 1256, /* GL_RGB10_A2 */
+ 1274, /* GL_RGBA12 */
+ 1276, /* GL_RGBA16 */
+ 1617, /* GL_TEXTURE_RED_SIZE */
+ 1589, /* GL_TEXTURE_GREEN_SIZE */
+ 1528, /* GL_TEXTURE_BLUE_SIZE */
+ 1515, /* GL_TEXTURE_ALPHA_SIZE */
+ 1602, /* GL_TEXTURE_LUMINANCE_SIZE */
+ 1593, /* GL_TEXTURE_INTENSITY_SIZE */
+ 1249, /* GL_REPLACE_EXT */
+ 1197, /* GL_PROXY_TEXTURE_1D */
+ 1200, /* GL_PROXY_TEXTURE_2D */
+ 1621, /* GL_TEXTURE_TOO_LARGE_EXT */
+ 1614, /* GL_TEXTURE_PRIORITY */
+ 1619, /* GL_TEXTURE_RESIDENT */
+ 1518, /* GL_TEXTURE_BINDING_1D */
+ 1520, /* GL_TEXTURE_BINDING_2D */
+ 1522, /* GL_TEXTURE_BINDING_3D */
+ 1028, /* GL_PACK_SKIP_IMAGES */
+ 1024, /* GL_PACK_IMAGE_HEIGHT */
+ 1650, /* GL_UNPACK_SKIP_IMAGES */
+ 1647, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1514, /* GL_TEXTURE_3D */
+ 1203, /* GL_PROXY_TEXTURE_3D */
+ 1576, /* GL_TEXTURE_DEPTH */
+ 1624, /* GL_TEXTURE_WRAP_R */
+ 794, /* GL_MAX_3D_TEXTURE_SIZE */
+ 1680, /* GL_VERTEX_ARRAY */
+ 959, /* GL_NORMAL_ARRAY */
139, /* GL_COLOR_ARRAY */
- 576, /* GL_INDEX_ARRAY */
- 1546, /* GL_TEXTURE_COORD_ARRAY */
- 414, /* GL_EDGE_FLAG_ARRAY */
- 1676, /* GL_VERTEX_ARRAY_SIZE */
- 1678, /* GL_VERTEX_ARRAY_TYPE */
- 1677, /* GL_VERTEX_ARRAY_STRIDE */
- 961, /* GL_NORMAL_ARRAY_TYPE */
- 960, /* GL_NORMAL_ARRAY_STRIDE */
+ 578, /* GL_INDEX_ARRAY */
+ 1555, /* GL_TEXTURE_COORD_ARRAY */
+ 415, /* GL_EDGE_FLAG_ARRAY */
+ 1685, /* GL_VERTEX_ARRAY_SIZE */
+ 1687, /* GL_VERTEX_ARRAY_TYPE */
+ 1686, /* GL_VERTEX_ARRAY_STRIDE */
+ 964, /* GL_NORMAL_ARRAY_TYPE */
+ 963, /* GL_NORMAL_ARRAY_STRIDE */
143, /* GL_COLOR_ARRAY_SIZE */
145, /* GL_COLOR_ARRAY_TYPE */
144, /* GL_COLOR_ARRAY_STRIDE */
- 581, /* GL_INDEX_ARRAY_TYPE */
- 580, /* GL_INDEX_ARRAY_STRIDE */
- 1550, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 1552, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 1551, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- 418, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 1675, /* GL_VERTEX_ARRAY_POINTER */
- 959, /* GL_NORMAL_ARRAY_POINTER */
+ 583, /* GL_INDEX_ARRAY_TYPE */
+ 582, /* GL_INDEX_ARRAY_STRIDE */
+ 1559, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ 1561, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ 1560, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ 419, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ 1684, /* GL_VERTEX_ARRAY_POINTER */
+ 962, /* GL_NORMAL_ARRAY_POINTER */
142, /* GL_COLOR_ARRAY_POINTER */
- 579, /* GL_INDEX_ARRAY_POINTER */
- 1549, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- 417, /* GL_EDGE_FLAG_ARRAY_POINTER */
- 935, /* GL_MULTISAMPLE */
- 1301, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- 1303, /* GL_SAMPLE_ALPHA_TO_ONE */
- 1308, /* GL_SAMPLE_COVERAGE */
- 1305, /* GL_SAMPLE_BUFFERS */
- 1296, /* GL_SAMPLES */
- 1312, /* GL_SAMPLE_COVERAGE_VALUE */
- 1310, /* GL_SAMPLE_COVERAGE_INVERT */
+ 581, /* GL_INDEX_ARRAY_POINTER */
+ 1558, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 418, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ 938, /* GL_MULTISAMPLE */
+ 1306, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ 1308, /* GL_SAMPLE_ALPHA_TO_ONE */
+ 1313, /* GL_SAMPLE_COVERAGE */
+ 1310, /* GL_SAMPLE_BUFFERS */
+ 1301, /* GL_SAMPLES */
+ 1317, /* GL_SAMPLE_COVERAGE_VALUE */
+ 1315, /* GL_SAMPLE_COVERAGE_INVERT */
170, /* GL_COLOR_MATRIX */
172, /* GL_COLOR_MATRIX_STACK_DEPTH */
- 799, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- 1126, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- 1122, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- 1117, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- 1113, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- 1124, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- 1120, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- 1115, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- 1111, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 1529, /* GL_TEXTURE_COLOR_TABLE_SGI */
- 1199, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 1531, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 802, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ 1129, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ 1125, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ 1120, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ 1116, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ 1127, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ 1123, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ 1118, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ 1114, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ 1538, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ 1204, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ 1540, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
80, /* GL_BLEND_DST_RGB */
88, /* GL_BLEND_SRC_RGB */
79, /* GL_BLEND_DST_ALPHA */
87, /* GL_BLEND_SRC_ALPHA */
176, /* GL_COLOR_TABLE */
- 1136, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- 1119, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- 1189, /* GL_PROXY_COLOR_TABLE */
- 1193, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- 1192, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1139, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ 1122, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1192, /* GL_PROXY_COLOR_TABLE */
+ 1196, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ 1195, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
200, /* GL_COLOR_TABLE_SCALE */
180, /* GL_COLOR_TABLE_BIAS */
185, /* GL_COLOR_TABLE_FORMAT */
@@ -4136,636 +4154,643 @@ static const unsigned reduced_enums[1277] =
191, /* GL_COLOR_TABLE_INTENSITY_SIZE */
71, /* GL_BGR */
72, /* GL_BGRA */
- 813, /* GL_MAX_ELEMENTS_VERTICES */
- 812, /* GL_MAX_ELEMENTS_INDICES */
- 1583, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 816, /* GL_MAX_ELEMENTS_VERTICES */
+ 815, /* GL_MAX_ELEMENTS_INDICES */
+ 1592, /* GL_TEXTURE_INDEX_SIZE_EXT */
136, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- 1083, /* GL_POINT_SIZE_MIN */
- 1079, /* GL_POINT_SIZE_MAX */
- 1073, /* GL_POINT_FADE_THRESHOLD_SIZE */
- 1069, /* GL_POINT_DISTANCE_ATTENUATION */
+ 1086, /* GL_POINT_SIZE_MIN */
+ 1082, /* GL_POINT_SIZE_MAX */
+ 1076, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ 1072, /* GL_POINT_DISTANCE_ATTENUATION */
118, /* GL_CLAMP_TO_BORDER */
121, /* GL_CLAMP_TO_EDGE */
- 1604, /* GL_TEXTURE_MIN_LOD */
- 1602, /* GL_TEXTURE_MAX_LOD */
- 1510, /* GL_TEXTURE_BASE_LEVEL */
- 1601, /* GL_TEXTURE_MAX_LEVEL */
- 570, /* GL_IGNORE_BORDER_HP */
- 245, /* GL_CONSTANT_BORDER_HP */
- 1245, /* GL_REPLICATE_BORDER_HP */
- 251, /* GL_CONVOLUTION_BORDER_COLOR */
- 984, /* GL_OCCLUSION_TEST_HP */
- 985, /* GL_OCCLUSION_TEST_RESULT_HP */
- 639, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1523, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1525, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1527, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 1528, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1526, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1524, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- 795, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- 796, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1146, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- 1148, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- 1145, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- 1147, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 1591, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 1592, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 1590, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- 516, /* GL_GENERATE_MIPMAP */
- 517, /* GL_GENERATE_MIPMAP_HINT */
- 480, /* GL_FOG_OFFSET_SGIX */
- 481, /* GL_FOG_OFFSET_VALUE_SGIX */
- 1537, /* GL_TEXTURE_COMPARE_SGIX */
- 1536, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 1587, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 1579, /* GL_TEXTURE_GEQUAL_R_SGIX */
- 322, /* GL_DEPTH_COMPONENT16 */
- 325, /* GL_DEPTH_COMPONENT24 */
- 328, /* GL_DEPTH_COMPONENT32 */
- 273, /* GL_CULL_VERTEX_EXT */
- 275, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- 274, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 1732, /* GL_WRAP_BORDER_SUN */
- 1530, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- 632, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- 1340, /* GL_SINGLE_COLOR */
- 1328, /* GL_SEPARATE_SPECULAR_COLOR */
- 1337, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- 1646, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1659, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1660, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1657, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1655, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1653, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1651, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 1599, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 1600, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 1598, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- 886, /* GL_MIRRORED_REPEAT */
- 1284, /* GL_RGB_S3TC */
- 1261, /* GL_RGB4_S3TC */
- 1283, /* GL_RGBA_S3TC */
- 1278, /* GL_RGBA4_S3TC */
- 1281, /* GL_RGBA_DXT5_S3TC */
- 1276, /* GL_RGBA4_DXT5_S3TC */
- 238, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- 233, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- 234, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- 235, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- 947, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- 946, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- 640, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- 467, /* GL_FOG_COORDINATE_SOURCE */
- 459, /* GL_FOG_COORD */
- 483, /* GL_FRAGMENT_DEPTH */
- 279, /* GL_CURRENT_FOG_COORD */
- 466, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- 465, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- 464, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- 461, /* GL_FOG_COORDINATE_ARRAY */
+ 1613, /* GL_TEXTURE_MIN_LOD */
+ 1611, /* GL_TEXTURE_MAX_LOD */
+ 1517, /* GL_TEXTURE_BASE_LEVEL */
+ 1610, /* GL_TEXTURE_MAX_LEVEL */
+ 572, /* GL_IGNORE_BORDER_HP */
+ 246, /* GL_CONSTANT_BORDER_HP */
+ 1250, /* GL_REPLICATE_BORDER_HP */
+ 252, /* GL_CONVOLUTION_BORDER_COLOR */
+ 987, /* GL_OCCLUSION_TEST_HP */
+ 988, /* GL_OCCLUSION_TEST_RESULT_HP */
+ 641, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ 1532, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ 1534, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ 1536, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ 1537, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1535, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ 1533, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ 798, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ 799, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1149, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ 1151, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ 1148, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ 1150, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ 1600, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ 1601, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ 1599, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ 518, /* GL_GENERATE_MIPMAP */
+ 519, /* GL_GENERATE_MIPMAP_HINT */
+ 481, /* GL_FOG_OFFSET_SGIX */
+ 482, /* GL_FOG_OFFSET_VALUE_SGIX */
+ 1546, /* GL_TEXTURE_COMPARE_SGIX */
+ 1545, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ 1596, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ 1588, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ 323, /* GL_DEPTH_COMPONENT16 */
+ 326, /* GL_DEPTH_COMPONENT24 */
+ 329, /* GL_DEPTH_COMPONENT32 */
+ 274, /* GL_CULL_VERTEX_EXT */
+ 276, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ 275, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ 1741, /* GL_WRAP_BORDER_SUN */
+ 1539, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ 634, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ 1345, /* GL_SINGLE_COLOR */
+ 1333, /* GL_SEPARATE_SPECULAR_COLOR */
+ 1342, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ 1655, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 1668, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 1669, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 1666, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 1664, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 1662, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 1660, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 1608, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ 1609, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ 1607, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ 889, /* GL_MIRRORED_REPEAT */
+ 1289, /* GL_RGB_S3TC */
+ 1266, /* GL_RGB4_S3TC */
+ 1288, /* GL_RGBA_S3TC */
+ 1283, /* GL_RGBA4_S3TC */
+ 1286, /* GL_RGBA_DXT5_S3TC */
+ 1281, /* GL_RGBA4_DXT5_S3TC */
+ 239, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ 234, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ 235, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ 236, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ 950, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ 949, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ 642, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ 468, /* GL_FOG_COORDINATE_SOURCE */
+ 460, /* GL_FOG_COORD */
+ 484, /* GL_FRAGMENT_DEPTH */
+ 280, /* GL_CURRENT_FOG_COORD */
+ 467, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ 466, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ 465, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ 462, /* GL_FOG_COORDINATE_ARRAY */
174, /* GL_COLOR_SUM */
- 298, /* GL_CURRENT_SECONDARY_COLOR */
- 1321, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- 1323, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- 1322, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- 1320, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- 1317, /* GL_SECONDARY_COLOR_ARRAY */
- 526, /* GL_GL_CURRENT_RASTER_SECONDARY_COLOR */
+ 299, /* GL_CURRENT_SECONDARY_COLOR */
+ 1326, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ 1328, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ 1327, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ 1325, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ 1322, /* GL_SECONDARY_COLOR_ARRAY */
+ 528, /* GL_GL_CURRENT_RASTER_SECONDARY_COLOR */
28, /* GL_ALIASED_POINT_SIZE_RANGE */
27, /* GL_ALIASED_LINE_WIDTH_RANGE */
- 1441, /* GL_TEXTURE0 */
- 1443, /* GL_TEXTURE1 */
- 1465, /* GL_TEXTURE2 */
- 1487, /* GL_TEXTURE3 */
- 1493, /* GL_TEXTURE4 */
- 1495, /* GL_TEXTURE5 */
- 1497, /* GL_TEXTURE6 */
- 1499, /* GL_TEXTURE7 */
- 1501, /* GL_TEXTURE8 */
- 1503, /* GL_TEXTURE9 */
- 1444, /* GL_TEXTURE10 */
- 1446, /* GL_TEXTURE11 */
- 1448, /* GL_TEXTURE12 */
- 1450, /* GL_TEXTURE13 */
- 1452, /* GL_TEXTURE14 */
- 1454, /* GL_TEXTURE15 */
- 1456, /* GL_TEXTURE16 */
- 1458, /* GL_TEXTURE17 */
- 1460, /* GL_TEXTURE18 */
- 1462, /* GL_TEXTURE19 */
- 1466, /* GL_TEXTURE20 */
- 1468, /* GL_TEXTURE21 */
- 1470, /* GL_TEXTURE22 */
- 1472, /* GL_TEXTURE23 */
- 1474, /* GL_TEXTURE24 */
- 1476, /* GL_TEXTURE25 */
- 1478, /* GL_TEXTURE26 */
- 1480, /* GL_TEXTURE27 */
- 1482, /* GL_TEXTURE28 */
- 1484, /* GL_TEXTURE29 */
- 1488, /* GL_TEXTURE30 */
- 1490, /* GL_TEXTURE31 */
+ 1446, /* GL_TEXTURE0 */
+ 1448, /* GL_TEXTURE1 */
+ 1470, /* GL_TEXTURE2 */
+ 1492, /* GL_TEXTURE3 */
+ 1498, /* GL_TEXTURE4 */
+ 1500, /* GL_TEXTURE5 */
+ 1502, /* GL_TEXTURE6 */
+ 1504, /* GL_TEXTURE7 */
+ 1506, /* GL_TEXTURE8 */
+ 1508, /* GL_TEXTURE9 */
+ 1449, /* GL_TEXTURE10 */
+ 1451, /* GL_TEXTURE11 */
+ 1453, /* GL_TEXTURE12 */
+ 1455, /* GL_TEXTURE13 */
+ 1457, /* GL_TEXTURE14 */
+ 1459, /* GL_TEXTURE15 */
+ 1461, /* GL_TEXTURE16 */
+ 1463, /* GL_TEXTURE17 */
+ 1465, /* GL_TEXTURE18 */
+ 1467, /* GL_TEXTURE19 */
+ 1471, /* GL_TEXTURE20 */
+ 1473, /* GL_TEXTURE21 */
+ 1475, /* GL_TEXTURE22 */
+ 1477, /* GL_TEXTURE23 */
+ 1479, /* GL_TEXTURE24 */
+ 1481, /* GL_TEXTURE25 */
+ 1483, /* GL_TEXTURE26 */
+ 1485, /* GL_TEXTURE27 */
+ 1487, /* GL_TEXTURE28 */
+ 1489, /* GL_TEXTURE29 */
+ 1493, /* GL_TEXTURE30 */
+ 1495, /* GL_TEXTURE31 */
18, /* GL_ACTIVE_TEXTURE */
124, /* GL_CLIENT_ACTIVE_TEXTURE */
- 864, /* GL_MAX_TEXTURE_UNITS */
- 1625, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1628, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1630, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1622, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1429, /* GL_SUBTRACT */
- 853, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- 221, /* GL_COMPRESSED_ALPHA */
- 225, /* GL_COMPRESSED_LUMINANCE */
- 226, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- 223, /* GL_COMPRESSED_INTENSITY */
- 229, /* GL_COMPRESSED_RGB */
- 230, /* GL_COMPRESSED_RGBA */
- 1544, /* GL_TEXTURE_COMPRESSION_HINT */
- 1606, /* GL_TEXTURE_RECTANGLE_ARB */
- 1516, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- 1202, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- 851, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- 334, /* GL_DEPTH_STENCIL_NV */
- 1650, /* GL_UNSIGNED_INT_24_8_NV */
- 860, /* GL_MAX_TEXTURE_LOD_BIAS */
- 1597, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- 861, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 1573, /* GL_TEXTURE_FILTER_CONTROL */
- 1588, /* GL_TEXTURE_LOD_BIAS */
+ 867, /* GL_MAX_TEXTURE_UNITS */
+ 1634, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 1637, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 1639, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 1631, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1434, /* GL_SUBTRACT */
+ 856, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ 222, /* GL_COMPRESSED_ALPHA */
+ 226, /* GL_COMPRESSED_LUMINANCE */
+ 227, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ 224, /* GL_COMPRESSED_INTENSITY */
+ 230, /* GL_COMPRESSED_RGB */
+ 231, /* GL_COMPRESSED_RGBA */
+ 1553, /* GL_TEXTURE_COMPRESSION_HINT */
+ 1615, /* GL_TEXTURE_RECTANGLE_ARB */
+ 1525, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ 1207, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ 854, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ 335, /* GL_DEPTH_STENCIL_NV */
+ 1659, /* GL_UNSIGNED_INT_24_8_NV */
+ 863, /* GL_MAX_TEXTURE_LOD_BIAS */
+ 1606, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ 864, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ 1582, /* GL_TEXTURE_FILTER_CONTROL */
+ 1597, /* GL_TEXTURE_LOD_BIAS */
207, /* GL_COMBINE4 */
- 854, /* GL_MAX_SHININESS_NV */
- 855, /* GL_MAX_SPOT_EXPONENT_NV */
- 574, /* GL_INCR_WRAP */
- 309, /* GL_DECR_WRAP */
- 906, /* GL_MODELVIEW1_ARB */
- 962, /* GL_NORMAL_MAP */
- 1231, /* GL_REFLECTION_MAP */
- 1553, /* GL_TEXTURE_CUBE_MAP */
- 1514, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 1561, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 1555, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 1563, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 1557, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 1565, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 1559, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- 1200, /* GL_PROXY_TEXTURE_CUBE_MAP */
- 807, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- 941, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- 475, /* GL_FOG_DISTANCE_MODE_NV */
- 434, /* GL_EYE_RADIAL_NV */
- 433, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ 857, /* GL_MAX_SHININESS_NV */
+ 858, /* GL_MAX_SPOT_EXPONENT_NV */
+ 576, /* GL_INCR_WRAP */
+ 310, /* GL_DECR_WRAP */
+ 909, /* GL_MODELVIEW1_ARB */
+ 965, /* GL_NORMAL_MAP */
+ 1236, /* GL_REFLECTION_MAP */
+ 1562, /* GL_TEXTURE_CUBE_MAP */
+ 1523, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ 1570, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ 1564, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ 1572, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ 1566, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ 1574, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ 1568, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ 1205, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ 810, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ 944, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ 476, /* GL_FOG_DISTANCE_MODE_NV */
+ 435, /* GL_EYE_RADIAL_NV */
+ 434, /* GL_EYE_PLANE_ABSOLUTE_NV */
206, /* GL_COMBINE */
213, /* GL_COMBINE_RGB */
208, /* GL_COMBINE_ALPHA */
- 1285, /* GL_RGB_SCALE */
+ 1290, /* GL_RGB_SCALE */
24, /* GL_ADD_SIGNED */
- 601, /* GL_INTERPOLATE */
- 240, /* GL_CONSTANT */
- 1152, /* GL_PRIMARY_COLOR */
- 1149, /* GL_PREVIOUS */
- 1351, /* GL_SOURCE0_RGB */
- 1357, /* GL_SOURCE1_RGB */
- 1363, /* GL_SOURCE2_RGB */
- 1367, /* GL_SOURCE3_RGB_NV */
- 1348, /* GL_SOURCE0_ALPHA */
- 1354, /* GL_SOURCE1_ALPHA */
- 1360, /* GL_SOURCE2_ALPHA */
- 1366, /* GL_SOURCE3_ALPHA_NV */
- 998, /* GL_OPERAND0_RGB */
- 1004, /* GL_OPERAND1_RGB */
- 1010, /* GL_OPERAND2_RGB */
- 1014, /* GL_OPERAND3_RGB_NV */
- 995, /* GL_OPERAND0_ALPHA */
- 1001, /* GL_OPERAND1_ALPHA */
- 1007, /* GL_OPERAND2_ALPHA */
- 1013, /* GL_OPERAND3_ALPHA_NV */
- 1672, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- 1736, /* GL_YCBCR_422_APPLE */
- 1661, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1663, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- 1342, /* GL_SLICE_ACCUM_SUN */
- 1207, /* GL_QUAD_MESH_SUN */
- 1634, /* GL_TRIANGLE_MESH_SUN */
- 1710, /* GL_VERTEX_PROGRAM_ARB */
- 1721, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1697, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1703, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1705, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1707, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- 300, /* GL_CURRENT_VERTEX_ATTRIB */
- 1165, /* GL_PROGRAM_LENGTH_ARB */
- 1179, /* GL_PROGRAM_STRING_ARB */
- 928, /* GL_MODELVIEW_PROJECTION_NV */
- 569, /* GL_IDENTITY_NV */
- 614, /* GL_INVERSE_NV */
- 1627, /* GL_TRANSPOSE_NV */
- 615, /* GL_INVERSE_TRANSPOSE_NV */
- 837, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- 836, /* GL_MAX_PROGRAM_MATRICES_ARB */
- 745, /* GL_MATRIX0_NV */
- 757, /* GL_MATRIX1_NV */
- 769, /* GL_MATRIX2_NV */
- 773, /* GL_MATRIX3_NV */
- 775, /* GL_MATRIX4_NV */
- 777, /* GL_MATRIX5_NV */
- 779, /* GL_MATRIX6_NV */
- 781, /* GL_MATRIX7_NV */
- 285, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- 282, /* GL_CURRENT_MATRIX_ARB */
- 1713, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 1716, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- 1177, /* GL_PROGRAM_PARAMETER_NV */
- 1701, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- 1181, /* GL_PROGRAM_TARGET_NV */
- 1178, /* GL_PROGRAM_RESIDENT_NV */
- 1619, /* GL_TRACK_MATRIX_NV */
- 1620, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 1711, /* GL_VERTEX_PROGRAM_BINDING_NV */
- 1159, /* GL_PROGRAM_ERROR_POSITION_ARB */
- 319, /* GL_DEPTH_CLAMP_NV */
- 1679, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1686, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1687, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1688, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1689, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1690, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1691, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1692, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1693, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1694, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1680, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1681, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1682, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1683, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1684, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1685, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- 699, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- 706, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- 707, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- 708, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- 709, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- 710, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- 711, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- 712, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- 713, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- 714, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- 700, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- 701, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- 702, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- 703, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- 704, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- 705, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- 726, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- 733, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- 734, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- 735, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- 736, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- 737, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- 738, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- 1158, /* GL_PROGRAM_BINDING_ARB */
- 740, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- 741, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- 727, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- 728, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- 729, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- 730, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- 731, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- 732, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 1542, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 1539, /* GL_TEXTURE_COMPRESSED */
- 967, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- 239, /* GL_COMPRESSED_TEXTURE_FORMATS */
- 876, /* GL_MAX_VERTEX_UNITS_ARB */
+ 603, /* GL_INTERPOLATE */
+ 241, /* GL_CONSTANT */
+ 1155, /* GL_PRIMARY_COLOR */
+ 1152, /* GL_PREVIOUS */
+ 1356, /* GL_SOURCE0_RGB */
+ 1362, /* GL_SOURCE1_RGB */
+ 1368, /* GL_SOURCE2_RGB */
+ 1372, /* GL_SOURCE3_RGB_NV */
+ 1353, /* GL_SOURCE0_ALPHA */
+ 1359, /* GL_SOURCE1_ALPHA */
+ 1365, /* GL_SOURCE2_ALPHA */
+ 1371, /* GL_SOURCE3_ALPHA_NV */
+ 1001, /* GL_OPERAND0_RGB */
+ 1007, /* GL_OPERAND1_RGB */
+ 1013, /* GL_OPERAND2_RGB */
+ 1017, /* GL_OPERAND3_RGB_NV */
+ 998, /* GL_OPERAND0_ALPHA */
+ 1004, /* GL_OPERAND1_ALPHA */
+ 1010, /* GL_OPERAND2_ALPHA */
+ 1016, /* GL_OPERAND3_ALPHA_NV */
+ 1681, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ 1745, /* GL_YCBCR_422_APPLE */
+ 1670, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 1672, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 1347, /* GL_SLICE_ACCUM_SUN */
+ 1212, /* GL_QUAD_MESH_SUN */
+ 1643, /* GL_TRIANGLE_MESH_SUN */
+ 1719, /* GL_VERTEX_PROGRAM_ARB */
+ 1730, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 1706, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 1712, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 1714, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 1716, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 301, /* GL_CURRENT_VERTEX_ATTRIB */
+ 1168, /* GL_PROGRAM_LENGTH_ARB */
+ 1182, /* GL_PROGRAM_STRING_ARB */
+ 931, /* GL_MODELVIEW_PROJECTION_NV */
+ 571, /* GL_IDENTITY_NV */
+ 616, /* GL_INVERSE_NV */
+ 1636, /* GL_TRANSPOSE_NV */
+ 617, /* GL_INVERSE_TRANSPOSE_NV */
+ 840, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ 839, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ 747, /* GL_MATRIX0_NV */
+ 759, /* GL_MATRIX1_NV */
+ 771, /* GL_MATRIX2_NV */
+ 775, /* GL_MATRIX3_NV */
+ 777, /* GL_MATRIX4_NV */
+ 779, /* GL_MATRIX5_NV */
+ 781, /* GL_MATRIX6_NV */
+ 783, /* GL_MATRIX7_NV */
+ 286, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ 283, /* GL_CURRENT_MATRIX_ARB */
+ 1722, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ 1725, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1180, /* GL_PROGRAM_PARAMETER_NV */
+ 1710, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1184, /* GL_PROGRAM_TARGET_NV */
+ 1181, /* GL_PROGRAM_RESIDENT_NV */
+ 1628, /* GL_TRACK_MATRIX_NV */
+ 1629, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 1720, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1162, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ 320, /* GL_DEPTH_CLAMP_NV */
+ 1688, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 1695, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 1696, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 1697, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 1698, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 1699, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 1700, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 1701, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 1702, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 1703, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 1689, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 1690, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 1691, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 1692, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 1693, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 1694, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 701, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ 708, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ 709, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ 710, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ 711, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ 712, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ 713, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ 714, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ 715, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ 716, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ 702, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ 703, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ 704, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ 705, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ 706, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ 707, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ 728, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ 735, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ 736, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ 737, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ 738, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ 739, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ 740, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ 1161, /* GL_PROGRAM_BINDING_ARB */
+ 742, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ 743, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ 729, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ 730, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ 731, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ 732, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ 733, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ 734, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ 1551, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ 1548, /* GL_TEXTURE_COMPRESSED */
+ 970, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ 240, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ 879, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 1731, /* GL_WEIGHT_SUM_UNITY_ARB */
- 1709, /* GL_VERTEX_BLEND_ARB */
- 302, /* GL_CURRENT_WEIGHT_ARB */
- 1730, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 1729, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 1728, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 1727, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 1724, /* GL_WEIGHT_ARRAY_ARB */
- 345, /* GL_DOT3_RGB */
- 346, /* GL_DOT3_RGBA */
- 237, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- 232, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- 936, /* GL_MULTISAMPLE_3DFX */
- 1306, /* GL_SAMPLE_BUFFERS_3DFX */
- 1297, /* GL_SAMPLES_3DFX */
- 917, /* GL_MODELVIEW2_ARB */
- 920, /* GL_MODELVIEW3_ARB */
- 921, /* GL_MODELVIEW4_ARB */
- 922, /* GL_MODELVIEW5_ARB */
- 923, /* GL_MODELVIEW6_ARB */
- 924, /* GL_MODELVIEW7_ARB */
- 925, /* GL_MODELVIEW8_ARB */
- 926, /* GL_MODELVIEW9_ARB */
- 896, /* GL_MODELVIEW10_ARB */
- 897, /* GL_MODELVIEW11_ARB */
- 898, /* GL_MODELVIEW12_ARB */
- 899, /* GL_MODELVIEW13_ARB */
- 900, /* GL_MODELVIEW14_ARB */
- 901, /* GL_MODELVIEW15_ARB */
- 902, /* GL_MODELVIEW16_ARB */
- 903, /* GL_MODELVIEW17_ARB */
- 904, /* GL_MODELVIEW18_ARB */
- 905, /* GL_MODELVIEW19_ARB */
- 907, /* GL_MODELVIEW20_ARB */
- 908, /* GL_MODELVIEW21_ARB */
- 909, /* GL_MODELVIEW22_ARB */
- 910, /* GL_MODELVIEW23_ARB */
- 911, /* GL_MODELVIEW24_ARB */
- 912, /* GL_MODELVIEW25_ARB */
- 913, /* GL_MODELVIEW26_ARB */
- 914, /* GL_MODELVIEW27_ARB */
- 915, /* GL_MODELVIEW28_ARB */
- 916, /* GL_MODELVIEW29_ARB */
- 918, /* GL_MODELVIEW30_ARB */
- 919, /* GL_MODELVIEW31_ARB */
- 350, /* GL_DOT3_RGB_EXT */
- 348, /* GL_DOT3_RGBA_EXT */
- 890, /* GL_MIRROR_CLAMP_EXT */
- 893, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- 931, /* GL_MODULATE_ADD_ATI */
- 932, /* GL_MODULATE_SIGNED_ADD_ATI */
- 933, /* GL_MODULATE_SUBTRACT_ATI */
- 1737, /* GL_YCBCR_MESA */
- 1022, /* GL_PACK_INVERT_MESA */
- 305, /* GL_DEBUG_OBJECT_MESA */
- 306, /* GL_DEBUG_PRINT_MESA */
- 304, /* GL_DEBUG_ASSERT_MESA */
+ 1740, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 1718, /* GL_VERTEX_BLEND_ARB */
+ 303, /* GL_CURRENT_WEIGHT_ARB */
+ 1739, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 1738, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 1737, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 1736, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 1733, /* GL_WEIGHT_ARRAY_ARB */
+ 346, /* GL_DOT3_RGB */
+ 347, /* GL_DOT3_RGBA */
+ 238, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ 233, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ 939, /* GL_MULTISAMPLE_3DFX */
+ 1311, /* GL_SAMPLE_BUFFERS_3DFX */
+ 1302, /* GL_SAMPLES_3DFX */
+ 920, /* GL_MODELVIEW2_ARB */
+ 923, /* GL_MODELVIEW3_ARB */
+ 924, /* GL_MODELVIEW4_ARB */
+ 925, /* GL_MODELVIEW5_ARB */
+ 926, /* GL_MODELVIEW6_ARB */
+ 927, /* GL_MODELVIEW7_ARB */
+ 928, /* GL_MODELVIEW8_ARB */
+ 929, /* GL_MODELVIEW9_ARB */
+ 899, /* GL_MODELVIEW10_ARB */
+ 900, /* GL_MODELVIEW11_ARB */
+ 901, /* GL_MODELVIEW12_ARB */
+ 902, /* GL_MODELVIEW13_ARB */
+ 903, /* GL_MODELVIEW14_ARB */
+ 904, /* GL_MODELVIEW15_ARB */
+ 905, /* GL_MODELVIEW16_ARB */
+ 906, /* GL_MODELVIEW17_ARB */
+ 907, /* GL_MODELVIEW18_ARB */
+ 908, /* GL_MODELVIEW19_ARB */
+ 910, /* GL_MODELVIEW20_ARB */
+ 911, /* GL_MODELVIEW21_ARB */
+ 912, /* GL_MODELVIEW22_ARB */
+ 913, /* GL_MODELVIEW23_ARB */
+ 914, /* GL_MODELVIEW24_ARB */
+ 915, /* GL_MODELVIEW25_ARB */
+ 916, /* GL_MODELVIEW26_ARB */
+ 917, /* GL_MODELVIEW27_ARB */
+ 918, /* GL_MODELVIEW28_ARB */
+ 919, /* GL_MODELVIEW29_ARB */
+ 921, /* GL_MODELVIEW30_ARB */
+ 922, /* GL_MODELVIEW31_ARB */
+ 351, /* GL_DOT3_RGB_EXT */
+ 349, /* GL_DOT3_RGBA_EXT */
+ 893, /* GL_MIRROR_CLAMP_EXT */
+ 896, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ 934, /* GL_MODULATE_ADD_ATI */
+ 935, /* GL_MODULATE_SIGNED_ADD_ATI */
+ 936, /* GL_MODULATE_SUBTRACT_ATI */
+ 1746, /* GL_YCBCR_MESA */
+ 1025, /* GL_PACK_INVERT_MESA */
+ 306, /* GL_DEBUG_OBJECT_MESA */
+ 307, /* GL_DEBUG_PRINT_MESA */
+ 305, /* GL_DEBUG_ASSERT_MESA */
107, /* GL_BUFFER_SIZE */
109, /* GL_BUFFER_USAGE */
- 1394, /* GL_STENCIL_BACK_FUNC */
- 1392, /* GL_STENCIL_BACK_FAIL */
- 1396, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1398, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- 484, /* GL_FRAGMENT_PROGRAM_ARB */
- 1156, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1184, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1183, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1168, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1174, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1173, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 826, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 849, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 848, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- 839, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 845, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 844, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 809, /* GL_MAX_DRAW_BUFFERS */
- 354, /* GL_DRAW_BUFFER0 */
- 357, /* GL_DRAW_BUFFER1 */
- 378, /* GL_DRAW_BUFFER2 */
- 381, /* GL_DRAW_BUFFER3 */
- 384, /* GL_DRAW_BUFFER4 */
- 387, /* GL_DRAW_BUFFER5 */
- 390, /* GL_DRAW_BUFFER6 */
- 393, /* GL_DRAW_BUFFER7 */
- 396, /* GL_DRAW_BUFFER8 */
- 399, /* GL_DRAW_BUFFER9 */
- 358, /* GL_DRAW_BUFFER10 */
- 361, /* GL_DRAW_BUFFER11 */
- 364, /* GL_DRAW_BUFFER12 */
- 367, /* GL_DRAW_BUFFER13 */
- 370, /* GL_DRAW_BUFFER14 */
- 373, /* GL_DRAW_BUFFER15 */
+ 1399, /* GL_STENCIL_BACK_FUNC */
+ 1397, /* GL_STENCIL_BACK_FAIL */
+ 1401, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ 1403, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 485, /* GL_FRAGMENT_PROGRAM_ARB */
+ 1159, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 1187, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 1186, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 1171, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 1177, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 1176, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 829, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 852, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 851, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 842, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 848, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 847, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 812, /* GL_MAX_DRAW_BUFFERS */
+ 355, /* GL_DRAW_BUFFER0 */
+ 358, /* GL_DRAW_BUFFER1 */
+ 379, /* GL_DRAW_BUFFER2 */
+ 382, /* GL_DRAW_BUFFER3 */
+ 385, /* GL_DRAW_BUFFER4 */
+ 388, /* GL_DRAW_BUFFER5 */
+ 391, /* GL_DRAW_BUFFER6 */
+ 394, /* GL_DRAW_BUFFER7 */
+ 397, /* GL_DRAW_BUFFER8 */
+ 400, /* GL_DRAW_BUFFER9 */
+ 359, /* GL_DRAW_BUFFER10 */
+ 362, /* GL_DRAW_BUFFER11 */
+ 365, /* GL_DRAW_BUFFER12 */
+ 368, /* GL_DRAW_BUFFER13 */
+ 371, /* GL_DRAW_BUFFER14 */
+ 374, /* GL_DRAW_BUFFER15 */
82, /* GL_BLEND_EQUATION_ALPHA */
- 790, /* GL_MATRIX_PALETTE_ARB */
- 820, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- 823, /* GL_MAX_PALETTE_MATRICES_ARB */
- 288, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- 784, /* GL_MATRIX_INDEX_ARRAY_ARB */
- 283, /* GL_CURRENT_MATRIX_INDEX_ARB */
- 786, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- 788, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- 787, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- 785, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 1568, /* GL_TEXTURE_DEPTH_SIZE */
- 338, /* GL_DEPTH_TEXTURE_MODE */
- 1534, /* GL_TEXTURE_COMPARE_MODE */
- 1532, /* GL_TEXTURE_COMPARE_FUNC */
- 216, /* GL_COMPARE_R_TO_TEXTURE */
- 1090, /* GL_POINT_SPRITE */
- 265, /* GL_COORD_REPLACE */
- 1094, /* GL_POINT_SPRITE_R_MODE_NV */
- 1209, /* GL_QUERY_COUNTER_BITS */
- 290, /* GL_CURRENT_QUERY */
- 1211, /* GL_QUERY_RESULT */
- 1213, /* GL_QUERY_RESULT_AVAILABLE */
- 870, /* GL_MAX_VERTEX_ATTRIBS */
- 1699, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- 336, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- 335, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- 856, /* GL_MAX_TEXTURE_COORDS */
- 858, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- 1161, /* GL_PROGRAM_ERROR_STRING_ARB */
- 1163, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- 1162, /* GL_PROGRAM_FORMAT_ARB */
- 1613, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- 317, /* GL_DEPTH_BOUNDS_TEST_EXT */
- 316, /* GL_DEPTH_BOUNDS_EXT */
+ 792, /* GL_MATRIX_PALETTE_ARB */
+ 823, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ 826, /* GL_MAX_PALETTE_MATRICES_ARB */
+ 289, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ 786, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ 284, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ 788, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ 790, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ 789, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ 787, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ 1577, /* GL_TEXTURE_DEPTH_SIZE */
+ 339, /* GL_DEPTH_TEXTURE_MODE */
+ 1543, /* GL_TEXTURE_COMPARE_MODE */
+ 1541, /* GL_TEXTURE_COMPARE_FUNC */
+ 217, /* GL_COMPARE_R_TO_TEXTURE */
+ 1093, /* GL_POINT_SPRITE */
+ 266, /* GL_COORD_REPLACE */
+ 1097, /* GL_POINT_SPRITE_R_MODE_NV */
+ 1214, /* GL_QUERY_COUNTER_BITS */
+ 291, /* GL_CURRENT_QUERY */
+ 1216, /* GL_QUERY_RESULT */
+ 1218, /* GL_QUERY_RESULT_AVAILABLE */
+ 873, /* GL_MAX_VERTEX_ATTRIBS */
+ 1708, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 337, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ 336, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ 859, /* GL_MAX_TEXTURE_COORDS */
+ 861, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ 1164, /* GL_PROGRAM_ERROR_STRING_ARB */
+ 1166, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ 1165, /* GL_PROGRAM_FORMAT_ARB */
+ 1622, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ 318, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ 317, /* GL_DEPTH_BOUNDS_EXT */
52, /* GL_ARRAY_BUFFER */
- 419, /* GL_ELEMENT_ARRAY_BUFFER */
+ 420, /* GL_ELEMENT_ARRAY_BUFFER */
54, /* GL_ARRAY_BUFFER_BINDING */
- 421, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 1673, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- 957, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ 422, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ 1682, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 960, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
140, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- 577, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 1547, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- 415, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- 1318, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- 462, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 1725, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1695, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- 1164, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- 832, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- 1170, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 841, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1182, /* GL_PROGRAM_TEMPORARIES_ARB */
- 847, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- 1172, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 843, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1176, /* GL_PROGRAM_PARAMETERS_ARB */
- 846, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- 1171, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- 842, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1157, /* GL_PROGRAM_ATTRIBS_ARB */
- 827, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- 1169, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- 840, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1155, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- 825, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1167, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 838, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 833, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- 829, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- 1185, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1624, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- 1221, /* GL_READ_ONLY */
- 1733, /* GL_WRITE_ONLY */
- 1223, /* GL_READ_WRITE */
+ 579, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ 1556, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 416, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ 1323, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ 463, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ 1734, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 1704, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1167, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ 835, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ 1173, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 844, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 1185, /* GL_PROGRAM_TEMPORARIES_ARB */
+ 850, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ 1175, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 846, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 1179, /* GL_PROGRAM_PARAMETERS_ARB */
+ 849, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ 1174, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 845, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 1160, /* GL_PROGRAM_ATTRIBS_ARB */
+ 830, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ 1172, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 843, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 1158, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 828, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 1170, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 841, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 836, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ 832, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ 1188, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ 1633, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1226, /* GL_READ_ONLY */
+ 1742, /* GL_WRITE_ONLY */
+ 1228, /* GL_READ_WRITE */
101, /* GL_BUFFER_ACCESS */
103, /* GL_BUFFER_MAPPED */
105, /* GL_BUFFER_MAP_POINTER */
- 1618, /* GL_TIME_ELAPSED_EXT */
- 744, /* GL_MATRIX0_ARB */
- 756, /* GL_MATRIX1_ARB */
- 768, /* GL_MATRIX2_ARB */
- 772, /* GL_MATRIX3_ARB */
- 774, /* GL_MATRIX4_ARB */
- 776, /* GL_MATRIX5_ARB */
- 778, /* GL_MATRIX6_ARB */
- 780, /* GL_MATRIX7_ARB */
- 782, /* GL_MATRIX8_ARB */
- 783, /* GL_MATRIX9_ARB */
- 746, /* GL_MATRIX10_ARB */
- 747, /* GL_MATRIX11_ARB */
- 748, /* GL_MATRIX12_ARB */
- 749, /* GL_MATRIX13_ARB */
- 750, /* GL_MATRIX14_ARB */
- 751, /* GL_MATRIX15_ARB */
- 752, /* GL_MATRIX16_ARB */
- 753, /* GL_MATRIX17_ARB */
- 754, /* GL_MATRIX18_ARB */
- 755, /* GL_MATRIX19_ARB */
- 758, /* GL_MATRIX20_ARB */
- 759, /* GL_MATRIX21_ARB */
- 760, /* GL_MATRIX22_ARB */
- 761, /* GL_MATRIX23_ARB */
- 762, /* GL_MATRIX24_ARB */
- 763, /* GL_MATRIX25_ARB */
- 764, /* GL_MATRIX26_ARB */
- 765, /* GL_MATRIX27_ARB */
- 766, /* GL_MATRIX28_ARB */
- 767, /* GL_MATRIX29_ARB */
- 770, /* GL_MATRIX30_ARB */
- 771, /* GL_MATRIX31_ARB */
- 1424, /* GL_STREAM_DRAW */
- 1426, /* GL_STREAM_READ */
- 1422, /* GL_STREAM_COPY */
- 1386, /* GL_STATIC_DRAW */
- 1388, /* GL_STATIC_READ */
- 1384, /* GL_STATIC_COPY */
- 409, /* GL_DYNAMIC_DRAW */
- 411, /* GL_DYNAMIC_READ */
- 407, /* GL_DYNAMIC_COPY */
- 533, /* GL_GL_PIXEL_PACK_BUFFER */
- 535, /* GL_GL_PIXEL_UNPACK_BUFFER */
- 534, /* GL_GL_PIXEL_PACK_BUFFER_BINDING */
- 536, /* GL_GL_PIXEL_UNPACK_BUFFER_BINDING */
- 830, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- 828, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- 831, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- 835, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- 834, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- 1418, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 1627, /* GL_TIME_ELAPSED_EXT */
+ 746, /* GL_MATRIX0_ARB */
+ 758, /* GL_MATRIX1_ARB */
+ 770, /* GL_MATRIX2_ARB */
+ 774, /* GL_MATRIX3_ARB */
+ 776, /* GL_MATRIX4_ARB */
+ 778, /* GL_MATRIX5_ARB */
+ 780, /* GL_MATRIX6_ARB */
+ 782, /* GL_MATRIX7_ARB */
+ 784, /* GL_MATRIX8_ARB */
+ 785, /* GL_MATRIX9_ARB */
+ 748, /* GL_MATRIX10_ARB */
+ 749, /* GL_MATRIX11_ARB */
+ 750, /* GL_MATRIX12_ARB */
+ 751, /* GL_MATRIX13_ARB */
+ 752, /* GL_MATRIX14_ARB */
+ 753, /* GL_MATRIX15_ARB */
+ 754, /* GL_MATRIX16_ARB */
+ 755, /* GL_MATRIX17_ARB */
+ 756, /* GL_MATRIX18_ARB */
+ 757, /* GL_MATRIX19_ARB */
+ 760, /* GL_MATRIX20_ARB */
+ 761, /* GL_MATRIX21_ARB */
+ 762, /* GL_MATRIX22_ARB */
+ 763, /* GL_MATRIX23_ARB */
+ 764, /* GL_MATRIX24_ARB */
+ 765, /* GL_MATRIX25_ARB */
+ 766, /* GL_MATRIX26_ARB */
+ 767, /* GL_MATRIX27_ARB */
+ 768, /* GL_MATRIX28_ARB */
+ 769, /* GL_MATRIX29_ARB */
+ 772, /* GL_MATRIX30_ARB */
+ 773, /* GL_MATRIX31_ARB */
+ 1429, /* GL_STREAM_DRAW */
+ 1431, /* GL_STREAM_READ */
+ 1427, /* GL_STREAM_COPY */
+ 1391, /* GL_STATIC_DRAW */
+ 1393, /* GL_STATIC_READ */
+ 1389, /* GL_STATIC_COPY */
+ 410, /* GL_DYNAMIC_DRAW */
+ 412, /* GL_DYNAMIC_READ */
+ 408, /* GL_DYNAMIC_COPY */
+ 535, /* GL_GL_PIXEL_PACK_BUFFER */
+ 537, /* GL_GL_PIXEL_UNPACK_BUFFER */
+ 536, /* GL_GL_PIXEL_PACK_BUFFER_BINDING */
+ 538, /* GL_GL_PIXEL_UNPACK_BUFFER_BINDING */
+ 833, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
+ 831, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ 834, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ 838, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ 837, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ 795, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ 1423, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
17, /* GL_ACTIVE_STENCIL_FACE_EXT */
- 891, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- 1299, /* GL_SAMPLES_PASSED */
- 485, /* GL_FRAGMENT_SHADER */
- 1719, /* GL_VERTEX_SHADER */
- 1175, /* GL_PROGRAM_OBJECT_ARB */
- 1331, /* GL_SHADER_OBJECT_ARB */
- 816, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- 874, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- 868, /* GL_MAX_VARYING_FLOATS */
- 872, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- 801, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- 982, /* GL_OBJECT_TYPE_ARB */
- 1333, /* GL_SHADER_TYPE */
- 450, /* GL_FLOAT_VEC2 */
- 452, /* GL_FLOAT_VEC3 */
- 454, /* GL_FLOAT_VEC4 */
- 604, /* GL_INT_VEC2 */
- 606, /* GL_INT_VEC3 */
- 608, /* GL_INT_VEC4 */
+ 894, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ 1304, /* GL_SAMPLES_PASSED */
+ 486, /* GL_FRAGMENT_SHADER */
+ 1728, /* GL_VERTEX_SHADER */
+ 1178, /* GL_PROGRAM_OBJECT_ARB */
+ 1336, /* GL_SHADER_OBJECT_ARB */
+ 819, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ 877, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ 871, /* GL_MAX_VARYING_FLOATS */
+ 875, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ 804, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ 985, /* GL_OBJECT_TYPE_ARB */
+ 1338, /* GL_SHADER_TYPE */
+ 451, /* GL_FLOAT_VEC2 */
+ 453, /* GL_FLOAT_VEC3 */
+ 455, /* GL_FLOAT_VEC4 */
+ 606, /* GL_INT_VEC2 */
+ 608, /* GL_INT_VEC3 */
+ 610, /* GL_INT_VEC4 */
93, /* GL_BOOL */
95, /* GL_BOOL_VEC2 */
97, /* GL_BOOL_VEC3 */
99, /* GL_BOOL_VEC4 */
- 444, /* GL_FLOAT_MAT2 */
- 446, /* GL_FLOAT_MAT3 */
- 448, /* GL_FLOAT_MAT4 */
- 1290, /* GL_SAMPLER_1D */
- 1292, /* GL_SAMPLER_2D */
- 1294, /* GL_SAMPLER_3D */
- 1295, /* GL_SAMPLER_CUBE */
- 1291, /* GL_SAMPLER_1D_SHADOW */
- 1293, /* GL_SAMPLER_2D_SHADOW */
- 527, /* GL_GL_FLOAT_MAT2x3 */
- 528, /* GL_GL_FLOAT_MAT2x4 */
- 529, /* GL_GL_FLOAT_MAT3x2 */
- 530, /* GL_GL_FLOAT_MAT3x4 */
- 531, /* GL_GL_FLOAT_MAT4x2 */
- 532, /* GL_GL_FLOAT_MAT4x3 */
- 311, /* GL_DELETE_STATUS */
- 220, /* GL_COMPILE_STATUS */
- 657, /* GL_LINK_STATUS */
- 1668, /* GL_VALIDATE_STATUS */
- 589, /* GL_INFO_LOG_LENGTH */
+ 445, /* GL_FLOAT_MAT2 */
+ 447, /* GL_FLOAT_MAT3 */
+ 449, /* GL_FLOAT_MAT4 */
+ 1295, /* GL_SAMPLER_1D */
+ 1297, /* GL_SAMPLER_2D */
+ 1299, /* GL_SAMPLER_3D */
+ 1300, /* GL_SAMPLER_CUBE */
+ 1296, /* GL_SAMPLER_1D_SHADOW */
+ 1298, /* GL_SAMPLER_2D_SHADOW */
+ 529, /* GL_GL_FLOAT_MAT2x3 */
+ 530, /* GL_GL_FLOAT_MAT2x4 */
+ 531, /* GL_GL_FLOAT_MAT3x2 */
+ 532, /* GL_GL_FLOAT_MAT3x4 */
+ 533, /* GL_GL_FLOAT_MAT4x2 */
+ 534, /* GL_GL_FLOAT_MAT4x3 */
+ 312, /* GL_DELETE_STATUS */
+ 221, /* GL_COMPILE_STATUS */
+ 659, /* GL_LINK_STATUS */
+ 1677, /* GL_VALIDATE_STATUS */
+ 591, /* GL_INFO_LOG_LENGTH */
56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
21, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */
- 1332, /* GL_SHADER_SOURCE_LENGTH */
+ 1337, /* GL_SHADER_SOURCE_LENGTH */
15, /* GL_ACTIVE_ATTRIBUTES */
16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */
- 487, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- 1335, /* GL_SHADING_LANGUAGE_VERSION */
- 289, /* GL_CURRENT_PROGRAM */
- 1031, /* GL_PALETTE4_RGB8_OES */
- 1033, /* GL_PALETTE4_RGBA8_OES */
- 1029, /* GL_PALETTE4_R5_G6_B5_OES */
- 1032, /* GL_PALETTE4_RGBA4_OES */
- 1030, /* GL_PALETTE4_RGB5_A1_OES */
- 1036, /* GL_PALETTE8_RGB8_OES */
- 1038, /* GL_PALETTE8_RGBA8_OES */
- 1034, /* GL_PALETTE8_R5_G6_B5_OES */
- 1037, /* GL_PALETTE8_RGBA4_OES */
- 1035, /* GL_PALETTE8_RGB5_A1_OES */
- 572, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- 571, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 541, /* GL_GL_SRGB */
- 542, /* GL_GL_SRGB8 */
- 544, /* GL_GL_SRGB_ALPHA */
- 543, /* GL_GL_SRGB8_ALPHA8 */
- 540, /* GL_GL_SLUMINANCE_ALPHA */
- 539, /* GL_GL_SLUMINANCE8_ALPHA8 */
- 537, /* GL_GL_SLUMINANCE */
- 538, /* GL_GL_SLUMINANCE8 */
- 524, /* GL_GL_COMPRESSED_SRGB */
- 525, /* GL_GL_COMPRESSED_SRGB_ALPHA */
- 522, /* GL_GL_COMPRESSED_SLUMINANCE */
- 523, /* GL_GL_COMPRESSED_SLUMINANCE_ALPHA */
- 1092, /* GL_POINT_SPRITE_COORD_ORIGIN */
- 665, /* GL_LOWER_LEFT */
- 1665, /* GL_UPPER_LEFT */
- 1400, /* GL_STENCIL_BACK_REF */
- 1401, /* GL_STENCIL_BACK_VALUE_MASK */
- 1402, /* GL_STENCIL_BACK_WRITEMASK */
- 402, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- 1235, /* GL_RENDERBUFFER_BINDING_EXT */
- 1220, /* GL_READ_FRAMEBUFFER_EXT */
- 403, /* GL_DRAW_FRAMEBUFFER_EXT */
- 1219, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- 489, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- 488, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- 492, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- 491, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- 490, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- 494, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- 496, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- 501, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- 499, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- 497, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- 500, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- 498, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- 502, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- 504, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- 503, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- 798, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ 488, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ 1340, /* GL_SHADING_LANGUAGE_VERSION */
+ 290, /* GL_CURRENT_PROGRAM */
+ 1034, /* GL_PALETTE4_RGB8_OES */
+ 1036, /* GL_PALETTE4_RGBA8_OES */
+ 1032, /* GL_PALETTE4_R5_G6_B5_OES */
+ 1035, /* GL_PALETTE4_RGBA4_OES */
+ 1033, /* GL_PALETTE4_RGB5_A1_OES */
+ 1039, /* GL_PALETTE8_RGB8_OES */
+ 1041, /* GL_PALETTE8_RGBA8_OES */
+ 1037, /* GL_PALETTE8_R5_G6_B5_OES */
+ 1040, /* GL_PALETTE8_RGBA4_OES */
+ 1038, /* GL_PALETTE8_RGB5_A1_OES */
+ 574, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ 573, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ 1511, /* GL_TEXTURE_1D_ARRAY_EXT */
+ 1198, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ 1513, /* GL_TEXTURE_2D_ARRAY_EXT */
+ 1201, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ 1519, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ 1521, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ 543, /* GL_GL_SRGB */
+ 544, /* GL_GL_SRGB8 */
+ 546, /* GL_GL_SRGB_ALPHA */
+ 545, /* GL_GL_SRGB8_ALPHA8 */
+ 542, /* GL_GL_SLUMINANCE_ALPHA */
+ 541, /* GL_GL_SLUMINANCE8_ALPHA8 */
+ 539, /* GL_GL_SLUMINANCE */
+ 540, /* GL_GL_SLUMINANCE8 */
+ 526, /* GL_GL_COMPRESSED_SRGB */
+ 527, /* GL_GL_COMPRESSED_SRGB_ALPHA */
+ 524, /* GL_GL_COMPRESSED_SLUMINANCE */
+ 525, /* GL_GL_COMPRESSED_SLUMINANCE_ALPHA */
+ 1095, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ 667, /* GL_LOWER_LEFT */
+ 1674, /* GL_UPPER_LEFT */
+ 1405, /* GL_STENCIL_BACK_REF */
+ 1406, /* GL_STENCIL_BACK_VALUE_MASK */
+ 1407, /* GL_STENCIL_BACK_WRITEMASK */
+ 403, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ 1240, /* GL_RENDERBUFFER_BINDING_EXT */
+ 1225, /* GL_READ_FRAMEBUFFER_EXT */
+ 404, /* GL_DRAW_FRAMEBUFFER_EXT */
+ 1224, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ 490, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
+ 489, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
+ 494, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
+ 492, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
+ 491, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
+ 496, /* GL_FRAMEBUFFER_COMPLETE_EXT */
+ 498, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
+ 503, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
+ 501, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ 499, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ 502, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ 500, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ 504, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ 506, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
+ 505, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ 801, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
146, /* GL_COLOR_ATTACHMENT0_EXT */
153, /* GL_COLOR_ATTACHMENT1_EXT */
154, /* GL_COLOR_ATTACHMENT2_EXT */
@@ -4782,25 +4807,25 @@ static const unsigned reduced_enums[1277] =
150, /* GL_COLOR_ATTACHMENT13_EXT */
151, /* GL_COLOR_ATTACHMENT14_EXT */
152, /* GL_COLOR_ATTACHMENT15_EXT */
- 313, /* GL_DEPTH_ATTACHMENT_EXT */
- 1391, /* GL_STENCIL_ATTACHMENT_EXT */
- 495, /* GL_FRAMEBUFFER_EXT */
- 1236, /* GL_RENDERBUFFER_EXT */
- 1239, /* GL_RENDERBUFFER_WIDTH_EXT */
- 1237, /* GL_RENDERBUFFER_HEIGHT_EXT */
- 1238, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- 1413, /* GL_STENCIL_INDEX_EXT */
- 1410, /* GL_STENCIL_INDEX1_EXT */
- 1411, /* GL_STENCIL_INDEX4_EXT */
- 1412, /* GL_STENCIL_INDEX8_EXT */
- 1409, /* GL_STENCIL_INDEX16_EXT */
- 427, /* GL_EVAL_BIT */
- 1217, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- 659, /* GL_LIST_BIT */
- 1518, /* GL_TEXTURE_BIT */
- 1314, /* GL_SCISSOR_BIT */
+ 314, /* GL_DEPTH_ATTACHMENT_EXT */
+ 1396, /* GL_STENCIL_ATTACHMENT_EXT */
+ 497, /* GL_FRAMEBUFFER_EXT */
+ 1241, /* GL_RENDERBUFFER_EXT */
+ 1244, /* GL_RENDERBUFFER_WIDTH_EXT */
+ 1242, /* GL_RENDERBUFFER_HEIGHT_EXT */
+ 1243, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
+ 1418, /* GL_STENCIL_INDEX_EXT */
+ 1415, /* GL_STENCIL_INDEX1_EXT */
+ 1416, /* GL_STENCIL_INDEX4_EXT */
+ 1417, /* GL_STENCIL_INDEX8_EXT */
+ 1414, /* GL_STENCIL_INDEX16_EXT */
+ 428, /* GL_EVAL_BIT */
+ 1222, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ 661, /* GL_LIST_BIT */
+ 1527, /* GL_TEXTURE_BIT */
+ 1319, /* GL_SCISSOR_BIT */
29, /* GL_ALL_ATTRIB_BITS */
- 938, /* GL_MULTISAMPLE_BIT */
+ 941, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
};
diff --git a/src/mesa/main/execmem.c b/src/mesa/main/execmem.c
index df3095232de..b40a2de8fa4 100644
--- a/src/mesa/main/execmem.c
+++ b/src/mesa/main/execmem.c
@@ -32,7 +32,7 @@
#include "imports.h"
-#include "glthread.h"
+#include "glapi/glthread.h"
@@ -47,6 +47,10 @@
#include <sys/mman.h>
#include "mm.h"
+#ifdef MESA_SELINUX
+#include <selinux/selinux.h>
+#endif
+
#define EXEC_HEAP_SIZE (10*1024*1024)
_glthread_DECLARE_STATIC_MUTEX(exec_mutex);
@@ -55,9 +59,17 @@ static struct mem_block *exec_heap = NULL;
static unsigned char *exec_mem = NULL;
-static void
+static int
init_heap(void)
{
+#ifdef MESA_SELINUX
+ if (is_selinux_enabled()) {
+ if (!security_get_boolean_active("allow_execmem") ||
+ !security_get_boolean_pending("allow_execmem"))
+ return 0;
+ }
+#endif
+
if (!exec_heap)
exec_heap = mmInit( 0, EXEC_HEAP_SIZE );
@@ -65,6 +77,8 @@ init_heap(void)
exec_mem = (unsigned char *) mmap(0, EXEC_HEAP_SIZE,
PROT_EXEC | PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ return (exec_mem != NULL);
}
@@ -76,7 +90,8 @@ _mesa_exec_malloc(GLuint size)
_glthread_LOCK_MUTEX(exec_mutex);
- init_heap();
+ if (!init_heap())
+ goto bail;
if (exec_heap) {
size = (size + 31) & ~31;
@@ -87,7 +102,8 @@ _mesa_exec_malloc(GLuint size)
addr = exec_mem + block->ofs;
else
_mesa_printf("_mesa_exec_malloc failed\n");
-
+
+bail:
_glthread_UNLOCK_MUTEX(exec_mutex);
return addr;
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 4e44c5b7103..709499f7301 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -47,6 +47,7 @@ static const struct {
{ OFF, "GL_ARB_depth_texture", F(ARB_depth_texture) },
{ OFF, "GL_ARB_draw_buffers", F(ARB_draw_buffers) },
{ OFF, "GL_ARB_fragment_program", F(ARB_fragment_program) },
+ { OFF, "GL_ARB_fragment_program_shadow", F(ARB_fragment_program_shadow) },
{ OFF, "GL_ARB_fragment_shader", F(ARB_fragment_shader) },
{ OFF, "GL_ARB_half_float_pixel", F(ARB_half_float_pixel) },
{ OFF, "GL_ARB_imaging", F(ARB_imaging) },
@@ -145,6 +146,7 @@ static const struct {
{ OFF, "GL_MESA_packed_depth_stencil", F(MESA_packed_depth_stencil) },
{ OFF, "GL_MESA_program_debug", F(MESA_program_debug) },
{ OFF, "GL_MESA_resize_buffers", F(MESA_resize_buffers) },
+ { OFF, "GL_MESA_texture_array", F(MESA_texture_array) },
{ OFF, "GL_MESA_ycbcr_texture", F(MESA_ycbcr_texture) },
{ ON, "GL_MESA_window_pos", F(ARB_window_pos) },
{ OFF, "GL_NV_blend_square", F(NV_blend_square) },
@@ -183,6 +185,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
ctx->Extensions.ARB_draw_buffers = GL_TRUE;
#if FEATURE_ARB_fragment_program
ctx->Extensions.ARB_fragment_program = GL_TRUE;
+ ctx->Extensions.ARB_fragment_program_shadow = GL_TRUE;
#endif
#if FEATURE_ARB_fragment_shader
ctx->Extensions.ARB_fragment_shader = GL_TRUE;
@@ -270,6 +273,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
ctx->Extensions.MESA_program_debug = GL_TRUE;
#endif
ctx->Extensions.MESA_resize_buffers = GL_TRUE;
+ ctx->Extensions.MESA_texture_array = GL_TRUE;
ctx->Extensions.MESA_ycbcr_texture = GL_TRUE;
ctx->Extensions.NV_blend_square = GL_TRUE;
/*ctx->Extensions.NV_light_max_exponent = GL_TRUE;*/
@@ -305,6 +309,7 @@ _mesa_enable_imaging_extensions(GLcontext *ctx)
{
ctx->Extensions.ARB_imaging = GL_TRUE;
ctx->Extensions.EXT_blend_color = GL_TRUE;
+ ctx->Extensions.EXT_blend_logic_op = GL_TRUE;
ctx->Extensions.EXT_blend_minmax = GL_TRUE;
ctx->Extensions.EXT_blend_subtract = GL_TRUE;
ctx->Extensions.EXT_convolution = GL_TRUE;
@@ -349,7 +354,6 @@ _mesa_enable_1_4_extensions(GLcontext *ctx)
ctx->Extensions.ARB_window_pos = GL_TRUE;
ctx->Extensions.EXT_blend_color = GL_TRUE;
ctx->Extensions.EXT_blend_func_separate = GL_TRUE;
- ctx->Extensions.EXT_blend_logic_op = GL_TRUE;
ctx->Extensions.EXT_blend_minmax = GL_TRUE;
ctx->Extensions.EXT_blend_subtract = GL_TRUE;
ctx->Extensions.EXT_fog_coord = GL_TRUE;
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index bbdc46f002f..8e9948cb45d 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -29,6 +29,7 @@
*/
+#include "buffers.h"
#include "context.h"
#include "fbobject.h"
#include "framebuffer.h"
@@ -908,8 +909,7 @@ check_end_texture_render(GLcontext *ctx, struct gl_framebuffer *fb)
GLuint i;
for (i = 0; i < BUFFER_COUNT; i++) {
struct gl_renderbuffer_attachment *att = fb->Attachment + i;
- struct gl_texture_object *texObj = att->Texture;
- if (texObj) {
+ if (att->Texture && att->Renderbuffer) {
ctx->Driver.FinishRenderTexture(ctx, att);
}
}
@@ -920,7 +920,7 @@ check_end_texture_render(GLcontext *ctx, struct gl_framebuffer *fb)
void GLAPIENTRY
_mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
{
- struct gl_framebuffer *newFb;
+ struct gl_framebuffer *newFb, *newFbread;
GLboolean bindReadBuf, bindDrawBuf;
GET_CURRENT_CONTEXT(ctx);
@@ -961,9 +961,11 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
}
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
+
if (ctx->Driver.Flush) {
ctx->Driver.Flush(ctx);
}
+
if (framebuffer) {
/* Binding a user-created framebuffer object */
newFb = _mesa_lookup_framebuffer(ctx, framebuffer);
@@ -979,14 +981,15 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
return;
}
_mesa_HashInsert(ctx->Shared->FrameBuffers, framebuffer, newFb);
- ASSERT(newFb->RefCount == 1);
}
+ newFbread = newFb;
}
else {
/* Binding the window system framebuffer (which was originally set
* with MakeCurrent).
*/
newFb = ctx->WinSysDrawBuffer;
+ newFbread = ctx->WinSysReadBuffer;
}
ASSERT(newFb);
@@ -997,14 +1000,14 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
*/
if (bindReadBuf) {
- _mesa_reference_framebuffer(&ctx->ReadBuffer, newFb);
+ _mesa_reference_framebuffer(&ctx->ReadBuffer, newFbread);
}
if (bindDrawBuf) {
/* check if old FB had any texture attachments */
check_end_texture_render(ctx, ctx->DrawBuffer);
- /* bind new drawing buffer */
+ /* check if time to delete this framebuffer */
_mesa_reference_framebuffer(&ctx->DrawBuffer, newFb);
if (newFb->Name != 0) {
@@ -1014,7 +1017,7 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
}
if (ctx->Driver.BindFramebuffer) {
- ctx->Driver.BindFramebuffer(ctx, target, newFb);
+ ctx->Driver.BindFramebuffer(ctx, target, newFb, newFbread);
}
}
@@ -1178,9 +1181,16 @@ framebuffer_texture(GLcontext *ctx, const char *caller, GLenum target,
texObj = _mesa_lookup_texture(ctx, texture);
if (texObj != NULL) {
- err = (texObj->Target == GL_TEXTURE_CUBE_MAP)
- ? !IS_CUBE_FACE(textarget)
- : (texObj->Target != textarget);
+ if (textarget == 0) {
+ err = (texObj->Target != GL_TEXTURE_3D) &&
+ (texObj->Target != GL_TEXTURE_1D_ARRAY_EXT) &&
+ (texObj->Target != GL_TEXTURE_2D_ARRAY_EXT);
+ }
+ else {
+ err = (texObj->Target == GL_TEXTURE_CUBE_MAP)
+ ? !IS_CUBE_FACE(textarget)
+ : (texObj->Target != textarget);
+ }
}
if (err) {
@@ -1194,12 +1204,20 @@ framebuffer_texture(GLcontext *ctx, const char *caller, GLenum target,
const GLint maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1);
if (zoffset < 0 || zoffset >= maxSize) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glFramebufferTexture%sEXT(zoffset)",
- caller);
+ "glFramebufferTexture%sEXT(zoffset)", caller);
+ return;
+ }
+ }
+ else if ((texObj->Target == GL_TEXTURE_1D_ARRAY_EXT) ||
+ (texObj->Target == GL_TEXTURE_2D_ARRAY_EXT)) {
+ if (zoffset < 0 || zoffset >= ctx->Const.MaxArrayTextureLayers) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glFramebufferTexture%sEXT(layer)", caller);
return;
}
}
+
if ((level < 0) ||
(level >= _mesa_max_texture_levels(ctx, texObj->Target))) {
_mesa_error(ctx, GL_INVALID_VALUE,
@@ -1291,6 +1309,17 @@ _mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment,
void GLAPIENTRY
+_mesa_FramebufferTextureLayerEXT(GLenum target, GLenum attachment,
+ GLuint texture, GLint level, GLint layer)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ framebuffer_texture(ctx, "Layer", target, attachment, 0, texture,
+ level, layer);
+}
+
+
+void GLAPIENTRY
_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
GLenum renderbufferTarget,
GLuint renderbuffer)
@@ -1515,7 +1544,7 @@ _mesa_GenerateMipmapEXT(GLenum target)
/* XXX this might not handle cube maps correctly */
_mesa_lock_texture(ctx, texObj);
- _mesa_generate_mipmap(ctx, target, texUnit, texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
_mesa_unlock_texture(ctx, texObj);
}
diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
index 301e2da4495..782ad8cb180 100644
--- a/src/mesa/main/fbobject.h
+++ b/src/mesa/main/fbobject.h
@@ -113,6 +113,10 @@ _mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment,
GLint level, GLint zoffset);
extern void GLAPIENTRY
+_mesa_FramebufferTextureLayerEXT(GLenum target, GLenum attachment,
+ GLuint texture, GLint level, GLint layer);
+
+extern void GLAPIENTRY
_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
GLenum renderbuffertarget,
GLuint renderbuffer);
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 8aeb3695088..d62af98f8a1 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -32,6 +32,7 @@
#include "glheader.h"
#include "imports.h"
+#include "buffers.h"
#include "context.h"
#include "depthstencil.h"
#include "mtypes.h"
@@ -66,7 +67,9 @@ compute_depth_max(struct gl_framebuffer *fb)
fb->_DepthMax = 0xffffffff;
}
fb->_DepthMaxF = (GLfloat) fb->_DepthMax;
- fb->_MRD = 1.0; /* Minimum resolvable depth value, for polygon offset */
+
+ /* Minimum resolvable depth value, for polygon offset */
+ fb->_MRD = 1.0 / fb->_DepthMaxF;
}
@@ -106,8 +109,9 @@ _mesa_new_framebuffer(GLcontext *ctx, GLuint name)
if (fb) {
fb->Name = name;
fb->RefCount = 1;
+ fb->_NumColorDrawBuffers = 1;
fb->ColorDrawBuffer[0] = GL_COLOR_ATTACHMENT0_EXT;
- fb->_ColorDrawBufferMask[0] = BUFFER_BIT_COLOR0;
+ fb->_ColorDrawBufferIndexes[0] = BUFFER_COLOR0;
fb->ColorReadBuffer = GL_COLOR_ATTACHMENT0_EXT;
fb->_ColorReadBufferIndex = BUFFER_COLOR0;
fb->Delete = _mesa_destroy_framebuffer;
@@ -136,16 +140,18 @@ _mesa_initialize_framebuffer(struct gl_framebuffer *fb, const GLvisual *visual)
/* save the visual */
fb->Visual = *visual;
- /* Init glRead/DrawBuffer state */
+ /* Init read/draw renderbuffer state */
if (visual->doubleBufferMode) {
+ fb->_NumColorDrawBuffers = 1;
fb->ColorDrawBuffer[0] = GL_BACK;
- fb->_ColorDrawBufferMask[0] = BUFFER_BIT_BACK_LEFT;
+ fb->_ColorDrawBufferIndexes[0] = BUFFER_BACK_LEFT;
fb->ColorReadBuffer = GL_BACK;
fb->_ColorReadBufferIndex = BUFFER_BACK_LEFT;
}
else {
+ fb->_NumColorDrawBuffers = 1;
fb->ColorDrawBuffer[0] = GL_FRONT;
- fb->_ColorDrawBufferMask[0] = BUFFER_BIT_FRONT_LEFT;
+ fb->_ColorDrawBufferIndexes[0] = BUFFER_FRONT_LEFT;
fb->ColorReadBuffer = GL_FRONT;
fb->_ColorReadBufferIndex = BUFFER_FRONT_LEFT;
}
@@ -580,8 +586,53 @@ _mesa_update_stencil_buffer(GLcontext *ctx,
}
+/*
+ * Example DrawBuffers scenarios:
+ *
+ * 1. glDrawBuffer(GL_FRONT_AND_BACK), fixed-func or shader writes to
+ * "gl_FragColor" or program writes to the "result.color" register:
+ *
+ * fragment color output renderbuffer
+ * --------------------- ---------------
+ * color[0] Front, Back
+ *
+ *
+ * 2. glDrawBuffers(3, [GL_FRONT, GL_AUX0, GL_AUX1]), shader writes to
+ * gl_FragData[i] or program writes to result.color[i] registers:
+ *
+ * fragment color output renderbuffer
+ * --------------------- ---------------
+ * color[0] Front
+ * color[1] Aux0
+ * color[3] Aux1
+ *
+ *
+ * 3. glDrawBuffers(3, [GL_FRONT, GL_AUX0, GL_AUX1]) and shader writes to
+ * gl_FragColor, or fixed function:
+ *
+ * fragment color output renderbuffer
+ * --------------------- ---------------
+ * color[0] Front, Aux0, Aux1
+ *
+ *
+ * In either case, the list of renderbuffers is stored in the
+ * framebuffer->_ColorDrawBuffers[] array and
+ * framebuffer->_NumColorDrawBuffers indicates the number of buffers.
+ * The renderer (like swrast) has to look at the current fragment shader
+ * to see if it writes to gl_FragColor vs. gl_FragData[i] to determine
+ * how to map color outputs to renderbuffers.
+ *
+ * Note that these two calls are equivalent (for fixed function fragment
+ * shading anyway):
+ * a) glDrawBuffer(GL_FRONT_AND_BACK); (assuming non-stereo framebuffer)
+ * b) glDrawBuffers(2, [GL_FRONT_LEFT, GL_BACK_LEFT]);
+ */
+
+
+
+
/**
- * Update the list of color drawing renderbuffer pointers.
+ * Update the (derived) list of color drawing renderbuffer pointers.
* Later, when we're rendering we'll loop from 0 to _NumColorDrawBuffers
* writing colors.
*/
@@ -590,42 +641,23 @@ update_color_draw_buffers(GLcontext *ctx, struct gl_framebuffer *fb)
{
GLuint output;
- /*
- * Fragment programs can write to multiple colorbuffers with
- * the GL_ARB_draw_buffers extension.
- */
- for (output = 0; output < ctx->Const.MaxDrawBuffers; output++) {
- GLbitfield bufferMask = fb->_ColorDrawBufferMask[output];
- GLuint count = 0;
- GLuint i;
- if (!fb->DeletePending) {
- /* We need the inner loop here because glDrawBuffer(GL_FRONT_AND_BACK)
- * can specify writing to two or four color buffers (for example).
- */
- for (i = 0; bufferMask && i < BUFFER_COUNT; i++) {
- const GLuint bufferBit = 1 << i;
- if (bufferBit & bufferMask) {
- struct gl_renderbuffer *rb = fb->Attachment[i].Renderbuffer;
- if (rb && rb->Width > 0 && rb->Height > 0) {
- fb->_ColorDrawBuffers[output][count] = rb;
- count++;
- }
- else {
- /*
- _mesa_warning(ctx, "DrawBuffer names a missing buffer!\n");
- */
- }
- bufferMask &= ~bufferBit;
- }
- }
+ /* set 0th buffer to NULL now in case _NumColorDrawBuffers is zero */
+ fb->_ColorDrawBuffers[0] = NULL;
+
+ for (output = 0; output < fb->_NumColorDrawBuffers; output++) {
+ GLint buf = fb->_ColorDrawBufferIndexes[output];
+ if (buf >= 0) {
+ fb->_ColorDrawBuffers[output] = fb->Attachment[buf].Renderbuffer;
+ }
+ else {
+ fb->_ColorDrawBuffers[output] = NULL;
}
- fb->_NumColorDrawBuffers[output] = count;
}
}
/**
- * Update the color read renderbuffer pointer.
+ * Update the (derived) color read renderbuffer pointer.
* Unlike the DrawBuffer, we can only read from one (or zero) color buffers.
*/
static void
@@ -648,29 +680,50 @@ update_color_read_buffer(GLcontext *ctx, struct gl_framebuffer *fb)
/**
- * Update state related to the current draw/read framebuffers.
+ * Update a gl_framebuffer's derived state.
+ *
* Specifically, update these framebuffer fields:
* _ColorDrawBuffers
* _NumColorDrawBuffers
* _ColorReadBuffer
* _DepthBuffer
* _StencilBuffer
- * If the current framebuffer is user-created, make sure it's complete.
- * The following functions can effect this state: glReadBuffer,
- * glDrawBuffer, glDrawBuffersARB, glFramebufferRenderbufferEXT,
+ *
+ * If the framebuffer is user-created, make sure it's complete.
+ *
+ * The following functions (at least) can effect framebuffer state:
+ * glReadBuffer, glDrawBuffer, glDrawBuffersARB, glFramebufferRenderbufferEXT,
* glRenderbufferStorageEXT.
*/
-void
-_mesa_update_framebuffer(GLcontext *ctx)
+static void
+update_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb)
{
- struct gl_framebuffer *fb = ctx->DrawBuffer;
-
- /* Completeness only matters for user-created framebuffers */
- if (fb->Name != 0) {
+ if (fb->Name == 0) {
+ /* This is a window-system framebuffer */
+ /* Need to update the FB's GL_DRAW_BUFFER state to match the
+ * context state (GL_READ_BUFFER too).
+ */
+ if (fb->ColorDrawBuffer[0] != ctx->Color.DrawBuffer[0]) {
+ _mesa_drawbuffers(ctx, ctx->Const.MaxDrawBuffers,
+ ctx->Color.DrawBuffer, NULL);
+ }
+ if (fb->ColorReadBuffer != ctx->Pixel.ReadBuffer) {
+
+ }
+ }
+ else {
+ /* This is a user-created framebuffer.
+ * Completeness only matters for user-created framebuffers.
+ */
_mesa_test_framebuffer_completeness(ctx, fb);
_mesa_update_framebuffer_visual(fb);
}
+ /* Strictly speaking, we don't need to update the draw-state
+ * if this FB is bound as ctx->ReadBuffer (and conversely, the
+ * read-state if this FB is bound as ctx->DrawBuffer), but no
+ * harm.
+ */
update_color_draw_buffers(ctx, fb);
update_color_read_buffer(ctx, fb);
_mesa_update_depth_buffer(ctx, fb, BUFFER_DEPTH);
@@ -681,6 +734,21 @@ _mesa_update_framebuffer(GLcontext *ctx)
/**
+ * Update state related to the current draw/read framebuffers.
+ */
+void
+_mesa_update_framebuffer(GLcontext *ctx)
+{
+ struct gl_framebuffer *drawFb = ctx->DrawBuffer;
+ struct gl_framebuffer *readFb = ctx->ReadBuffer;
+
+ update_framebuffer(ctx, drawFb);
+ if (readFb != drawFb)
+ update_framebuffer(ctx, readFb);
+}
+
+
+/**
* Check if the renderbuffer for a read operation (glReadPixels, glCopyPixels,
* glCopyTex[Sub]Image, etc. exists.
* \param format a basic image format such as GL_RGB, GL_RGBA, GL_ALPHA,
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 2cbd60539e7..9d8f2002c9c 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -870,6 +870,14 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
case GL_TEXTURE_3D:
params[0] = _mesa_IsEnabled(GL_TEXTURE_3D);
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetBooleanv");
+ params[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT);
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetBooleanv");
+ params[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT);
+ break;
case GL_TEXTURE_BINDING_1D:
params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name);
break;
@@ -879,6 +887,14 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
case GL_TEXTURE_BINDING_3D:
params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name);
break;
+ case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetBooleanv");
+ params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name);
+ break;
+ case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetBooleanv");
+ params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name);
+ break;
case GL_TEXTURE_ENV_COLOR:
{
const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
@@ -2705,6 +2721,14 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
case GL_TEXTURE_3D:
params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D));
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetFloatv");
+ params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetFloatv");
+ params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
+ break;
case GL_TEXTURE_BINDING_1D:
params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name);
break;
@@ -2714,6 +2738,14 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
case GL_TEXTURE_BINDING_3D:
params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name);
break;
+ case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetFloatv");
+ params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name);
+ break;
+ case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetFloatv");
+ params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name);
+ break;
case GL_TEXTURE_ENV_COLOR:
{
const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
@@ -4540,6 +4572,14 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
case GL_TEXTURE_3D:
params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D));
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetIntegerv");
+ params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetIntegerv");
+ params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
+ break;
case GL_TEXTURE_BINDING_1D:
params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name;
break;
@@ -4549,6 +4589,14 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
case GL_TEXTURE_BINDING_3D:
params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name;
break;
+ case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetIntegerv");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name;
+ break;
+ case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetIntegerv");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name;
+ break;
case GL_TEXTURE_ENV_COLOR:
{
const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index 6ff91680206..819a7cc5d7b 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -425,12 +425,18 @@ StateVars = [
( "GL_TEXTURE_1D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_1D)"], "", None ),
( "GL_TEXTURE_2D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_2D)"], "", None ),
( "GL_TEXTURE_3D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_3D)"], "", None ),
+ ( "GL_TEXTURE_1D_ARRAY_EXT", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT)"], "", ["MESA_texture_array"] ),
+ ( "GL_TEXTURE_2D_ARRAY_EXT", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT)"], "", ["MESA_texture_array"] ),
( "GL_TEXTURE_BINDING_1D", GLint,
["ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name"], "", None ),
( "GL_TEXTURE_BINDING_2D", GLint,
["ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name"], "", None ),
( "GL_TEXTURE_BINDING_3D", GLint,
["ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name"], "", None ),
+ ( "GL_TEXTURE_BINDING_1D_ARRAY_EXT", GLint,
+ ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name"], "", ["MESA_texture_array"] ),
+ ( "GL_TEXTURE_BINDING_2D_ARRAY_EXT", GLint,
+ ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name"], "", ["MESA_texture_array"] ),
( "GL_TEXTURE_ENV_COLOR", GLfloatN,
["color[0]", "color[1]", "color[2]", "color[3]"],
"const GLfloat *color = ctx->Texture.Unit[ctx->Texture.CurrentUnit].EnvColor;",
diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index 973649da0dd..55fb42096df 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -81,6 +81,7 @@ _mesa_GetString( GLenum name )
case GL_RENDERER:
return (const GLubyte *) renderer;
case GL_VERSION:
+ /* tests for 1.3: */
if (ctx->Extensions.ARB_multisample &&
ctx->Extensions.ARB_multitexture &&
ctx->Extensions.ARB_texture_border_clamp &&
@@ -89,6 +90,7 @@ _mesa_GetString( GLenum name )
ctx->Extensions.EXT_texture_env_add &&
ctx->Extensions.ARB_texture_env_combine &&
ctx->Extensions.ARB_texture_env_dot3) {
+ /* tests for 1.4: */
if (ctx->Extensions.ARB_depth_texture &&
ctx->Extensions.ARB_shadow &&
ctx->Extensions.ARB_texture_env_crossbar &&
@@ -96,7 +98,6 @@ _mesa_GetString( GLenum name )
ctx->Extensions.ARB_window_pos &&
ctx->Extensions.EXT_blend_color &&
ctx->Extensions.EXT_blend_func_separate &&
- ctx->Extensions.EXT_blend_logic_op &&
ctx->Extensions.EXT_blend_minmax &&
ctx->Extensions.EXT_blend_subtract &&
ctx->Extensions.EXT_fog_coord &&
@@ -106,9 +107,11 @@ _mesa_GetString( GLenum name )
ctx->Extensions.EXT_stencil_wrap &&
ctx->Extensions.EXT_texture_lod_bias &&
ctx->Extensions.SGIS_generate_mipmap) {
+ /* tests for 1.5: */
if (ctx->Extensions.ARB_occlusion_query &&
ctx->Extensions.ARB_vertex_buffer_object &&
ctx->Extensions.EXT_shadow_funcs) {
+ /* tests for 2.0: */
if (ctx->Extensions.ARB_draw_buffers &&
ctx->Extensions.ARB_point_sprite &&
ctx->Extensions.ARB_shader_objects &&
@@ -116,6 +119,7 @@ _mesa_GetString( GLenum name )
ctx->Extensions.ARB_fragment_shader &&
ctx->Extensions.ARB_texture_non_power_of_two &&
ctx->Extensions.EXT_blend_equation_separate) {
+ /* tests for 2.1: */
if (ctx->Extensions.ARB_shading_language_120 &&
ctx->Extensions.EXT_pixel_buffer_object &&
ctx->Extensions.EXT_texture_sRGB) {
diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h
index bab962ad5e1..533e4a2bd8d 100644
--- a/src/mesa/main/glheader.h
+++ b/src/mesa/main/glheader.h
@@ -46,11 +46,6 @@
#ifndef GLHEADER_H
#define GLHEADER_H
-/* This allows Mesa to be integrated into XFree86 */
-#ifdef HAVE_DIX_CONFIG_H
-#include "dix-config.h"
-#endif
-
#include <assert.h>
#include <ctype.h>
#if defined(__alpha__) && defined(CCPML)
@@ -81,6 +76,30 @@
# include <inttypes.h>
#endif
+/* For platforms that have the C99 standard uint*_t,
+ but not the commonly used u_int*_t */
+#if defined(__sun)
+# define u_int8_t uint8_t
+# define u_int16_t uint16_t
+# define u_int32_t uint32_t
+# define u_int64_t uint64_t
+# define u_intptr_t uintptr_t
+#endif
+
+/* Sun compilers define __i386 instead of the gcc-style __i386__ */
+#ifdef __SUNPRO_C
+# if !defined(__i386__) && defined(__i386)
+# define __i386__
+# elif !defined(__amd64__) && defined(__amd64)
+# define __amd64__
+# elif !defined(__sparc__) && defined(__sparc)
+# define __sparc__
+# endif
+# if !defined(__volatile)
+# define __volatile volatile
+# endif
+#endif
+
#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) && !defined(BUILD_FOR_SNAP)
# define __WIN32__
# define finite _finite
@@ -200,6 +219,12 @@
# define INLINE inline
#elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100)
# define INLINE __inline
+#elif defined(__SUNPRO_C) && defined(__C99FEATURES__)
+# define INLINE inline
+# define __inline inline
+# define __inline__ inline
+#elif (__STDC_VERSION__ >= 199901L) /* C99 */
+# define INLINE inline
#else
# define INLINE
#endif
@@ -245,12 +270,17 @@
* If we're not using gcc, define __FUNCTION__ as a cpp symbol here.
* Don't define it if using a newer Windows compiler.
*/
-#if defined(__VMS)
-# define __FUNCTION__ "VMS$NL:"
-#elif __STDC_VERSION__ < 199901L
-# if ((!defined __GNUC__) || (__GNUC__ < 2)) && (!defined __xlC__) && \
+#ifndef __FUNCTION__
+# if defined(__VMS)
+# define __FUNCTION__ "VMS$NL:"
+# elif ((!defined __GNUC__) || (__GNUC__ < 2)) && (!defined __xlC__) && \
(!defined(_MSC_VER) || _MSC_VER < 1300)
-# define __FUNCTION__ "<unknown>"
+# if (__STDC_VERSION__ >= 199901L) /* C99 */ || \
+ (defined(__SUNPRO_C) && defined(__C99FEATURES__))
+# define __FUNCTION__ __func__
+# else
+# define __FUNCTION__ "<unknown>"
+# endif
# endif
#endif
diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c
index 2d5bcc3e01e..ffb2c4d946e 100644
--- a/src/mesa/main/hash.c
+++ b/src/mesa/main/hash.c
@@ -37,7 +37,7 @@
#include "glheader.h"
#include "imports.h"
-#include "glthread.h"
+#include "glapi/glthread.h"
#include "hash.h"
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index 94ddebce2ed..8034daecae2 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.1
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -3886,12 +3886,12 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
* The glPixelTransfer (scale/bias) params will be applied.
*
* \param dstType one of GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_FLOAT
- * \param depthScale scale factor (max value) for returned GLushort or
- * GLuint values (ignored for GLfloat).
+ * \param depthMax max value for returned GLushort or GLuint values
+ * (ignored for GLfloat).
*/
void
_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
- GLenum dstType, GLvoid *dest, GLfloat depthScale,
+ GLenum dstType, GLvoid *dest, GLuint depthMax,
GLenum srcType, const GLvoid *source,
const struct gl_pixelstore_attrib *srcPacking )
{
@@ -3916,7 +3916,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
}
if (srcType == GL_UNSIGNED_SHORT
&& dstType == GL_UNSIGNED_INT
- && depthScale == (GLfloat) 0xffffffff) {
+ && depthMax == 0xffffffff) {
const GLushort *src = (const GLushort *) source;
GLuint *dst = (GLuint *) dest;
GLuint i;
@@ -3964,7 +3964,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
break;
case GL_UNSIGNED_INT_24_8_EXT: /* GL_EXT_packed_depth_stencil */
if (dstType == GL_UNSIGNED_INT_24_8_EXT &&
- depthScale == (GLfloat) 0xffffff &&
+ depthMax == 0xffffff &&
ctx->Pixel.DepthScale == 1.0 &&
ctx->Pixel.DepthBias == 0.0) {
const GLuint *src = (const GLuint *) source;
@@ -4042,16 +4042,16 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
if (dstType == GL_UNSIGNED_INT) {
GLuint *zValues = (GLuint *) dest;
GLuint i;
- if (depthScale <= (GLfloat) 0xffffff) {
+ if (depthMax <= 0xffffff) {
/* no overflow worries */
for (i = 0; i < n; i++) {
- zValues[i] = (GLuint) (depthValues[i] * depthScale);
+ zValues[i] = (GLuint) (depthValues[i] * (GLfloat) depthMax);
}
}
else {
/* need to use double precision to prevent overflow problems */
for (i = 0; i < n; i++) {
- GLdouble z = depthValues[i] * depthScale;
+ GLdouble z = depthValues[i] * (GLfloat) depthMax;
if (z >= (GLdouble) 0xffffffff)
zValues[i] = 0xffffffff;
else
@@ -4062,14 +4062,14 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
else if (dstType == GL_UNSIGNED_SHORT) {
GLushort *zValues = (GLushort *) dest;
GLuint i;
- ASSERT(depthScale <= 65535.0);
+ ASSERT(depthMax <= 0xffff);
for (i = 0; i < n; i++) {
- zValues[i] = (GLushort) (depthValues[i] * depthScale);
+ zValues[i] = (GLushort) (depthValues[i] * (GLfloat) depthMax);
}
}
else {
ASSERT(dstType == GL_FLOAT);
- ASSERT(depthScale == 1.0F);
+ /*ASSERT(depthMax == 1.0F);*/
}
}
diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h
index 990398a7c45..2a16989fa7e 100644
--- a/src/mesa/main/image.h
+++ b/src/mesa/main/image.h
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -181,7 +181,7 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
extern void
_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
- GLenum dstType, GLvoid *dest, GLfloat depthScale,
+ GLenum dstType, GLvoid *dest, GLuint depthMax,
GLenum srcType, const GLvoid *source,
const struct gl_pixelstore_attrib *srcPacking );
diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c
index e324deaf29a..1aebb25163f 100644
--- a/src/mesa/main/imports.c
+++ b/src/mesa/main/imports.c
@@ -20,7 +20,7 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -272,11 +272,11 @@ _mesa_memset16( unsigned short *dst, unsigned short val, size_t n )
*dst++ = val;
}
-/** Wrapper around either memcpy() or bzero() */
+/** Wrapper around either memset() or bzero() */
void
_mesa_bzero( void *dst, size_t n )
{
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__)
bzero( dst, n );
#else
memset( dst, 0, n );
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index d6dc725b0cb..00a18d3f15d 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.3
+ * Version: 7.1
*
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
@@ -159,12 +159,13 @@ typedef union { GLfloat f; GLint i; } fi_type;
***/
#if defined(__i386__) || defined(__386__) || defined(__sparc__) || \
defined(__s390x__) || defined(__powerpc__) || \
- defined(__amd64__) || defined(__x86_64__) || \
+ defined(__x86_64__) || \
defined(ia64) || defined(__ia64__) || \
defined(__hppa__) || defined(hpux) || \
defined(__mips) || defined(_MIPS_ARCH) || \
defined(__arm__) || \
defined(__sh__) || defined(__m32r__) || \
+ (defined(__sun) && defined(_IEEE_754)) || \
(defined(__alpha__) && (defined(__IEEE_FLOAT) || !defined(VMS)))
#define USE_IEEE
#define IEEE_ONE 0x3f800000
diff --git a/src/mesa/main/lines.c b/src/mesa/main/lines.c
index b464c4f59ed..81d0d33abb4 100644
--- a/src/mesa/main/lines.c
+++ b/src/mesa/main/lines.c
@@ -55,9 +55,6 @@ _mesa_LineWidth( GLfloat width )
FLUSH_VERTICES(ctx, _NEW_LINE);
ctx->Line.Width = width;
- ctx->Line._Width = CLAMP(width,
- ctx->Const.MinLineWidth,
- ctx->Const.MaxLineWidth);
if (width != 1.0F)
ctx->_TriangleCaps |= DD_LINE_WIDTH;
@@ -110,13 +107,12 @@ _mesa_LineStipple( GLint factor, GLushort pattern )
* Initializes __GLcontextRec::Line and line related constants in
* __GLcontextRec::Const.
*/
-void GLAPIENTRY _mesa_init_line( GLcontext * ctx )
+void GLAPIENTRY
+_mesa_init_line( GLcontext * ctx )
{
- /* Line group */
ctx->Line.SmoothFlag = GL_FALSE;
ctx->Line.StippleFlag = GL_FALSE;
ctx->Line.Width = 1.0;
- ctx->Line._Width = 1.0;
ctx->Line.StipplePattern = 0xffff;
ctx->Line.StippleFactor = 1;
}
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index cc1fb97eedd..8ca912b3a9d 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -531,28 +531,27 @@ make_1d_mipmap(const struct gl_texture_format *format, GLint border,
}
-/**
- * XXX need to use the tex image's row stride!
- */
static void
make_2d_mipmap(const struct gl_texture_format *format, GLint border,
- GLint srcWidth, GLint srcHeight, const GLubyte *srcPtr,
- GLint dstWidth, GLint dstHeight, GLubyte *dstPtr)
+ GLint srcWidth, GLint srcHeight,
+ const GLubyte *srcPtr, GLint srcRowStride,
+ GLint dstWidth, GLint dstHeight,
+ GLubyte *dstPtr, GLint dstRowStride)
{
const GLint bpt = format->TexelBytes;
const GLint srcWidthNB = srcWidth - 2 * border; /* sizes w/out border */
const GLint dstWidthNB = dstWidth - 2 * border;
const GLint dstHeightNB = dstHeight - 2 * border;
- const GLint srcRowStride = bpt * srcWidth;
- const GLint dstRowStride = bpt * dstWidth;
+ const GLint srcRowBytes = bpt * srcRowStride;
+ const GLint dstRowBytes = bpt * dstRowStride;
const GLubyte *srcA, *srcB;
GLubyte *dst;
GLint row;
/* Compute src and dst pointers, skipping any border */
srcA = srcPtr + border * ((srcWidth + 1) * bpt);
- if (srcHeight > 1)
- srcB = srcA + srcRowStride;
+ if (srcHeight > 1)
+ srcB = srcA + srcRowBytes;
else
srcB = srcA;
dst = dstPtr + border * ((dstWidth + 1) * bpt);
@@ -560,9 +559,9 @@ make_2d_mipmap(const struct gl_texture_format *format, GLint border,
for (row = 0; row < dstHeightNB; row++) {
do_row(format, srcWidthNB, srcA, srcB,
dstWidthNB, dst);
- srcA += 2 * srcRowStride;
- srcB += 2 * srcRowStride;
- dst += dstRowStride;
+ srcA += 2 * srcRowBytes;
+ srcB += 2 * srcRowBytes;
+ dst += dstRowBytes;
}
/* This is ugly but probably won't be used much */
@@ -620,9 +619,9 @@ make_2d_mipmap(const struct gl_texture_format *format, GLint border,
static void
make_3d_mipmap(const struct gl_texture_format *format, GLint border,
GLint srcWidth, GLint srcHeight, GLint srcDepth,
- const GLubyte *srcPtr,
+ const GLubyte *srcPtr, GLint srcRowStride,
GLint dstWidth, GLint dstHeight, GLint dstDepth,
- GLubyte *dstPtr)
+ GLubyte *dstPtr, GLint dstRowStride)
{
const GLint bpt = format->TexelBytes;
const GLint srcWidthNB = srcWidth - 2 * border; /* sizes w/out border */
@@ -717,13 +716,13 @@ make_3d_mipmap(const struct gl_texture_format *format, GLint border,
/* Luckily we can leverage the make_2d_mipmap() function here! */
if (border > 0) {
/* do front border image */
- make_2d_mipmap(format, 1, srcWidth, srcHeight, srcPtr,
- dstWidth, dstHeight, dstPtr);
+ make_2d_mipmap(format, 1, srcWidth, srcHeight, srcPtr, srcRowStride,
+ dstWidth, dstHeight, dstPtr, dstRowStride);
/* do back border image */
make_2d_mipmap(format, 1, srcWidth, srcHeight,
- srcPtr + bytesPerSrcImage * (srcDepth - 1),
+ srcPtr + bytesPerSrcImage * (srcDepth - 1), srcRowStride,
dstWidth, dstHeight,
- dstPtr + bytesPerDstImage * (dstDepth - 1));
+ dstPtr + bytesPerDstImage * (dstDepth - 1), dstRowStride);
/* do four remaining border edges that span the image slices */
if (srcDepth == dstDepth) {
/* just copy border pixels from src to dst */
@@ -796,6 +795,138 @@ make_3d_mipmap(const struct gl_texture_format *format, GLint border,
}
+static void
+make_1d_stack_mipmap(const struct gl_texture_format *format, GLint border,
+ GLint srcWidth, const GLubyte *srcPtr, GLuint srcRowStride,
+ GLint dstWidth, GLint dstHeight,
+ GLubyte *dstPtr, GLuint dstRowStride )
+{
+ const GLint bpt = format->TexelBytes;
+ const GLint srcWidthNB = srcWidth - 2 * border; /* sizes w/out border */
+ const GLint dstWidthNB = dstWidth - 2 * border;
+ const GLint dstHeightNB = dstHeight - 2 * border;
+ const GLint srcRowBytes = bpt * srcRowStride;
+ const GLint dstRowBytes = bpt * dstRowStride;
+ const GLubyte *src;
+ GLubyte *dst;
+ GLint row;
+
+ /* Compute src and dst pointers, skipping any border */
+ src = srcPtr + border * ((srcWidth + 1) * bpt);
+ dst = dstPtr + border * ((dstWidth + 1) * bpt);
+
+ for (row = 0; row < dstHeightNB; row++) {
+ do_row(format, srcWidthNB, src, src,
+ dstWidthNB, dst);
+ src += srcRowBytes;
+ dst += dstRowBytes;
+ }
+
+ if (border) {
+ /* copy left-most pixel from source */
+ MEMCPY(dstPtr, srcPtr, bpt);
+ /* copy right-most pixel from source */
+ MEMCPY(dstPtr + (dstWidth - 1) * bpt,
+ srcPtr + (srcWidth - 1) * bpt,
+ bpt);
+ }
+}
+
+
+/**
+ * \bugs
+ * There is quite a bit of refactoring that could be done with this function
+ * and \c make_2d_mipmap.
+ */
+static void
+make_2d_stack_mipmap(const struct gl_texture_format *format, GLint border,
+ GLint srcWidth, GLint srcHeight,
+ const GLubyte *srcPtr, GLint srcRowStride,
+ GLint dstWidth, GLint dstHeight, GLint dstDepth,
+ GLubyte *dstPtr, GLint dstRowStride)
+{
+ const GLint bpt = format->TexelBytes;
+ const GLint srcWidthNB = srcWidth - 2 * border; /* sizes w/out border */
+ const GLint dstWidthNB = dstWidth - 2 * border;
+ const GLint dstHeightNB = dstHeight - 2 * border;
+ const GLint dstDepthNB = dstDepth - 2 * border;
+ const GLint srcRowBytes = bpt * srcRowStride;
+ const GLint dstRowBytes = bpt * dstRowStride;
+ const GLubyte *srcA, *srcB;
+ GLubyte *dst;
+ GLint layer;
+ GLint row;
+
+ /* Compute src and dst pointers, skipping any border */
+ srcA = srcPtr + border * ((srcWidth + 1) * bpt);
+ if (srcHeight > 1)
+ srcB = srcA + srcRowBytes;
+ else
+ srcB = srcA;
+ dst = dstPtr + border * ((dstWidth + 1) * bpt);
+
+ for (layer = 0; layer < dstDepthNB; layer++) {
+ for (row = 0; row < dstHeightNB; row++) {
+ do_row(format, srcWidthNB, srcA, srcB,
+ dstWidthNB, dst);
+ srcA += 2 * srcRowBytes;
+ srcB += 2 * srcRowBytes;
+ dst += dstRowBytes;
+ }
+
+ /* This is ugly but probably won't be used much */
+ if (border > 0) {
+ /* fill in dest border */
+ /* lower-left border pixel */
+ MEMCPY(dstPtr, srcPtr, bpt);
+ /* lower-right border pixel */
+ MEMCPY(dstPtr + (dstWidth - 1) * bpt,
+ srcPtr + (srcWidth - 1) * bpt, bpt);
+ /* upper-left border pixel */
+ MEMCPY(dstPtr + dstWidth * (dstHeight - 1) * bpt,
+ srcPtr + srcWidth * (srcHeight - 1) * bpt, bpt);
+ /* upper-right border pixel */
+ MEMCPY(dstPtr + (dstWidth * dstHeight - 1) * bpt,
+ srcPtr + (srcWidth * srcHeight - 1) * bpt, bpt);
+ /* lower border */
+ do_row(format, srcWidthNB,
+ srcPtr + bpt,
+ srcPtr + bpt,
+ dstWidthNB, dstPtr + bpt);
+ /* upper border */
+ do_row(format, srcWidthNB,
+ srcPtr + (srcWidth * (srcHeight - 1) + 1) * bpt,
+ srcPtr + (srcWidth * (srcHeight - 1) + 1) * bpt,
+ dstWidthNB,
+ dstPtr + (dstWidth * (dstHeight - 1) + 1) * bpt);
+ /* left and right borders */
+ if (srcHeight == dstHeight) {
+ /* copy border pixel from src to dst */
+ for (row = 1; row < srcHeight; row++) {
+ MEMCPY(dstPtr + dstWidth * row * bpt,
+ srcPtr + srcWidth * row * bpt, bpt);
+ MEMCPY(dstPtr + (dstWidth * row + dstWidth - 1) * bpt,
+ srcPtr + (srcWidth * row + srcWidth - 1) * bpt, bpt);
+ }
+ }
+ else {
+ /* average two src pixels each dest pixel */
+ for (row = 0; row < dstHeightNB; row += 2) {
+ do_row(format, 1,
+ srcPtr + (srcWidth * (row * 2 + 1)) * bpt,
+ srcPtr + (srcWidth * (row * 2 + 2)) * bpt,
+ 1, dstPtr + (dstWidth * row + 1) * bpt);
+ do_row(format, 1,
+ srcPtr + (srcWidth * (row * 2 + 1) + srcWidth - 1) * bpt,
+ srcPtr + (srcWidth * (row * 2 + 2) + srcWidth - 1) * bpt,
+ 1, dstPtr + (dstWidth * row + 1 + dstWidth - 1) * bpt);
+ }
+ }
+ }
+ }
+}
+
+
/**
* For GL_SGIX_generate_mipmap:
* Generate a complete set of mipmaps from texObj's base-level image.
@@ -803,7 +934,6 @@ make_3d_mipmap(const struct gl_texture_format *format, GLint border,
*/
void
_mesa_generate_mipmap(GLcontext *ctx, GLenum target,
- const struct gl_texture_unit *texUnit,
struct gl_texture_object *texObj)
{
const struct gl_texture_image *srcImage;
@@ -827,7 +957,8 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
GLint components, size;
GLchan *dst;
- assert(texObj->Target == GL_TEXTURE_2D);
+ assert(texObj->Target == GL_TEXTURE_2D ||
+ texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
if (srcImage->_BaseFormat == GL_RGB) {
convertFormat = &_mesa_texformat_rgb;
@@ -897,13 +1028,15 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
else {
dstWidth = srcWidth; /* can't go smaller */
}
- if (srcHeight - 2 * border > 1) {
+ if ((srcHeight - 2 * border > 1) &&
+ (texObj->Target != GL_TEXTURE_1D_ARRAY_EXT)) {
dstHeight = (srcHeight - 2 * border) / 2 + 2 * border;
}
else {
dstHeight = srcHeight; /* can't go smaller */
}
- if (srcDepth - 2 * border > 1) {
+ if ((srcDepth - 2 * border > 1) &&
+ (texObj->Target != GL_TEXTURE_2D_ARRAY_EXT)) {
dstDepth = (srcDepth - 2 * border) / 2 + 2 * border;
}
else {
@@ -999,13 +1132,28 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
make_2d_mipmap(convertFormat, border,
- srcWidth, srcHeight, srcData,
- dstWidth, dstHeight, dstData);
+ srcWidth, srcHeight, srcData, srcImage->RowStride,
+ dstWidth, dstHeight, dstData, dstImage->RowStride);
break;
case GL_TEXTURE_3D:
make_3d_mipmap(convertFormat, border,
- srcWidth, srcHeight, srcDepth, srcData,
- dstWidth, dstHeight, dstDepth, dstData);
+ srcWidth, srcHeight, srcDepth,
+ srcData, srcImage->RowStride,
+ dstWidth, dstHeight, dstDepth,
+ dstData, dstImage->RowStride);
+ break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ make_1d_stack_mipmap(convertFormat, border,
+ srcWidth, srcData, srcImage->RowStride,
+ dstWidth, dstHeight,
+ dstData, dstImage->RowStride);
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ make_2d_stack_mipmap(convertFormat, border,
+ srcWidth, srcHeight,
+ srcData, srcImage->RowStride,
+ dstWidth, dstHeight,
+ dstDepth, dstData, dstImage->RowStride);
break;
case GL_TEXTURE_RECTANGLE_NV:
/* no mipmaps, do nothing */
diff --git a/src/mesa/main/mipmap.h b/src/mesa/main/mipmap.h
index df786032838..46e16902c86 100644
--- a/src/mesa/main/mipmap.h
+++ b/src/mesa/main/mipmap.h
@@ -30,7 +30,6 @@
extern void
_mesa_generate_mipmap(GLcontext *ctx, GLenum target,
- const struct gl_texture_unit *texUnit,
struct gl_texture_object *texObj);
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 96c3515dd2c..04da767ec91 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -7,7 +7,7 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.3
+ * Version: 6.5.3
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -38,8 +38,8 @@
#include "glheader.h"
#include <GL/internal/glcore.h> /* __GLcontextModes (GLvisual) */
#include "config.h" /* Hardwired parameters */
-#include "glapitable.h"
-#include "glthread.h"
+#include "glapi/glapitable.h"
+#include "glapi/glthread.h"
#include "math/m_matrix.h" /* GLmatrix */
#include "bitset.h"
@@ -917,7 +917,6 @@ struct gl_line_attrib
GLushort StipplePattern; /**< Stipple pattern */
GLint StippleFactor; /**< Stipple repeat factor */
GLfloat Width; /**< Line width */
- GLfloat _Width; /**< Clamped Line width */
};
@@ -1063,7 +1062,6 @@ struct gl_point_attrib
{
GLboolean SmoothFlag; /**< True if GL_POINT_SMOOTH is enabled */
GLfloat Size; /**< User-specified point size */
- GLfloat _Size; /**< Size clamped to user limits */
GLfloat Params[3]; /**< GL_EXT_point_parameters */
GLfloat MinSize, MaxSize; /**< GL_EXT_point_parameters */
GLfloat Threshold; /**< GL_EXT_point_parameters */
@@ -1127,17 +1125,19 @@ struct gl_stencil_attrib
};
-#define NUM_TEXTURE_TARGETS 5 /* 1D, 2D, 3D, CUBE and RECT */
+#define NUM_TEXTURE_TARGETS 7 /* 1D, 2D, 3D, CUBE, RECT, 1D_STACK, and 2D_STACK */
/**
* An index for each type of texture object
*/
/*@{*/
-#define TEXTURE_1D_INDEX 0
-#define TEXTURE_2D_INDEX 1
-#define TEXTURE_3D_INDEX 2
-#define TEXTURE_CUBE_INDEX 3
-#define TEXTURE_RECT_INDEX 4
+#define TEXTURE_1D_INDEX 0
+#define TEXTURE_2D_INDEX 1
+#define TEXTURE_3D_INDEX 2
+#define TEXTURE_CUBE_INDEX 3
+#define TEXTURE_RECT_INDEX 4
+#define TEXTURE_1D_ARRAY_INDEX 5
+#define TEXTURE_2D_ARRAY_INDEX 6
/*@}*/
/**
@@ -1145,11 +1145,13 @@ struct gl_stencil_attrib
* Used for Texture.Unit[]._ReallyEnabled flags.
*/
/*@{*/
-#define TEXTURE_1D_BIT (1 << TEXTURE_1D_INDEX)
-#define TEXTURE_2D_BIT (1 << TEXTURE_2D_INDEX)
-#define TEXTURE_3D_BIT (1 << TEXTURE_3D_INDEX)
-#define TEXTURE_CUBE_BIT (1 << TEXTURE_CUBE_INDEX)
-#define TEXTURE_RECT_BIT (1 << TEXTURE_RECT_INDEX)
+#define TEXTURE_1D_BIT (1 << TEXTURE_1D_INDEX)
+#define TEXTURE_2D_BIT (1 << TEXTURE_2D_INDEX)
+#define TEXTURE_3D_BIT (1 << TEXTURE_3D_INDEX)
+#define TEXTURE_CUBE_BIT (1 << TEXTURE_CUBE_INDEX)
+#define TEXTURE_RECT_BIT (1 << TEXTURE_RECT_INDEX)
+#define TEXTURE_1D_ARRAY_BIT (1 << TEXTURE_1D_ARRAY_INDEX)
+#define TEXTURE_2D_ARRAY_BIT (1 << TEXTURE_2D_ARRAY_INDEX)
/*@}*/
@@ -1286,15 +1288,22 @@ struct gl_texture_format
* GL_DEPTH_COMPONENT.
*/
GLenum DataType; /**< GL_FLOAT or GL_UNSIGNED_NORMALIZED_ARB */
- GLubyte RedBits; /**< Bits per texel component */
- GLubyte GreenBits; /**< These are just rough approximations for */
- GLubyte BlueBits; /**< compressed texture formats. */
+
+ /**
+ * Bits per texel component. These are just rough approximations
+ * for compressed texture formats.
+ */
+ /*@{*/
+ GLubyte RedBits;
+ GLubyte GreenBits;
+ GLubyte BlueBits;
GLubyte AlphaBits;
GLubyte LuminanceBits;
GLubyte IntensityBits;
GLubyte IndexBits;
GLubyte DepthBits;
GLubyte StencilBits; /**< GL_EXT_packed_depth_stencil */
+ /*@}*/
GLuint TexelBytes; /**< Bytes per texel, 0 if compressed format */
@@ -1316,8 +1325,6 @@ struct gl_texture_format
};
-#define MAX_3D_TEXTURE_SIZE (1 << (MAX_3D_TEXTURE_LEVELS - 1))
-
/**
* Texture image state. Describes the dimensions of a texture image,
* the texel format and pointers to Texel Fetch functions.
@@ -1358,7 +1365,7 @@ struct gl_texture_image
GLboolean IsCompressed; /**< GL_ARB_texture_compression */
GLuint CompressedSize; /**< GL_ARB_texture_compression */
- GLuint RowStride; /**< == Width unless IsClientData and padded */
+ GLuint RowStride; /**< Padded width in units of texels */
GLuint *ImageOffsets; /**< if 3D texture: array [Depth] of offsets to
each 2D slice in 'Data', in texels */
GLvoid *Data; /**< Image data, accessed via FetchTexel() */
@@ -1382,7 +1389,7 @@ struct gl_texture_image
#define FACE_NEG_Y 3
#define FACE_POS_Z 4
#define FACE_NEG_Z 5
-#define MAX_FACES 6
+#define MAX_FACES 6
/*@}*/
@@ -1416,11 +1423,15 @@ struct gl_texture_object
GLfloat ShadowAmbient; /**< GL_ARB_shadow_ambient */
GLenum CompareMode; /**< GL_ARB_shadow */
GLenum CompareFunc; /**< GL_ARB_shadow */
+ GLenum _Function; /**< Comparison function derived from
+ * \c CompareOperator, \c CompareMode, and
+ * \c CompareFunc.
+ */
GLenum DepthMode; /**< GL_ARB_depth_texture */
GLint _MaxLevel; /**< actual max mipmap level (q in the spec) */
GLfloat _MaxLambda; /**< = _MaxLevel - BaseLevel (q - b in spec) */
GLboolean GenerateMipmap; /**< GL_SGIS_generate_mipmap */
- GLboolean Complete; /**< Is texture object complete? */
+ GLboolean _Complete; /**< Is texture object complete? */
/** Actual texture images, indexed by [cube face] and [mipmap level] */
struct gl_texture_image *Image[MAX_FACES][MAX_TEXTURE_LEVELS];
@@ -1487,7 +1498,7 @@ struct gl_texture_unit
GLbitfield _GenBitT;
GLbitfield _GenBitR;
GLbitfield _GenBitQ;
- GLbitfield _GenFlags; /**< bitwise or of GenBit[STRQ] */
+ GLbitfield _GenFlags; /**< bitwise or of _GenBit[STRQ] */
GLfloat ObjectPlaneS[4];
GLfloat ObjectPlaneT[4];
GLfloat ObjectPlaneR[4];
@@ -1520,28 +1531,30 @@ struct gl_texture_unit
struct gl_texture_object *Current3D;
struct gl_texture_object *CurrentCubeMap; /**< GL_ARB_texture_cube_map */
struct gl_texture_object *CurrentRect; /**< GL_NV_texture_rectangle */
+ struct gl_texture_object *Current1DArray; /**< GL_MESA_texture_array */
+ struct gl_texture_object *Current2DArray; /**< GL_MESA_texture_array */
struct gl_texture_object *_Current; /**< Points to really enabled tex obj */
- /* GL_SGI_texture_color_table */
+ /** GL_SGI_texture_color_table */
+ /*@{*/
struct gl_color_table ColorTable;
struct gl_color_table ProxyColorTable;
GLboolean ColorTableEnabled;
+ /*@}*/
};
-struct texenvprog_cache_item {
- GLuint hash;
- void *key;
- struct gl_fragment_program *data;
- struct texenvprog_cache_item *next;
-};
-struct texenvprog_cache {
+struct texenvprog_cache_item;
+
+struct texenvprog_cache
+{
struct texenvprog_cache_item **items;
GLuint size, n_items;
GLcontext *ctx;
};
+
/**
* Texture attribute group (GL_TEXTURE_BIT).
*/
@@ -1561,11 +1574,8 @@ struct gl_texture_attrib
struct gl_texture_unit Unit[MAX_TEXTURE_UNITS];
- struct gl_texture_object *Proxy1D;
- struct gl_texture_object *Proxy2D;
- struct gl_texture_object *Proxy3D;
- struct gl_texture_object *ProxyCubeMap;
- struct gl_texture_object *ProxyRect;
+ /** Proxy texture objects */
+ struct gl_texture_object *ProxyTex[NUM_TEXTURE_TARGETS];
/** GL_EXT_shared_texture_palette */
GLboolean SharedPalette;
@@ -1853,6 +1863,7 @@ enum register_file
/** Vertex and fragment instructions */
struct prog_instruction;
struct gl_program_parameter_list;
+struct gl_uniform_list;
/**
@@ -1872,6 +1883,8 @@ struct gl_program
GLbitfield InputsRead; /**< Bitmask of which input regs are read */
GLbitfield OutputsWritten; /**< Bitmask of which output regs are written to */
GLbitfield TexturesUsed[MAX_TEXTURE_IMAGE_UNITS]; /**< TEXTURE_x_BIT bitmask */
+ GLbitfield SamplersUsed; /**< Bitfield of which samplers are used */
+ GLbitfield ShadowSamplers; /**< Texture units used for shadow sampling. */
/** Named parameters, constants, etc. from program text */
struct gl_program_parameter_list *Parameters;
@@ -1883,6 +1896,11 @@ struct gl_program
/** Vertex program user-defined attributes */
struct gl_program_parameter_list *Attributes;
+ /** Map from sampler unit to texture unit (set by glUniform1i()) */
+ GLubyte SamplerUnits[MAX_SAMPLERS];
+ /** Which texture target is being sampled (TEXTURE_1D/2D/3D/etc_INDEX) */
+ GLubyte SamplerTargets[MAX_SAMPLERS];
+
/** Logical counts */
/*@{*/
GLuint NumInstructions;
@@ -2075,7 +2093,7 @@ struct gl_query_state
/**
- * A GLSL shader object.
+ * A GLSL vertex or fragment shader object.
*/
struct gl_shader
{
@@ -2093,7 +2111,8 @@ struct gl_shader
/**
- * A GLSL program object. Basically a linked collection of "shaders".
+ * A GLSL program object.
+ * Basically a linked collection of vertex and fragment shaders.
*/
struct gl_shader_program
{
@@ -2108,7 +2127,7 @@ struct gl_shader_program
/* post-link info: */
struct gl_vertex_program *VertexProgram; /**< Linked vertex program */
struct gl_fragment_program *FragmentProgram; /**< Linked fragment prog */
- struct gl_program_parameter_list *Uniforms; /**< Plus constants, etc */
+ struct gl_uniform_list *Uniforms;
struct gl_program_parameter_list *Varying;
struct gl_program_parameter_list *Attributes; /**< Vertex attributes */
GLboolean LinkStatus; /**< GL_LINK_STATUS */
@@ -2150,6 +2169,8 @@ struct gl_shared_state
struct gl_texture_object *Default3D;
struct gl_texture_object *DefaultCubeMap;
struct gl_texture_object *DefaultRect;
+ struct gl_texture_object *Default1DArray;
+ struct gl_texture_object *Default2DArray;
/*@}*/
/**
@@ -2159,22 +2180,21 @@ struct gl_shared_state
* \todo Improve the granularity of locking.
*/
/*@{*/
- _glthread_Mutex TexMutex; /**< texobj thread safety */
- GLuint TextureStateStamp; /**< state notification for shared tex */
+ _glthread_Mutex TexMutex; /**< texobj thread safety */
+ GLuint TextureStateStamp; /**< state notification for shared tex */
/*@}*/
-
/**
* \name Vertex/fragment programs
*/
/*@{*/
struct _mesa_HashTable *Programs; /**< All vertex/fragment programs */
#if FEATURE_ARB_vertex_program
- struct gl_program *DefaultVertexProgram;
+ struct gl_vertex_program *DefaultVertexProgram;
#endif
#if FEATURE_ARB_fragment_program
- struct gl_program *DefaultFragmentProgram;
+ struct gl_fragment_program *DefaultFragmentProgram;
#endif
/*@}*/
@@ -2316,17 +2336,24 @@ struct gl_renderbuffer
*/
struct gl_renderbuffer_attachment
{
- GLenum Type; /* GL_NONE or GL_TEXTURE or GL_RENDERBUFFER_EXT */
+ GLenum Type; /**< \c GL_NONE or \c GL_TEXTURE or \c GL_RENDERBUFFER_EXT */
GLboolean Complete;
- /* IF Type == GL_RENDERBUFFER_EXT: */
+ /**
+ * If \c Type is \c GL_RENDERBUFFER_EXT, this stores a pointer to the
+ * application supplied renderbuffer object.
+ */
struct gl_renderbuffer *Renderbuffer;
- /* IF Type == GL_TEXTURE: */
+ /**
+ * If \c Type is \c GL_TEXTURE, this stores a pointer to the application
+ * supplied texture object.
+ */
struct gl_texture_object *Texture;
- GLuint TextureLevel;
- GLuint CubeMapFace; /* 0 .. 5, for cube map textures */
- GLuint Zoffset; /* for 3D textures */
+ GLuint TextureLevel; /**< Attached mipmap level. */
+ GLuint CubeMapFace; /**< 0 .. 5, for cube map textures. */
+ GLuint Zoffset; /**< Slice for 3D textures, or layer for both 1D
+ * and 2D array textures */
};
@@ -2374,13 +2401,11 @@ struct gl_framebuffer
GLenum ColorDrawBuffer[MAX_DRAW_BUFFERS];
GLenum ColorReadBuffer;
- /* These are computed from ColorDrawBuffer and ColorReadBuffer */
- GLbitfield _ColorDrawBufferMask[MAX_DRAW_BUFFERS]; /* Mask of BUFFER_BIT_* flags */
+ /** Computed from ColorDraw/ReadBuffer above */
+ GLuint _NumColorDrawBuffers;
+ GLint _ColorDrawBufferIndexes[MAX_DRAW_BUFFERS]; /**< BUFFER_x or -1 */
GLint _ColorReadBufferIndex; /* -1 = None */
-
- /* These are computed from _ColorDrawBufferMask and _ColorReadBufferIndex */
- GLuint _NumColorDrawBuffers[MAX_DRAW_BUFFERS];
- struct gl_renderbuffer *_ColorDrawBuffers[MAX_DRAW_BUFFERS][4];
+ struct gl_renderbuffer *_ColorDrawBuffers[MAX_DRAW_BUFFERS];
struct gl_renderbuffer *_ColorReadBuffer;
/** The Actual depth/stencil buffers to use. May be wrappers around the
@@ -2432,6 +2457,7 @@ struct gl_constants
GLint MaxTextureLevels; /**< Maximum number of allowed mipmap levels. */
GLint Max3DTextureLevels; /**< Maximum number of allowed mipmap levels for 3D texture targets. */
GLint MaxCubeTextureLevels; /**< Maximum number of allowed mipmap levels for GL_ARB_texture_cube_map */
+ GLint MaxArrayTextureLayers; /**< Maximum number of layers in an array texture. */
GLint MaxTextureRectSize; /* GL_NV_texture_rectangle */
GLuint MaxTextureCoordUnits;
GLuint MaxTextureImageUnits;
@@ -2491,6 +2517,7 @@ struct gl_extensions
GLboolean ARB_depth_texture;
GLboolean ARB_draw_buffers;
GLboolean ARB_fragment_program;
+ GLboolean ARB_fragment_program_shadow;
GLboolean ARB_fragment_shader;
GLboolean ARB_half_float_pixel;
GLboolean ARB_imaging;
@@ -2580,6 +2607,7 @@ struct gl_extensions
GLboolean MESA_program_debug;
GLboolean MESA_resize_buffers;
GLboolean MESA_ycbcr_texture;
+ GLboolean MESA_texture_array;
GLboolean NV_blend_square;
GLboolean NV_fragment_program;
GLboolean NV_light_max_exponent;
@@ -3016,7 +3044,10 @@ struct __GLcontextRec
/** \name Derived state */
/*@{*/
- GLbitfield _TriangleCaps; /**< bitwise-or of DD_* flags */
+ /** Bitwise-or of DD_* flags. Note that this bitfield may be used before
+ * state validation so they need to always be current.
+ */
+ GLbitfield _TriangleCaps;
GLbitfield _ImageTransferState;/**< bitwise-or of IMAGE_*_BIT flags */
GLfloat _EyeZDir[3];
GLfloat _ModelViewInvScale;
diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c
index 5fa905ffc6e..1458c90ab97 100644
--- a/src/mesa/main/points.c
+++ b/src/mesa/main/points.c
@@ -5,7 +5,7 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.3
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -57,10 +57,6 @@ _mesa_PointSize( GLfloat size )
FLUSH_VERTICES(ctx, _NEW_POINT);
ctx->Point.Size = size;
- /* _Size is only used for non-attenuated path */
- ctx->Point._Size = CLAMP(ctx->Point.Size,
- ctx->Point.MinSize,
- ctx->Point.MaxSize);
if (ctx->Driver.PointSize)
ctx->Driver.PointSize(ctx, size);
@@ -124,7 +120,6 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
COPY_3V(ctx->Point.Params, params);
-
ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0 ||
ctx->Point.Params[1] != 0.0 ||
ctx->Point.Params[2] != 0.0);
@@ -151,10 +146,6 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
ctx->Point.MinSize = params[0];
- /* re-clamp _Size */
- ctx->Point._Size = CLAMP(ctx->Point.Size,
- ctx->Point.MinSize,
- ctx->Point.MaxSize);
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
@@ -173,10 +164,6 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
ctx->Point.MaxSize = params[0];
- /* re-clamp _Size */
- ctx->Point._Size = CLAMP(ctx->Point.Size,
- ctx->Point.MinSize,
- ctx->Point.MaxSize);
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
@@ -272,7 +259,6 @@ _mesa_init_point(GLcontext *ctx)
ctx->Point.SmoothFlag = GL_FALSE;
ctx->Point.Size = 1.0;
- ctx->Point._Size = 1.0;
ctx->Point.Params[0] = 1.0;
ctx->Point.Params[1] = 0.0;
ctx->Point.Params[2] = 0.0;
diff --git a/src/mesa/main/sources b/src/mesa/main/sources
deleted file mode 100644
index dfcff89e4b6..00000000000
--- a/src/mesa/main/sources
+++ /dev/null
@@ -1,138 +0,0 @@
-# List of source files in this directory used for X.org xserver build
-MESA_MAIN_SOURCES = \
-accum.c \
-api_arrayelt.c \
-api_loopback.c \
-api_noop.c \
-api_validate.c \
-arrayobj.c \
-attrib.c \
-blend.c \
-bufferobj.c \
-buffers.c \
-clip.c \
-colortab.c \
-context.c \
-convolve.c \
-debug.c \
-depth.c \
-depthstencil.c \
-dlist.c \
-drawpix.c \
-enable.c \
-enums.c \
-eval.c \
-execmem.c \
-extensions.c \
-fbobject.c \
-feedback.c \
-fog.c \
-framebuffer.c \
-get.c \
-getstring.c \
-hash.c \
-hint.c \
-histogram.c \
-image.c \
-imports.c \
-light.c \
-lines.c \
-matrix.c \
-mipmap.c \
-mm.c \
-occlude.c \
-pixel.c \
-points.c \
-polygon.c \
-rastpos.c \
-rbadaptors.c \
-renderbuffer.c \
-state.c \
-stencil.c \
-texcompress.c \
-texcompress_fxt1.c \
-texcompress_s3tc.c \
-texenvprogram.c \
-texformat.c \
-teximage.c \
-texobj.c \
-texrender.c \
-texstate.c \
-texstore.c \
-varray.c \
-$(VSNPRINTF_SOURCES) \
-vtxfmt.c
-
-MESA_VSNPRINTF_SOURCES = \
-vsnprintf.c
-
-MESA_MAIN_HEADERS = \
-accum.h \
-api_arrayelt.h \
-api_eval.h \
-api_loopback.h \
-api_noop.h \
-api_validate.h \
-arrayobj.h \
-attrib.h \
-bitset.h \
-blend.h \
-bufferobj.h \
-buffers.h \
-clip.h \
-colormac.h \
-colortab.h \
-config.h \
-context.h \
-convolve.h \
-dd.h \
-debug.h \
-depth.h \
-depthstencil.h \
-dlist.h \
-drawpix.h \
-enable.h \
-enums.h \
-eval.h \
-extensions.h \
-fbobject.h \
-feedback.h \
-fog.h \
-framebuffer.h \
-get.h \
-glheader.h \
-hash.h \
-hint.h \
-histogram.h \
-image.h \
-imports.h \
-light.h \
-lines.h \
-macros.h \
-matrix.h \
-mipmap.h \
-mm.h \
-mtypes.h \
-occlude.h \
-pixel.h \
-points.h \
-polygon.h \
-rastpos.h \
-rbadaptors.h \
-renderbuffer.h \
-simple_list.h \
-state.h \
-stencil.h \
-texcompress.h \
-texenvprogram.h \
-texformat.h \
-texformat_tmp.h \
-teximage.h \
-texobj.h \
-texrender.h \
-texstate.h \
-texstore.h \
-varray.h \
-version.h \
-vtxfmt.h \
-vtxfmt_tmp.h
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index 8266e4506fd..1c73c5c462b 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -35,10 +35,10 @@
#include "accum.h"
#include "api_loopback.h"
#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program
-#include "arbprogram.h"
+#include "shader/arbprogram.h"
#endif
#if FEATURE_ATI_fragment_shader
-#include "atifragshader.h"
+#include "shader/atifragshader.h"
#endif
#include "attrib.h"
#include "blend.h"
@@ -85,18 +85,18 @@
#include "mtypes.h"
#include "varray.h"
#if FEATURE_NV_vertex_program
-#include "nvprogram.h"
+#include "shader/nvprogram.h"
#endif
#if FEATURE_NV_fragment_program
-#include "nvprogram.h"
-#include "program.h"
+#include "shader/nvprogram.h"
+#include "shader/program.h"
#include "texenvprogram.h"
#endif
#if FEATURE_ARB_shader_objects
#include "shaders.h"
#endif
#include "debug.h"
-#include "dispatch.h"
+#include "glapi/dispatch.h"
@@ -535,10 +535,10 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_GetVertexAttribPointervNV(exec, _mesa_GetVertexAttribPointervNV);
SET_IsProgramNV(exec, _mesa_IsProgramARB);
SET_LoadProgramNV(exec, _mesa_LoadProgramNV);
- SET_ProgramParameter4dNV(exec, _mesa_ProgramParameter4dNV);
- SET_ProgramParameter4dvNV(exec, _mesa_ProgramParameter4dvNV);
- SET_ProgramParameter4fNV(exec, _mesa_ProgramParameter4fNV);
- SET_ProgramParameter4fvNV(exec, _mesa_ProgramParameter4fvNV);
+ SET_ProgramEnvParameter4dARB(exec, _mesa_ProgramEnvParameter4dARB); /* alias to ProgramParameter4dNV */
+ SET_ProgramEnvParameter4dvARB(exec, _mesa_ProgramEnvParameter4dvARB); /* alias to ProgramParameter4dvNV */
+ SET_ProgramEnvParameter4fARB(exec, _mesa_ProgramEnvParameter4fARB); /* alias to ProgramParameter4fNV */
+ SET_ProgramEnvParameter4fvARB(exec, _mesa_ProgramEnvParameter4fvARB); /* alias to ProgramParameter4fvNV */
SET_ProgramParameters4dvNV(exec, _mesa_ProgramParameters4dvNV);
SET_ProgramParameters4fvNV(exec, _mesa_ProgramParameters4fvNV);
SET_TrackMatrixNV(exec, _mesa_TrackMatrixNV);
@@ -813,6 +813,11 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_ProgramLocalParameters4fvEXT(exec, _mesa_ProgramLocalParameters4fvEXT);
#endif
+ /* GL_MESA_texture_array / GL_EXT_texture_array */
+#if FEATURE_EXT_framebuffer_object
+ SET_FramebufferTextureLayerEXT(exec, _mesa_FramebufferTextureLayerEXT);
+#endif
+
/* GL_ATI_separate_stencil */
SET_StencilFuncSeparateATI(exec, _mesa_StencilFuncSeparateATI);
}
@@ -825,7 +830,7 @@ _mesa_init_exec_table(struct _glapi_table *exec)
static void
-update_separate_specular( GLcontext *ctx )
+update_separate_specular(GLcontext *ctx)
{
if (NEED_SECONDARY_COLOR(ctx))
ctx->_TriangleCaps |= DD_SEPARATE_SPECULAR;
@@ -973,50 +978,60 @@ update_program(GLcontext *ctx)
* 3. Programs derived from fixed-function state.
*/
- ctx->FragmentProgram._Current = NULL;
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
if (shProg && shProg->LinkStatus) {
/* Use shader programs */
/* XXX this isn't quite right, since we may have either a vertex
* _or_ fragment shader (not always both).
*/
- ctx->VertexProgram._Current = shProg->VertexProgram;
- ctx->FragmentProgram._Current = shProg->FragmentProgram;
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current,
+ shProg->VertexProgram);
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current,
+ shProg->FragmentProgram);
}
else {
if (ctx->VertexProgram._Enabled) {
/* use user-defined vertex program */
- ctx->VertexProgram._Current = ctx->VertexProgram.Current;
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current,
+ ctx->VertexProgram.Current);
}
else if (ctx->VertexProgram._MaintainTnlProgram) {
/* Use vertex program generated from fixed-function state.
* The _Current pointer will get set in
* _tnl_UpdateFixedFunctionProgram() later if appropriate.
*/
- ctx->VertexProgram._Current = NULL;
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL);
}
else {
/* no vertex program */
- ctx->VertexProgram._Current = NULL;
+ _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL);
}
if (ctx->FragmentProgram._Enabled) {
/* use user-defined vertex program */
- ctx->FragmentProgram._Current = ctx->FragmentProgram.Current;
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current,
+ ctx->FragmentProgram.Current);
}
else if (ctx->FragmentProgram._MaintainTexEnvProgram) {
/* Use fragment program generated from fixed-function state.
* The _Current pointer will get set in _mesa_UpdateTexEnvProgram()
* later if appropriate.
*/
- ctx->FragmentProgram._Current = NULL;
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
}
else {
/* no fragment program */
- ctx->FragmentProgram._Current = NULL;
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
}
}
+ if (ctx->VertexProgram._Current)
+ assert(ctx->VertexProgram._Current->Base.Parameters);
+ if (ctx->FragmentProgram._Current)
+ assert(ctx->FragmentProgram._Current->Base.Parameters);
+
+
ctx->FragmentProgram._Active = ctx->FragmentProgram._Enabled;
if (ctx->FragmentProgram._MaintainTexEnvProgram &&
!ctx->FragmentProgram._Enabled) {
@@ -1063,19 +1078,17 @@ update_color(GLcontext *ctx)
* in ctx->_TriangleCaps if needed.
*/
static void
-update_polygon( GLcontext *ctx )
+update_polygon(GLcontext *ctx)
{
ctx->_TriangleCaps &= ~(DD_TRI_CULL_FRONT_BACK | DD_TRI_OFFSET);
if (ctx->Polygon.CullFlag && ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK)
ctx->_TriangleCaps |= DD_TRI_CULL_FRONT_BACK;
- /* Any Polygon offsets enabled? */
- if (ctx->Polygon.OffsetPoint ||
- ctx->Polygon.OffsetLine ||
- ctx->Polygon.OffsetFill) {
+ if ( ctx->Polygon.OffsetPoint
+ || ctx->Polygon.OffsetLine
+ || ctx->Polygon.OffsetFill)
ctx->_TriangleCaps |= DD_TRI_OFFSET;
- }
}
@@ -1097,7 +1110,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state)
if (1/*new_state & _NEW_POINT*/) {
if (ctx->Point.SmoothFlag)
ctx->_TriangleCaps |= DD_POINT_SMOOTH;
- if (ctx->Point._Size != 1.0F)
+ if (ctx->Point.Size != 1.0F)
ctx->_TriangleCaps |= DD_POINT_SIZE;
if (ctx->Point._Attenuated)
ctx->_TriangleCaps |= DD_POINT_ATTEN;
@@ -1111,7 +1124,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state)
ctx->_TriangleCaps |= DD_LINE_SMOOTH;
if (ctx->Line.StippleFlag)
ctx->_TriangleCaps |= DD_LINE_STIPPLE;
- if (ctx->Line._Width != 1.0)
+ if (ctx->Line.Width != 1.0)
ctx->_TriangleCaps |= DD_LINE_WIDTH;
}
diff --git a/src/mesa/main/texcompress_fxt1.c b/src/mesa/main/texcompress_fxt1.c
index b6991f45ed8..45f344b0c52 100644
--- a/src/mesa/main/texcompress_fxt1.c
+++ b/src/mesa/main/texcompress_fxt1.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -298,22 +298,17 @@ const struct gl_texture_format _mesa_texformat_rgba_fxt1 = {
/*
* Define a 64-bit unsigned integer type and macros
*/
-#if defined(__GNUC__) && !defined(__cplusplus)
+#ifdef GL_EXT_timer_query /* this extensions defines the GLuint64EXT type */
#define FX64_NATIVE 1
-#ifdef __MINGW32__
-typedef unsigned long Fx64;
-#else
-typedef unsigned long long Fx64;
-#endif
-
+typedef GLuint64EXT Fx64;
#define FX64_MOV32(a, b) a = b
#define FX64_OR32(a, b) a |= b
#define FX64_SHL(a, c) a <<= c
-#else /* !__GNUC__ */
+#else /* !GL_EXT_timer_query */
#define FX64_NATIVE 0
@@ -335,7 +330,7 @@ typedef struct {
} \
} while (0)
-#endif /* !__GNUC__ */
+#endif /* !GL_EXT_timer_query */
#define F(i) (GLfloat)1 /* can be used to obtain an oblong metric: 0.30 / 0.59 / 0.11 */
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
index 5f8dc7dc188..512d52704d8 100644
--- a/src/mesa/main/texenvprogram.c
+++ b/src/mesa/main/texenvprogram.c
@@ -28,12 +28,23 @@
#include "glheader.h"
#include "macros.h"
#include "enums.h"
-#include "prog_parameter.h"
-#include "prog_instruction.h"
-#include "prog_print.h"
-#include "prog_statevars.h"
+#include "shader/program.h"
+#include "shader/prog_parameter.h"
+#include "shader/prog_instruction.h"
+#include "shader/prog_print.h"
+#include "shader/prog_statevars.h"
#include "texenvprogram.h"
+
+struct texenvprog_cache_item
+{
+ GLuint hash;
+ void *key;
+ struct gl_fragment_program *data;
+ struct texenvprog_cache_item *next;
+};
+
+
/**
* This MAX is probably a bit generous, but that's OK. There can be
* up to four instructions per texture unit (TEX + 3 for combine),
@@ -57,6 +68,7 @@ struct state_key {
struct {
GLuint enabled:1;
GLuint source_index:3; /* one of TEXTURE_1D/2D/3D/CUBE/RECT_INDEX */
+ GLuint shadow:1;
GLuint ScaleShiftRGB:2;
GLuint ScaleShiftA:2;
@@ -208,6 +220,7 @@ static void make_state_key( GLcontext *ctx, struct state_key *key )
key->unit[i].source_index =
translate_tex_src_bit(texUnit->_ReallyEnabled);
+ key->unit[i].shadow = texUnit->_Current->CompareMode == GL_COMPARE_R_TO_TEXTURE;
key->unit[i].NumArgsRGB = texUnit->_CurrentCombine->_NumArgsRGB;
key->unit[i].NumArgsA = texUnit->_CurrentCombine->_NumArgsA;
@@ -934,11 +947,13 @@ static void load_texture( struct texenv_fragment_program *p, GLuint unit )
/* TODO: Use D0_MASK_XY where possible.
*/
- if (p->state->unit[unit].enabled)
+ if (p->state->unit[unit].enabled) {
p->src_texture[unit] = emit_texld( p, OPCODE_TXP,
tmp, WRITEMASK_XYZW,
unit, dim, texcoord );
- else
+ if (p->state->unit[unit].shadow)
+ p->program->Base.ShadowSamplers |= 1 << unit;
+ } else
p->src_texture[unit] = get_zero(p);
}
}
@@ -1133,7 +1148,7 @@ search_cache(const struct texenvprog_cache *cache,
for (c = cache->items[hash % cache->size]; c; c = c->next) {
if (c->hash == hash && memcmp(c->key, key, keysize) == 0)
- return (struct gl_fragment_program *) c->data;
+ return c->data;
}
return NULL;
@@ -1161,7 +1176,7 @@ static void rehash( struct texenvprog_cache *cache )
cache->size = size;
}
-static void clear_cache( struct texenvprog_cache *cache )
+static void clear_cache(GLcontext *ctx, struct texenvprog_cache *cache)
{
struct texenvprog_cache_item *c, *next;
GLuint i;
@@ -1170,8 +1185,7 @@ static void clear_cache( struct texenvprog_cache *cache )
for (c = cache->items[i]; c; c = next) {
next = c->next;
_mesa_free(c->key);
- cache->ctx->Driver.DeleteProgram(cache->ctx,
- (struct gl_program *) c->data);
+ _mesa_reference_fragprog(ctx, &c->data, NULL);
_mesa_free(c);
}
cache->items[i] = NULL;
@@ -1182,25 +1196,25 @@ static void clear_cache( struct texenvprog_cache *cache )
}
-static void cache_item( struct texenvprog_cache *cache,
+static void cache_item( GLcontext *ctx,
+ struct texenvprog_cache *cache,
GLuint hash,
const struct state_key *key,
- void *data )
+ struct gl_fragment_program *prog)
{
- struct texenvprog_cache_item *c
- = (struct texenvprog_cache_item *) MALLOC(sizeof(*c));
+ struct texenvprog_cache_item *c = CALLOC_STRUCT(texenvprog_cache_item);
c->hash = hash;
c->key = _mesa_malloc(sizeof(*key));
memcpy(c->key, key, sizeof(*key));
- c->data = (struct gl_fragment_program *) data;
+ c->data = prog;
if (cache->n_items > cache->size * 1.5) {
if (cache->size < 1000)
rehash(cache);
else
- clear_cache(cache);
+ clear_cache(ctx, cache);
}
cache->n_items++;
@@ -1243,32 +1257,30 @@ _mesa_UpdateTexEnvProgram( GLcontext *ctx )
/* If a conventional fragment program/shader isn't in effect... */
if (!ctx->FragmentProgram._Enabled &&
(!ctx->Shader.CurrentProgram || !ctx->Shader.CurrentProgram->FragmentProgram)) {
+ struct gl_fragment_program *newProg;
+
make_state_key(ctx, &key);
hash = hash_key(&key);
- ctx->FragmentProgram._Current =
- ctx->FragmentProgram._TexEnvProgram =
- search_cache(&ctx->Texture.env_fp_cache, hash, &key, sizeof(key));
+ newProg = search_cache(&ctx->Texture.env_fp_cache, hash, &key, sizeof(key));
+
+ if (!newProg) {
+ /* create new tex env program */
- if (!ctx->FragmentProgram._TexEnvProgram) {
if (0)
_mesa_printf("Building new texenv proggy for key %x\n", hash);
- /* create new tex env program */
- ctx->FragmentProgram._Current =
- ctx->FragmentProgram._TexEnvProgram =
- (struct gl_fragment_program *)
+ newProg = (struct gl_fragment_program *)
ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0);
- create_new_program(ctx, &key, ctx->FragmentProgram._TexEnvProgram);
+ create_new_program(ctx, &key, newProg);
- cache_item(&ctx->Texture.env_fp_cache, hash, &key,
- ctx->FragmentProgram._TexEnvProgram);
- }
- else {
- if (0)
- _mesa_printf("Found existing texenv program for key %x\n", hash);
+ /* Our ownership of newProg is transferred to the cache */
+ cache_item(ctx, &ctx->Texture.env_fp_cache, hash, &key, newProg);
}
+
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, newProg);
+ _mesa_reference_fragprog(ctx, &ctx->FragmentProgram._TexEnvProgram, newProg);
}
else {
/* _Current pointer has been updated in update_program */
@@ -1298,6 +1310,6 @@ void _mesa_TexEnvProgramCacheInit( GLcontext *ctx )
void _mesa_TexEnvProgramCacheDestroy( GLcontext *ctx )
{
- clear_cache(&ctx->Texture.env_fp_cache);
+ clear_cache(ctx, &ctx->Texture.env_fp_cache);
_mesa_free(ctx->Texture.env_fp_cache.items);
}
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 26d8fbc8def..adf3d375979 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.3
+ * Version: 7.1
*
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
@@ -629,6 +629,8 @@ _mesa_set_tex_image(struct gl_texture_object *tObj,
case GL_TEXTURE_1D:
case GL_TEXTURE_2D:
case GL_TEXTURE_3D:
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ case GL_TEXTURE_2D_ARRAY_EXT:
tObj->Image[0][level] = texImage;
break;
case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
@@ -733,7 +735,9 @@ _mesa_is_proxy_texture(GLenum target)
target == GL_PROXY_TEXTURE_2D ||
target == GL_PROXY_TEXTURE_3D ||
target == GL_PROXY_TEXTURE_CUBE_MAP_ARB ||
- target == GL_PROXY_TEXTURE_RECTANGLE_NV);
+ target == GL_PROXY_TEXTURE_RECTANGLE_NV ||
+ target == GL_PROXY_TEXTURE_1D_ARRAY_EXT ||
+ target == GL_PROXY_TEXTURE_2D_ARRAY_EXT);
}
@@ -756,15 +760,15 @@ _mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit,
case GL_TEXTURE_1D:
return texUnit->Current1D;
case GL_PROXY_TEXTURE_1D:
- return ctx->Texture.Proxy1D;
+ return ctx->Texture.ProxyTex[TEXTURE_1D_INDEX];
case GL_TEXTURE_2D:
return texUnit->Current2D;
case GL_PROXY_TEXTURE_2D:
- return ctx->Texture.Proxy2D;
+ return ctx->Texture.ProxyTex[TEXTURE_2D_INDEX];
case GL_TEXTURE_3D:
return texUnit->Current3D;
case GL_PROXY_TEXTURE_3D:
- return ctx->Texture.Proxy3D;
+ return ctx->Texture.ProxyTex[TEXTURE_3D_INDEX];
case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
@@ -776,13 +780,25 @@ _mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit,
? texUnit->CurrentCubeMap : NULL;
case GL_PROXY_TEXTURE_CUBE_MAP_ARB:
return ctx->Extensions.ARB_texture_cube_map
- ? ctx->Texture.ProxyCubeMap : NULL;
+ ? ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX] : NULL;
case GL_TEXTURE_RECTANGLE_NV:
return ctx->Extensions.NV_texture_rectangle
? texUnit->CurrentRect : NULL;
case GL_PROXY_TEXTURE_RECTANGLE_NV:
return ctx->Extensions.NV_texture_rectangle
- ? ctx->Texture.ProxyRect : NULL;
+ ? ctx->Texture.ProxyTex[TEXTURE_RECT_INDEX] : NULL;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array
+ ? texUnit->Current1DArray : NULL;
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array
+ ? ctx->Texture.ProxyTex[TEXTURE_1D_ARRAY_INDEX] : NULL;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array
+ ? texUnit->Current2DArray : NULL;
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array
+ ? ctx->Texture.ProxyTex[TEXTURE_2D_ARRAY_INDEX] : NULL;
default:
_mesa_problem(NULL, "bad target in _mesa_select_tex_object()");
return NULL;
@@ -848,6 +864,13 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj,
else
return NULL;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
+ return (ctx->Extensions.MESA_texture_array)
+ ? texObj->Image[0][level] : NULL;
+
default:
return NULL;
}
@@ -901,76 +924,106 @@ _mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level)
case GL_PROXY_TEXTURE_1D:
if (level >= ctx->Const.MaxTextureLevels)
return NULL;
- texImage = ctx->Texture.Proxy1D->Image[0][level];
+ texImage = ctx->Texture.ProxyTex[TEXTURE_1D_INDEX]->Image[0][level];
if (!texImage) {
texImage = ctx->Driver.NewTextureImage(ctx);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
return NULL;
}
- ctx->Texture.Proxy1D->Image[0][level] = texImage;
+ ctx->Texture.ProxyTex[TEXTURE_1D_INDEX]->Image[0][level] = texImage;
/* Set the 'back' pointer */
- texImage->TexObject = ctx->Texture.Proxy1D;
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_1D_INDEX];
}
return texImage;
case GL_PROXY_TEXTURE_2D:
if (level >= ctx->Const.MaxTextureLevels)
return NULL;
- texImage = ctx->Texture.Proxy2D->Image[0][level];
+ texImage = ctx->Texture.ProxyTex[TEXTURE_2D_INDEX]->Image[0][level];
if (!texImage) {
texImage = ctx->Driver.NewTextureImage(ctx);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
return NULL;
}
- ctx->Texture.Proxy2D->Image[0][level] = texImage;
+ ctx->Texture.ProxyTex[TEXTURE_2D_INDEX]->Image[0][level] = texImage;
/* Set the 'back' pointer */
- texImage->TexObject = ctx->Texture.Proxy2D;
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_2D_INDEX];
}
return texImage;
case GL_PROXY_TEXTURE_3D:
if (level >= ctx->Const.Max3DTextureLevels)
return NULL;
- texImage = ctx->Texture.Proxy3D->Image[0][level];
+ texImage = ctx->Texture.ProxyTex[TEXTURE_3D_INDEX]->Image[0][level];
if (!texImage) {
texImage = ctx->Driver.NewTextureImage(ctx);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
return NULL;
}
- ctx->Texture.Proxy3D->Image[0][level] = texImage;
+ ctx->Texture.ProxyTex[TEXTURE_3D_INDEX]->Image[0][level] = texImage;
/* Set the 'back' pointer */
- texImage->TexObject = ctx->Texture.Proxy3D;
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_3D_INDEX];
}
return texImage;
case GL_PROXY_TEXTURE_CUBE_MAP:
if (level >= ctx->Const.MaxCubeTextureLevels)
return NULL;
- texImage = ctx->Texture.ProxyCubeMap->Image[0][level];
+ texImage = ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX]->Image[0][level];
if (!texImage) {
texImage = ctx->Driver.NewTextureImage(ctx);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
return NULL;
}
- ctx->Texture.ProxyCubeMap->Image[0][level] = texImage;
+ ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX]->Image[0][level] = texImage;
/* Set the 'back' pointer */
- texImage->TexObject = ctx->Texture.ProxyCubeMap;
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX];
}
return texImage;
case GL_PROXY_TEXTURE_RECTANGLE_NV:
if (level > 0)
return NULL;
- texImage = ctx->Texture.ProxyRect->Image[0][level];
+ texImage = ctx->Texture.ProxyTex[TEXTURE_RECT_INDEX]->Image[0][level];
+ if (!texImage) {
+ texImage = ctx->Driver.NewTextureImage(ctx);
+ if (!texImage) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
+ return NULL;
+ }
+ ctx->Texture.ProxyTex[TEXTURE_RECT_INDEX]->Image[0][level] = texImage;
+ /* Set the 'back' pointer */
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_RECT_INDEX];
+ }
+ return texImage;
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ if (level >= ctx->Const.MaxTextureLevels)
+ return NULL;
+ texImage = ctx->Texture.ProxyTex[TEXTURE_1D_ARRAY_INDEX]->Image[0][level];
if (!texImage) {
texImage = ctx->Driver.NewTextureImage(ctx);
if (!texImage) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
return NULL;
}
- ctx->Texture.ProxyRect->Image[0][level] = texImage;
+ ctx->Texture.ProxyTex[TEXTURE_1D_ARRAY_INDEX]->Image[0][level] = texImage;
/* Set the 'back' pointer */
- texImage->TexObject = ctx->Texture.ProxyRect;
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_1D_ARRAY_INDEX];
+ }
+ return texImage;
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
+ if (level >= ctx->Const.MaxTextureLevels)
+ return NULL;
+ texImage = ctx->Texture.ProxyTex[TEXTURE_2D_ARRAY_INDEX]->Image[0][level];
+ if (!texImage) {
+ texImage = ctx->Driver.NewTextureImage(ctx);
+ if (!texImage) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "proxy texture allocation");
+ return NULL;
+ }
+ ctx->Texture.ProxyTex[TEXTURE_2D_ARRAY_INDEX]->Image[0][level] = texImage;
+ /* Set the 'back' pointer */
+ texImage->TexObject = ctx->Texture.ProxyTex[TEXTURE_2D_ARRAY_INDEX];
}
return texImage;
default:
@@ -998,6 +1051,10 @@ _mesa_max_texture_levels(GLcontext *ctx, GLenum target)
case GL_PROXY_TEXTURE_1D:
case GL_TEXTURE_2D:
case GL_PROXY_TEXTURE_2D:
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
return ctx->Const.MaxTextureLevels;
case GL_TEXTURE_3D:
case GL_PROXY_TEXTURE_3D:
@@ -1240,7 +1297,7 @@ _mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level,
maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
if (width < 2 * border || width > 2 + maxSize ||
(!ctx->Extensions.ARB_texture_non_power_of_two &&
- width > 0 && _mesa_bitcount(width - 2 * border) != 1) ||
+ width >0 && _mesa_bitcount(width - 2 * border) != 1) ||
level >= ctx->Const.MaxTextureLevels) {
/* bad width or level */
return GL_FALSE;
@@ -1296,6 +1353,36 @@ _mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level,
return GL_FALSE;
}
return GL_TRUE;
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
+ if (width < 2 * border || width > 2 + maxSize ||
+ (!ctx->Extensions.ARB_texture_non_power_of_two &&
+ width > 0 && _mesa_bitcount(width - 2 * border) != 1) ||
+ level >= ctx->Const.MaxTextureLevels) {
+ /* bad width or level */
+ return GL_FALSE;
+ }
+
+ if (height < 1 || height > ctx->Const.MaxArrayTextureLayers) {
+ return GL_FALSE;
+ }
+ return GL_TRUE;
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
+ maxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
+ if (width < 2 * border || width > 2 + maxSize ||
+ (!ctx->Extensions.ARB_texture_non_power_of_two &&
+ width > 0 && _mesa_bitcount(width - 2 * border) != 1) ||
+ height < 2 * border || height > 2 + maxSize ||
+ (!ctx->Extensions.ARB_texture_non_power_of_two &&
+ height > 0 && _mesa_bitcount(height - 2 * border) != 1) ||
+ level >= ctx->Const.MaxTextureLevels) {
+ /* bad width or height or level */
+ return GL_FALSE;
+ }
+ if (depth < 1 || depth > ctx->Const.MaxArrayTextureLayers) {
+ return GL_FALSE;
+ }
+ return GL_TRUE;
default:
_mesa_problem(ctx, "Invalid target in _mesa_test_proxy_teximage");
return GL_FALSE;
@@ -1313,7 +1400,10 @@ target_can_be_compressed(GLcontext *ctx, GLenum target)
|| ((ctx->Extensions.ARB_texture_cube_map &&
(target == GL_PROXY_TEXTURE_CUBE_MAP ||
(target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X &&
- target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)))));
+ target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z))))
+ || ((ctx->Extensions.MESA_texture_array &&
+ ((target == GL_PROXY_TEXTURE_2D_ARRAY_EXT) ||
+ (target == GL_TEXTURE_2D_ARRAY_EXT)))));
}
@@ -1416,6 +1506,10 @@ texture_error_check( GLcontext *ctx, GLenum target,
}
proxy_target = GL_PROXY_TEXTURE_RECTANGLE_NV;
}
+ else if (target == GL_PROXY_TEXTURE_1D_ARRAY_EXT ||
+ target == GL_TEXTURE_1D_ARRAY_EXT) {
+ proxy_target = GL_PROXY_TEXTURE_1D_ARRAY_EXT;
+ }
else {
_mesa_error(ctx, GL_INVALID_ENUM, "glTexImage2D(target)");
return GL_TRUE;
@@ -1425,6 +1519,10 @@ texture_error_check( GLcontext *ctx, GLenum target,
if (target == GL_PROXY_TEXTURE_3D || target == GL_TEXTURE_3D) {
proxy_target = GL_PROXY_TEXTURE_3D;
}
+ else if (target == GL_PROXY_TEXTURE_2D_ARRAY_EXT ||
+ target == GL_TEXTURE_2D_ARRAY_EXT) {
+ proxy_target = GL_PROXY_TEXTURE_2D_ARRAY_EXT;
+ }
else {
_mesa_error( ctx, GL_INVALID_ENUM, "glTexImage3D(target)" );
return GL_TRUE;
@@ -1602,13 +1700,25 @@ subtexture_error_check( GLcontext *ctx, GLuint dimensions,
return GL_TRUE;
}
}
+ else if (target == GL_TEXTURE_1D_ARRAY_EXT) {
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" );
+ return GL_TRUE;
+ }
+ }
else if (target != GL_TEXTURE_2D) {
_mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)" );
return GL_TRUE;
}
}
else if (dimensions == 3) {
- if (target != GL_TEXTURE_3D) {
+ if (target == GL_TEXTURE_2D_ARRAY_EXT) {
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage3D(target)" );
+ return GL_TRUE;
+ }
+ }
+ else if (target != GL_TEXTURE_3D) {
_mesa_error( ctx, GL_INVALID_ENUM, "glTexSubImage3D(target)" );
return GL_TRUE;
}
@@ -1853,6 +1963,17 @@ copytexture_error_check( GLcontext *ctx, GLuint dimensions,
format, type,
width, height, 1, border);
}
+ else if (target == GL_TEXTURE_1D_ARRAY_EXT) {
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)");
+ return GL_TRUE;
+ }
+ sizeOK = ctx->Driver.TestProxyTexImage(ctx,
+ GL_PROXY_TEXTURE_1D_ARRAY_EXT,
+ level, internalFormat,
+ format, type,
+ width, height, 1, border);
+ }
else {
_mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)" );
return GL_TRUE;
@@ -1877,7 +1998,7 @@ copytexture_error_check( GLcontext *ctx, GLuint dimensions,
}
if (is_compressed_format(ctx, internalFormat)) {
- if (target != GL_TEXTURE_2D) {
+ if (!target_can_be_compressed(ctx, target)) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glCopyTexImage%d(target)", dimensions);
return GL_TRUE;
@@ -1966,15 +2087,23 @@ copytexsubimage_error_check( GLcontext *ctx, GLuint dimensions,
return GL_TRUE;
}
}
+ else if (target == GL_TEXTURE_1D_ARRAY_EXT) {
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" );
+ return GL_TRUE;
+ }
+ }
else if (target != GL_TEXTURE_2D) {
_mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(target)" );
return GL_TRUE;
}
}
else if (dimensions == 3) {
- if (target != GL_TEXTURE_3D) {
- _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage3D(target)" );
- return GL_TRUE;
+ if (((target != GL_TEXTURE_2D_ARRAY_EXT) ||
+ (!ctx->Extensions.MESA_texture_array))
+ && (target != GL_TEXTURE_3D)) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage3D(target)" );
+ return GL_TRUE;
}
}
@@ -2052,7 +2181,7 @@ copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions,
}
if (teximage->IsCompressed) {
- if (target != GL_TEXTURE_2D) {
+ if (!target_can_be_compressed(ctx, target)) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glCopyTexSubImage%d(target)", dimensions);
return GL_TRUE;
@@ -2335,7 +2464,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,
update_fbo_texture(ctx, texObj, face, level);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -2388,7 +2517,9 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB &&
target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB) ||
(ctx->Extensions.NV_texture_rectangle &&
- target == GL_TEXTURE_RECTANGLE_NV)) {
+ target == GL_TEXTURE_RECTANGLE_NV) ||
+ (ctx->Extensions.MESA_texture_array &&
+ target == GL_TEXTURE_1D_ARRAY_EXT)) {
/* non-proxy target */
struct gl_texture_unit *texUnit;
struct gl_texture_object *texObj;
@@ -2436,7 +2567,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
update_fbo_texture(ctx, texObj, face, level);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -2446,7 +2577,9 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
(target == GL_PROXY_TEXTURE_CUBE_MAP_ARB &&
ctx->Extensions.ARB_texture_cube_map) ||
(target == GL_PROXY_TEXTURE_RECTANGLE_NV &&
- ctx->Extensions.NV_texture_rectangle)) {
+ ctx->Extensions.NV_texture_rectangle) ||
+ (ctx->Extensions.MESA_texture_array &&
+ target == GL_PROXY_TEXTURE_1D_ARRAY_EXT)) {
/* Proxy texture: check for errors and update proxy state */
struct gl_texture_image *texImage;
texImage = _mesa_get_proxy_tex_image(ctx, target, level);
@@ -2455,7 +2588,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
1, border)) {
/* when error, clear all proxy texture image parameters */
if (texImage)
- clear_teximage_fields(ctx->Texture.Proxy2D->Image[0][level]);
+ clear_teximage_fields(ctx->Texture.ProxyTex[TEXTURE_2D_INDEX]->Image[0][level]);
}
else {
/* no error, set the tex image parameters */
@@ -2486,7 +2619,9 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
- if (target == GL_TEXTURE_3D) {
+ if (target == GL_TEXTURE_3D ||
+ (ctx->Extensions.MESA_texture_array &&
+ target == GL_TEXTURE_2D_ARRAY_EXT)) {
/* non-proxy target */
struct gl_texture_unit *texUnit;
struct gl_texture_object *texObj;
@@ -2533,13 +2668,15 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
update_fbo_texture(ctx, texObj, face, level);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
_mesa_unlock_texture(ctx, texObj);
}
- else if (target == GL_PROXY_TEXTURE_3D) {
+ else if (target == GL_PROXY_TEXTURE_3D ||
+ (ctx->Extensions.MESA_texture_array &&
+ target == GL_PROXY_TEXTURE_2D_ARRAY_EXT)) {
/* Proxy texture: check for errors and update proxy state */
struct gl_texture_image *texImage;
texImage = _mesa_get_proxy_tex_image(ctx, target, level);
@@ -2802,7 +2939,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level,
update_fbo_texture(ctx, texObj, face, level);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -2868,7 +3005,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat,
update_fbo_texture(ctx, texObj, face, level);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -3262,7 +3399,7 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
texObj, texImage);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -3359,7 +3496,7 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
texObj, texImage);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -3455,7 +3592,7 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,
texObj, texImage);
/* state update */
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
ctx->NewState |= _NEW_TEXTURE;
}
out:
@@ -3632,7 +3769,7 @@ _mesa_CompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset,
width, height, depth, /*size*/
format, imageSize);
if (error) {
- _mesa_error(ctx, error, "glCompressedTexSubImage2D");
+ _mesa_error(ctx, error, "glCompressedTexSubImage3D");
return;
}
@@ -3683,7 +3820,6 @@ _mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
texObj = _mesa_select_tex_object(ctx, texUnit, target);
if (!texObj) {
@@ -3704,24 +3840,25 @@ _mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
return;
}
-
_mesa_lock_texture(ctx, texObj);
{
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
- if (!texImage) {
- /* probably invalid mipmap level */
- _mesa_error(ctx, GL_INVALID_VALUE, "glGetCompressedTexImageARB(level)");
- goto out;
+ if (texImage) {
+ if (texImage->IsCompressed) {
+ /* this typically calls _mesa_get_compressed_teximage() */
+ ctx->Driver.GetCompressedTexImage(ctx, target, level, img,
+ texObj, texImage);
+ }
+ else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetCompressedTexImageARB");
+ }
}
-
- if (!texImage->IsCompressed) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glGetCompressedTexImageARB");
- goto out;
+ else {
+ /* probably invalid mipmap level */
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetCompressedTexImageARB(level)");
}
-
- /* this typically calls _mesa_get_compressed_teximage() */
- ctx->Driver.GetCompressedTexImage(ctx, target, level, img, texObj,texImage);
}
- out:
_mesa_unlock_texture(ctx, texObj);
}
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index 68457f4728c..f2cad7eb2da 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -107,18 +107,19 @@ _mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level,
GLint width, GLint height, GLint depth, GLint border);
-/* Lock a texture for updating. See also _mesa_lock_context_textures().
+/**
+ * Lock a texture for updating. See also _mesa_lock_context_textures().
*/
-static INLINE void _mesa_lock_texture(GLcontext *ctx,
- struct gl_texture_object *texObj)
+static INLINE void
+_mesa_lock_texture(GLcontext *ctx, struct gl_texture_object *texObj)
{
_glthread_LOCK_MUTEX(ctx->Shared->TexMutex);
ctx->Shared->TextureStateStamp++;
(void) texObj;
}
-static INLINE void _mesa_unlock_texture(GLcontext *ctx,
- struct gl_texture_object *texObj)
+static INLINE void
+_mesa_unlock_texture(GLcontext *ctx, struct gl_texture_object *texObj)
{
_glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex);
}
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index f385f8112cf..24d8110b002 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -5,9 +5,9 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -42,10 +42,6 @@
#include "mtypes.h"
-#ifdef __VMS
-#define _mesa_sprintf sprintf
-#endif
-
/**********************************************************************/
/** \name Internal functions */
/*@{*/
@@ -104,7 +100,9 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj,
target == GL_TEXTURE_2D ||
target == GL_TEXTURE_3D ||
target == GL_TEXTURE_CUBE_MAP_ARB ||
- target == GL_TEXTURE_RECTANGLE_NV);
+ target == GL_TEXTURE_RECTANGLE_NV ||
+ target == GL_TEXTURE_1D_ARRAY_EXT ||
+ target == GL_TEXTURE_2D_ARRAY_EXT);
_mesa_bzero(obj, sizeof(*obj));
/* init the non-zero fields */
@@ -138,13 +136,13 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj,
obj->CompareFunc = GL_LEQUAL; /* ARB_shadow */
obj->DepthMode = GL_LUMINANCE; /* ARB_depth_texture */
obj->ShadowAmbient = 0.0F; /* ARB/SGIX_shadow_ambient */
- _mesa_init_colortable(&obj->Palette);
}
/**
* Deallocate a texture object struct. It should have already been
* removed from the texture object pool.
+ * Called via ctx->Driver.DeleteTexture() if not overriden by a driver.
*
* \param shared the shared GL state to which the object belongs.
* \param texOjb the texture object to delete.
@@ -221,7 +219,7 @@ _mesa_copy_texture_object( struct gl_texture_object *dest,
dest->_MaxLambda = src->_MaxLambda;
dest->GenerateMipmap = src->GenerateMipmap;
dest->Palette = src->Palette;
- dest->Complete = src->Complete;
+ dest->_Complete = src->_Complete;
}
@@ -239,6 +237,8 @@ valid_texture_object(const struct gl_texture_object *tex)
case GL_TEXTURE_3D:
case GL_TEXTURE_CUBE_MAP_ARB:
case GL_TEXTURE_RECTANGLE_NV:
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ case GL_TEXTURE_2D_ARRAY_EXT:
return GL_TRUE;
case 0x99:
_mesa_problem(NULL, "invalid reference to a deleted texture object");
@@ -349,7 +349,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
const GLint baseLevel = t->BaseLevel;
GLint maxLog2 = 0, maxLevels = 0;
- t->Complete = GL_TRUE; /* be optimistic */
+ t->_Complete = GL_TRUE; /* be optimistic */
/* Always need the base level image */
if (!t->Image[0][baseLevel]) {
@@ -357,7 +357,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
_mesa_sprintf(s, "obj %p (%d) Image[baseLevel=%d] == NULL",
(void *) t, t->Name, baseLevel);
incomplete(t, s);
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
return;
}
@@ -366,16 +366,18 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
t->Image[0][baseLevel]->Height == 0 ||
t->Image[0][baseLevel]->Depth == 0) {
incomplete(t, "texture width = 0");
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
return;
}
/* Compute _MaxLevel */
- if (t->Target == GL_TEXTURE_1D) {
+ if ((t->Target == GL_TEXTURE_1D) ||
+ (t->Target == GL_TEXTURE_1D_ARRAY_EXT)) {
maxLog2 = t->Image[0][baseLevel]->WidthLog2;
maxLevels = ctx->Const.MaxTextureLevels;
}
- else if (t->Target == GL_TEXTURE_2D) {
+ else if ((t->Target == GL_TEXTURE_2D) ||
+ (t->Target == GL_TEXTURE_2D_ARRAY_EXT)) {
maxLog2 = MAX2(t->Image[0][baseLevel]->WidthLog2,
t->Image[0][baseLevel]->HeightLog2);
maxLevels = ctx->Const.MaxTextureLevels;
@@ -418,7 +420,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
if (t->Image[face][baseLevel] == NULL ||
t->Image[face][baseLevel]->Width2 != w ||
t->Image[face][baseLevel]->Height2 != h) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "Non-quare cubemap image");
return;
}
@@ -435,7 +437,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
GLint maxLevel = t->_MaxLevel;
if (minLevel > maxLevel) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "minLevel > maxLevel");
return;
}
@@ -444,12 +446,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
for (i = minLevel; i <= maxLevel; i++) {
if (t->Image[0][i]) {
if (t->Image[0][i]->TexFormat != t->Image[0][baseLevel]->TexFormat) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "Format[i] != Format[baseLevel]");
return;
}
if (t->Image[0][i]->Border != t->Image[0][baseLevel]->Border) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "Border[i] != Border[baseLevel]");
return;
}
@@ -457,7 +459,8 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
}
/* Test things which depend on number of texture image dimensions */
- if (t->Target == GL_TEXTURE_1D) {
+ if ((t->Target == GL_TEXTURE_1D) ||
+ (t->Target == GL_TEXTURE_1D_ARRAY_EXT)) {
/* Test 1-D mipmaps */
GLuint width = t->Image[0][baseLevel]->Width2;
for (i = baseLevel + 1; i < maxLevels; i++) {
@@ -466,12 +469,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
}
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[0][i]) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "1D Image[0][i] == NULL");
return;
}
if (t->Image[0][i]->Width2 != width ) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "1D Image[0][i] bad width");
return;
}
@@ -481,7 +484,8 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
}
}
}
- else if (t->Target == GL_TEXTURE_2D) {
+ else if ((t->Target == GL_TEXTURE_2D) ||
+ (t->Target == GL_TEXTURE_2D_ARRAY_EXT)) {
/* Test 2-D mipmaps */
GLuint width = t->Image[0][baseLevel]->Width2;
GLuint height = t->Image[0][baseLevel]->Height2;
@@ -494,17 +498,17 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
}
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[0][i]) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "2D Image[0][i] == NULL");
return;
}
if (t->Image[0][i]->Width2 != width) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "2D Image[0][i] bad width");
return;
}
if (t->Image[0][i]->Height2 != height) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "2D Image[0][i] bad height");
return;
}
@@ -532,26 +536,26 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[0][i]) {
incomplete(t, "3D Image[0][i] == NULL");
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
return;
}
if (t->Image[0][i]->_BaseFormat == GL_DEPTH_COMPONENT) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "GL_DEPTH_COMPONENT only works with 1/2D tex");
return;
}
if (t->Image[0][i]->Width2 != width) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "3D Image[0][i] bad width");
return;
}
if (t->Image[0][i]->Height2 != height) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "3D Image[0][i] bad height");
return;
}
if (t->Image[0][i]->Depth2 != depth) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "3D Image[0][i] bad depth");
return;
}
@@ -577,20 +581,20 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
for (face = 0; face < 6; face++) {
/* check that we have images defined */
if (!t->Image[face][i]) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "CubeMap Image[n][i] == NULL");
return;
}
/* Don't support GL_DEPTH_COMPONENT for cube maps */
if (t->Image[face][i]->_BaseFormat == GL_DEPTH_COMPONENT) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "GL_DEPTH_COMPONENT only works with 1/2D tex");
return;
}
/* check that all six images have same size */
if (t->Image[face][i]->Width2!=width ||
t->Image[face][i]->Height2!=height) {
- t->Complete = GL_FALSE;
+ t->_Complete = GL_FALSE;
incomplete(t, "CubeMap Image[n][i] bad size");
return;
}
@@ -618,13 +622,6 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
/** \name API functions */
/*@{*/
-/**
- * Texture name generation lock.
- *
- * Used by _mesa_GenTextures() to guarantee that the generation and allocation
- * of texture IDs is atomic.
- */
-_glthread_DECLARE_STATIC_MUTEX(GenTexturesLock);
/**
* Generate texture names.
@@ -634,9 +631,9 @@ _glthread_DECLARE_STATIC_MUTEX(GenTexturesLock);
*
* \sa glGenTextures().
*
- * While holding the GenTexturesLock lock, calls _mesa_HashFindFreeKeyBlock()
- * to find a block of free texture IDs which are stored in \p textures.
- * Corresponding empty texture objects are also generated.
+ * Calls _mesa_HashFindFreeKeyBlock() to find a block of free texture
+ * IDs which are stored in \p textures. Corresponding empty texture
+ * objects are also generated.
*/
void GLAPIENTRY
_mesa_GenTextures( GLsizei n, GLuint *textures )
@@ -657,7 +654,7 @@ _mesa_GenTextures( GLsizei n, GLuint *textures )
/*
* This must be atomic (generation and allocation of texture IDs)
*/
- _glthread_LOCK_MUTEX(GenTexturesLock);
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
first = _mesa_HashFindFreeKeyBlock(ctx->Shared->TexObjects, n);
@@ -668,20 +665,18 @@ _mesa_GenTextures( GLsizei n, GLuint *textures )
GLenum target = 0;
texObj = (*ctx->Driver.NewTextureObject)( ctx, name, target);
if (!texObj) {
- _glthread_UNLOCK_MUTEX(GenTexturesLock);
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glGenTextures");
return;
}
/* insert into hash table */
- _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
_mesa_HashInsert(ctx->Shared->TexObjects, texObj->Name, texObj);
- _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
textures[i] = name;
}
- _glthread_UNLOCK_MUTEX(GenTexturesLock);
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
}
@@ -736,6 +731,12 @@ unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj)
else if (texObj == unit->CurrentRect) {
_mesa_reference_texobj(&unit->CurrentRect, ctx->Shared->DefaultRect);
}
+ else if (texObj == unit->Current1DArray) {
+ _mesa_reference_texobj(&unit->Current1DArray, ctx->Shared->Default1DArray);
+ }
+ else if (texObj == unit->Current2DArray) {
+ _mesa_reference_texobj(&unit->Current2DArray, ctx->Shared->Default2DArray);
+ }
}
}
@@ -853,6 +854,12 @@ _mesa_BindTexture( GLenum target, GLuint texName )
case GL_TEXTURE_RECTANGLE_NV:
newTexObj = ctx->Shared->DefaultRect;
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ newTexObj = ctx->Shared->Default1DArray;
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ newTexObj = ctx->Shared->Default2DArray;
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glBindTexture(target)");
return;
@@ -926,6 +933,12 @@ _mesa_BindTexture( GLenum target, GLuint texName )
case GL_TEXTURE_RECTANGLE_NV:
_mesa_reference_texobj(&texUnit->CurrentRect, newTexObj);
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ texUnit->Current1DArray = newTexObj;
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ texUnit->Current2DArray = newTexObj;
+ break;
default:
/* Bad target should be caught above */
_mesa_problem(ctx, "bad target in BindTexture");
@@ -1070,14 +1083,21 @@ _mesa_IsTexture( GLuint texture )
return t && t->Target;
}
-/* Simplest implementation of texture locking: Grab the a new mutex in
+
+/**
+ * Simplest implementation of texture locking: Grab the a new mutex in
* the shared context. Examine the shared context state timestamp and
* if there has been a change, set the appropriate bits in
* ctx->NewState.
*
- * See also _mesa_lock/unlock_texture in texobj.h
+ * This is used to deal with synchronizing things when a texture object
+ * is used/modified by different contexts (or threads) which are sharing
+ * the texture.
+ *
+ * See also _mesa_lock/unlock_texture() in teximage.h
*/
-void _mesa_lock_context_textures( GLcontext *ctx )
+void
+_mesa_lock_context_textures( GLcontext *ctx )
{
_glthread_LOCK_MUTEX(ctx->Shared->TexMutex);
@@ -1088,7 +1108,8 @@ void _mesa_lock_context_textures( GLcontext *ctx )
}
-void _mesa_unlock_context_textures( GLcontext *ctx )
+void
+_mesa_unlock_context_textures( GLcontext *ctx )
{
assert(ctx->Shared->TextureStateStamp == ctx->TextureStateTimestamp);
_glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex);
diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h
index 9577e5e4dba..d5374c5d6c4 100644
--- a/src/mesa/main/texobj.h
+++ b/src/mesa/main/texobj.h
@@ -65,8 +65,11 @@ extern void
_mesa_test_texobj_completeness( const GLcontext *ctx,
struct gl_texture_object *obj );
-extern void _mesa_unlock_context_textures( GLcontext *ctx );
-extern void _mesa_lock_context_textures( GLcontext *ctx );
+extern void
+_mesa_unlock_context_textures( GLcontext *ctx );
+
+extern void
+_mesa_lock_context_textures( GLcontext *ctx );
/*@}*/
diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c
index f7385845124..8d5468aff0d 100644
--- a/src/mesa/main/texrender.c
+++ b/src/mesa/main/texrender.c
@@ -16,10 +16,13 @@
*/
struct texture_renderbuffer
{
- struct gl_renderbuffer Base; /* Base class object */
+ struct gl_renderbuffer Base; /**< Base class object */
struct gl_texture_image *TexImage;
StoreTexelFunc Store;
- GLint Zoffset;
+ GLint Yoffset; /**< Layer for 1D array textures. */
+ GLint Zoffset; /**< Layer for 2D array textures, or slice
+ * for 3D textures
+ */
};
@@ -38,6 +41,8 @@ texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
ASSERT(trb->TexImage->Width == rb->Width);
ASSERT(trb->TexImage->Height == rb->Height);
+ y += trb->Yoffset;
+
if (rb->DataType == CHAN_TYPE) {
GLchan *rgbaOut = (GLchan *) values;
for (i = 0; i < count; i++) {
@@ -87,15 +92,16 @@ texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
if (rb->DataType == CHAN_TYPE) {
GLchan *rgbaOut = (GLchan *) values;
for (i = 0; i < count; i++) {
- trb->TexImage->FetchTexelc(trb->TexImage, x[i], y[i], z,
- rgbaOut + 4 * i);
+ trb->TexImage->FetchTexelc(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ z, rgbaOut + 4 * i);
}
}
else if (rb->DataType == GL_UNSIGNED_INT) {
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i], z, &flt);
+ trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ z, &flt);
#if 0
zValues[i] = (GLuint) (flt * 0xffffffff);
#else
@@ -107,7 +113,8 @@ texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i], z, &flt);
+ trb->TexImage->FetchTexelf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ z, &flt);
zValues[i] = ((GLuint) (flt * 0xffffff)) << 8;
}
}
@@ -129,6 +136,8 @@ texture_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLint z = trb->Zoffset;
GLuint i;
+ y += trb->Yoffset;
+
if (rb->DataType == CHAN_TYPE) {
const GLchan *rgba = (const GLchan *) values;
for (i = 0; i < count; i++) {
@@ -170,6 +179,8 @@ texture_put_mono_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLint z = trb->Zoffset;
GLuint i;
+ y += trb->Yoffset;
+
if (rb->DataType == CHAN_TYPE) {
const GLchan *rgba = (const GLchan *) value;
for (i = 0; i < count; i++) {
@@ -215,7 +226,7 @@ texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLchan *rgba = (const GLchan *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
- trb->Store(trb->TexImage, x[i], y[i], z, rgba);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z, rgba);
}
rgba += 4;
}
@@ -224,7 +235,8 @@ texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLuint *zValues = (const GLuint *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
- trb->Store(trb->TexImage, x[i], y[i], z, zValues + i);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z,
+ zValues + i);
}
}
}
@@ -233,7 +245,7 @@ texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count,
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
GLfloat flt = (zValues[i] >> 8) * (1.0 / 0xffffff);
- trb->Store(trb->TexImage, x[i], y[i], z, &flt);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt);
}
}
}
@@ -257,7 +269,7 @@ texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb,
const GLchan *rgba = (const GLchan *) value;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
- trb->Store(trb->TexImage, x[i], y[i], z, rgba);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z, rgba);
}
}
}
@@ -265,7 +277,7 @@ texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb,
const GLuint zValue = *((const GLuint *) value);
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
- trb->Store(trb->TexImage, x[i], y[i], z, &zValue);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &zValue);
}
}
}
@@ -274,7 +286,7 @@ texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb,
const GLfloat flt = (zValue >> 8) * (1.0 / 0xffffff);
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
- trb->Store(trb->TexImage, x[i], y[i], z, &flt);
+ trb->Store(trb->TexImage, x[i], y[i] + trb->Yoffset, z, &flt);
}
}
}
@@ -350,7 +362,14 @@ update_wrapper(GLcontext *ctx, const struct gl_renderbuffer_attachment *att)
trb->Store = trb->TexImage->TexFormat->StoreTexel;
ASSERT(trb->Store);
- trb->Zoffset = att->Zoffset;
+ if (att->Texture->Target == GL_TEXTURE_1D_ARRAY_EXT) {
+ trb->Yoffset = att->Zoffset;
+ trb->Zoffset = 0;
+ }
+ else {
+ trb->Yoffset = 0;
+ trb->Zoffset = att->Zoffset;
+ }
trb->Base.Width = trb->TexImage->Width;
trb->Base.Height = trb->TexImage->Height;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index d99738b1ab7..626c2648631 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.3
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -129,6 +129,10 @@ _mesa_copy_texture_state( const GLcontext *src, GLcontext *dst )
src->Texture.Unit[i].CurrentCubeMap);
_mesa_reference_texobj(&dst->Texture.Unit[i].CurrentRect,
src->Texture.Unit[i].CurrentRect);
+ _mesa_reference_texobj(&dst->Texture.Unit[i].Current1DArray,
+ src->Texture.Unit[i].Current1DArray);
+ _mesa_reference_texobj(&dst->Texture.Unit[i].Current2DArray,
+ src->Texture.Unit[i].Current2DArray);
_mesa_unlock_context_textures(dst);
}
@@ -1117,26 +1121,29 @@ _mesa_GetTexEnviv( GLenum target, GLenum pname, GLint *params )
/* Texture Parameters */
/**********************************************************************/
+/**
+ * Check if a coordinate wrap mode is supported for the texture target.
+ * \return GL_TRUE if legal, GL_FALSE otherwise
+ */
static GLboolean
-_mesa_validate_texture_wrap_mode(GLcontext * ctx,
- GLenum target, GLenum eparam)
+validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap)
{
const struct gl_extensions * const e = & ctx->Extensions;
- if (eparam == GL_CLAMP || eparam == GL_CLAMP_TO_EDGE ||
- (eparam == GL_CLAMP_TO_BORDER && e->ARB_texture_border_clamp)) {
+ if (wrap == GL_CLAMP || wrap == GL_CLAMP_TO_EDGE ||
+ (wrap == GL_CLAMP_TO_BORDER && e->ARB_texture_border_clamp)) {
/* any texture target */
return GL_TRUE;
}
else if (target != GL_TEXTURE_RECTANGLE_NV &&
- (eparam == GL_REPEAT ||
- (eparam == GL_MIRRORED_REPEAT &&
+ (wrap == GL_REPEAT ||
+ (wrap == GL_MIRRORED_REPEAT &&
e->ARB_texture_mirrored_repeat) ||
- (eparam == GL_MIRROR_CLAMP_EXT &&
+ (wrap == GL_MIRROR_CLAMP_EXT &&
(e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)) ||
- (eparam == GL_MIRROR_CLAMP_TO_EDGE_EXT &&
+ (wrap == GL_MIRROR_CLAMP_TO_EDGE_EXT &&
(e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)) ||
- (eparam == GL_MIRROR_CLAMP_TO_BORDER_EXT &&
+ (wrap == GL_MIRROR_CLAMP_TO_BORDER_EXT &&
(e->EXT_texture_mirror_clamp)))) {
/* non-rectangle texture */
return GL_TRUE;
@@ -1201,6 +1208,20 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
}
texObj = texUnit->CurrentRect;
break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(target)" );
+ return;
+ }
+ texObj = texUnit->Current1DArray;
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ if (!ctx->Extensions.MESA_texture_array) {
+ _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(target)" );
+ return;
+ }
+ texObj = texUnit->Current2DArray;
+ break;
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(target)" );
return;
@@ -1245,7 +1266,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_S:
if (texObj->WrapS == eparam)
return;
- if (_mesa_validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
+ if (validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapS = eparam;
}
@@ -1256,7 +1277,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_T:
if (texObj->WrapT == eparam)
return;
- if (_mesa_validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
+ if (validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapT = eparam;
}
@@ -1267,7 +1288,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
case GL_TEXTURE_WRAP_R:
if (texObj->WrapR == eparam)
return;
- if (_mesa_validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
+ if (validate_texture_wrap_mode(ctx, texObj->Target, eparam)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapR = eparam;
}
@@ -1477,7 +1498,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
return;
}
- texObj->Complete = GL_FALSE;
+ texObj->_Complete = GL_FALSE;
if (ctx->Driver.TexParameter) {
(*ctx->Driver.TexParameter)( ctx, target, texObj, pname, params );
@@ -1554,6 +1575,12 @@ tex_image_dimensions(GLcontext *ctx, GLenum target)
case GL_TEXTURE_RECTANGLE_NV:
case GL_PROXY_TEXTURE_RECTANGLE_NV:
return ctx->Extensions.NV_texture_rectangle ? 2 : 0;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_1D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array ? 2 : 0;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
+ return ctx->Extensions.MESA_texture_array ? 3 : 0;
default:
_mesa_problem(ctx, "bad target in _mesa_tex_target_dimensions()");
return 0;
@@ -2749,6 +2776,47 @@ update_texture_matrices( GLcontext *ctx )
/**
+ * Update texture object's _Function field. We need to do this
+ * whenever any of the texture object's shadow-related fields change
+ * or when we start/stop using a fragment program.
+ *
+ * This function could be expanded someday to update additional per-object
+ * fields that depend on assorted state changes.
+ */
+static void
+update_texture_compare_function(GLcontext *ctx,
+ struct gl_texture_object *tObj)
+{
+ /* XXX temporarily disable this test since it breaks the GLSL
+ * shadow2D(), etc. functions.
+ */
+ if (0 /*ctx->FragmentProgram._Current*/) {
+ /* Texel/coordinate comparison is ignored for programs.
+ * See GL_ARB_fragment_program/shader spec for details.
+ */
+ tObj->_Function = GL_NONE;
+ }
+ else if (tObj->CompareFlag) {
+ /* GL_SGIX_shadow */
+ if (tObj->CompareOperator == GL_TEXTURE_LEQUAL_R_SGIX) {
+ tObj->_Function = GL_LEQUAL;
+ }
+ else {
+ ASSERT(tObj->CompareOperator == GL_TEXTURE_GEQUAL_R_SGIX);
+ tObj->_Function = GL_GEQUAL;
+ }
+ }
+ else if (tObj->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) {
+ /* GL_ARB_shadow */
+ tObj->_Function = tObj->CompareFunc;
+ }
+ else {
+ tObj->_Function = GL_NONE; /* pass depth through as grayscale */
+ }
+}
+
+
+/**
* Helper function for determining which texture object (1D, 2D, cube, etc)
* should actually be used.
*/
@@ -2758,12 +2826,13 @@ texture_override(GLcontext *ctx,
struct gl_texture_object *texObj, GLuint textureBit)
{
if (!texUnit->_ReallyEnabled && (enableBits & textureBit)) {
- if (!texObj->Complete) {
+ if (!texObj->_Complete) {
_mesa_test_texobj_completeness(ctx, texObj);
}
- if (texObj->Complete) {
+ if (texObj->_Complete) {
texUnit->_ReallyEnabled = textureBit;
texUnit->_Current = texObj;
+ update_texture_compare_function(ctx, texObj);
}
}
}
@@ -2845,6 +2914,10 @@ update_texture_state( GLcontext *ctx )
* a fragment program we're guaranteed that bitcount(enabledBits) <= 1.
*/
texture_override(ctx, texUnit, enableBits,
+ texUnit->Current2DArray, TEXTURE_2D_ARRAY_BIT);
+ texture_override(ctx, texUnit, enableBits,
+ texUnit->Current1DArray, TEXTURE_1D_ARRAY_BIT);
+ texture_override(ctx, texUnit, enableBits,
texUnit->CurrentCubeMap, TEXTURE_CUBE_BIT);
texture_override(ctx, texUnit, enableBits,
texUnit->Current3D, TEXTURE_3D_BIT);
@@ -2992,42 +3065,32 @@ _mesa_update_texture( GLcontext *ctx, GLuint new_state )
static GLboolean
alloc_proxy_textures( GLcontext *ctx )
{
- ctx->Texture.Proxy1D = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_1D);
- if (!ctx->Texture.Proxy1D)
- goto cleanup;
-
- ctx->Texture.Proxy2D = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_2D);
- if (!ctx->Texture.Proxy2D)
- goto cleanup;
-
- ctx->Texture.Proxy3D = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_3D);
- if (!ctx->Texture.Proxy3D)
- goto cleanup;
-
- ctx->Texture.ProxyCubeMap = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_CUBE_MAP_ARB);
- if (!ctx->Texture.ProxyCubeMap)
- goto cleanup;
-
- ctx->Texture.ProxyRect = (*ctx->Driver.NewTextureObject)(ctx, 0, GL_TEXTURE_RECTANGLE_NV);
- if (!ctx->Texture.ProxyRect)
- goto cleanup;
-
- assert(ctx->Texture.Proxy1D->RefCount == 1);
+ static const GLenum targets[] = {
+ GL_TEXTURE_1D,
+ GL_TEXTURE_2D,
+ GL_TEXTURE_3D,
+ GL_TEXTURE_CUBE_MAP_ARB,
+ GL_TEXTURE_RECTANGLE_NV,
+ GL_TEXTURE_1D_ARRAY_EXT,
+ GL_TEXTURE_2D_ARRAY_EXT
+ };
+ GLint tgt;
+
+ ASSERT(Elements(targets) == NUM_TEXTURE_TARGETS);
+
+ for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++) {
+ if (!(ctx->Texture.ProxyTex[tgt]
+ = ctx->Driver.NewTextureObject(ctx, 0, targets[tgt]))) {
+ /* out of memory, free what we did allocate */
+ while (--tgt >= 0) {
+ ctx->Driver.DeleteTexture(ctx, ctx->Texture.ProxyTex[tgt]);
+ }
+ return GL_FALSE;
+ }
+ }
+ assert(ctx->Texture.ProxyTex[0]->RefCount == 1); /* sanity check */
return GL_TRUE;
-
- cleanup:
- if (ctx->Texture.Proxy1D)
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy1D);
- if (ctx->Texture.Proxy2D)
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy2D);
- if (ctx->Texture.Proxy3D)
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy3D);
- if (ctx->Texture.ProxyCubeMap)
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyCubeMap);
- if (ctx->Texture.ProxyRect)
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyRect);
- return GL_FALSE;
}
@@ -3075,6 +3138,8 @@ init_texture_unit( GLcontext *ctx, GLuint unit )
_mesa_reference_texobj(&texUnit->Current3D, ctx->Shared->Default3D);
_mesa_reference_texobj(&texUnit->CurrentCubeMap, ctx->Shared->DefaultCubeMap);
_mesa_reference_texobj(&texUnit->CurrentRect, ctx->Shared->DefaultRect);
+ _mesa_reference_texobj(&texUnit->Current1DArray, ctx->Shared->Default1DArray);
+ _mesa_reference_texobj(&texUnit->Current2DArray, ctx->Shared->Default2DArray);
}
@@ -3114,12 +3179,12 @@ _mesa_init_texture(GLcontext *ctx)
/**
- * Free dynamically-allocated texture data attached to the given context.
+ * Free dynamically-allocted texture data attached to the given context.
*/
void
_mesa_free_texture_data(GLcontext *ctx)
{
- GLuint u;
+ GLuint u, tgt;
/* unreference current textures */
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++) {
@@ -3129,17 +3194,40 @@ _mesa_free_texture_data(GLcontext *ctx)
_mesa_reference_texobj(&unit->Current3D, NULL);
_mesa_reference_texobj(&unit->CurrentCubeMap, NULL);
_mesa_reference_texobj(&unit->CurrentRect, NULL);
+ _mesa_reference_texobj(&unit->Current1DArray, NULL);
+ _mesa_reference_texobj(&unit->Current2DArray, NULL);
}
/* Free proxy texture objects */
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy1D );
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy2D );
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.Proxy3D );
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyCubeMap );
- (ctx->Driver.DeleteTexture)(ctx, ctx->Texture.ProxyRect );
+ for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++)
+ ctx->Driver.DeleteTexture(ctx, ctx->Texture.ProxyTex[tgt]);
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++)
_mesa_free_colortable_data( &ctx->Texture.Unit[u].ColorTable );
_mesa_TexEnvProgramCacheDestroy( ctx );
}
+
+
+/**
+ * Update the default texture objects in the given context to reference those
+ * specified in the shared state and release those referencing the old
+ * shared state.
+ */
+void
+_mesa_update_default_objects_texture(GLcontext *ctx)
+{
+ GLuint i;
+
+ for (i = 0; i < MAX_TEXTURE_UNITS; i++) {
+ struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i];
+
+ _mesa_reference_texobj(&texUnit->Current1D, ctx->Shared->Default1D);
+ _mesa_reference_texobj(&texUnit->Current2D, ctx->Shared->Default2D);
+ _mesa_reference_texobj(&texUnit->Current3D, ctx->Shared->Default3D);
+ _mesa_reference_texobj(&texUnit->CurrentCubeMap, ctx->Shared->DefaultCubeMap);
+ _mesa_reference_texobj(&texUnit->CurrentRect, ctx->Shared->DefaultRect);
+ _mesa_reference_texobj(&texUnit->Current1DArray, ctx->Shared->Default1DArray);
+ _mesa_reference_texobj(&texUnit->Current2DArray, ctx->Shared->Default2DArray);
+ }
+}
diff --git a/src/mesa/main/texstate.h b/src/mesa/main/texstate.h
index ca29c6a23ff..b978654116e 100644
--- a/src/mesa/main/texstate.h
+++ b/src/mesa/main/texstate.h
@@ -5,9 +5,9 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.1
*
- * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -42,6 +42,7 @@ extern void
_mesa_print_texunit_state( GLcontext *ctx, GLuint unit );
+
/**
* \name Called from API
*/
@@ -147,6 +148,9 @@ _mesa_init_texture( GLcontext *ctx );
extern void
_mesa_free_texture_data( GLcontext *ctx );
+extern void
+_mesa_update_default_objects_texture(GLcontext *ctx);
+
/*@}*/
#endif
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index ec97a018004..89774291f2f 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -1078,7 +1078,7 @@ _mesa_texstore_rgba(TEXSTORE_PARAMS)
GLboolean
_mesa_texstore_z32(TEXSTORE_PARAMS)
{
- const GLfloat depthScale = (GLfloat) 0xffffffff;
+ const GLuint depthScale = 0xffffffff;
(void) dims;
ASSERT(dstFormat == &_mesa_texformat_z32);
ASSERT(dstFormat->TexelBytes == sizeof(GLuint));
@@ -1125,7 +1125,7 @@ _mesa_texstore_z32(TEXSTORE_PARAMS)
GLboolean
_mesa_texstore_z16(TEXSTORE_PARAMS)
{
- const GLfloat depthScale = 65535.0f;
+ const GLuint depthScale = 0xffff;
(void) dims;
ASSERT(dstFormat == &_mesa_texformat_z16);
ASSERT(dstFormat->TexelBytes == sizeof(GLushort));
@@ -1444,7 +1444,6 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS)
(baseInternalFormat == GL_RGBA ||
baseInternalFormat == GL_RGB) &&
srcType == GL_UNSIGNED_BYTE) {
-
int img, row, col;
for (img = 0; img < srcDepth; img++) {
const GLint srcRowStride = _mesa_image_row_stride(srcPacking,
@@ -1456,11 +1455,12 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS)
+ dstYoffset * dstRowStride
+ dstXoffset * dstFormat->TexelBytes;
for (row = 0; row < srcHeight; row++) {
+ GLuint *d4 = (GLuint *) dstRow;
for (col = 0; col < srcWidth; col++) {
- dstRow[col * 4 + 0] = srcRow[col * 3 + BCOMP];
- dstRow[col * 4 + 1] = srcRow[col * 3 + GCOMP];
- dstRow[col * 4 + 2] = srcRow[col * 3 + RCOMP];
- dstRow[col * 4 + 3] = 0xff;
+ d4[col] = ((0xff << 24) |
+ (srcRow[col * 3 + RCOMP] << 16) |
+ (srcRow[col * 3 + GCOMP] << 8) |
+ (srcRow[col * 3 + BCOMP] << 0));
}
dstRow += dstRowStride;
srcRow += srcRowStride;
@@ -1472,7 +1472,9 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS)
dstFormat == &_mesa_texformat_argb8888 &&
srcFormat == GL_RGBA &&
baseInternalFormat == GL_RGBA &&
- (srcType == GL_UNSIGNED_BYTE && littleEndian)) {
+ srcType == GL_UNSIGNED_BYTE &&
+ littleEndian) {
+ /* same as above case, but src data has alpha too */
GLint img, row, col;
/* For some reason, streaming copies to write-combined regions
* are extremely sensitive to the characteristics of how the
@@ -1489,13 +1491,13 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS)
+ dstImageOffsets[dstZoffset + img] * dstFormat->TexelBytes
+ dstYoffset * dstRowStride
+ dstXoffset * dstFormat->TexelBytes;
-
for (row = 0; row < srcHeight; row++) {
+ GLuint *d4 = (GLuint *) dstRow;
for (col = 0; col < srcWidth; col++) {
- *(GLuint *)(dstRow + col * 4) = (srcRow[col * 4 + RCOMP] << 16 |
- srcRow[col * 4 + GCOMP] << 8 |
- srcRow[col * 4 + BCOMP] << 0 |
- srcRow[col * 4 + ACOMP] << 24);
+ d4[col] = ((srcRow[col * 4 + ACOMP] << 24) |
+ (srcRow[col * 4 + RCOMP] << 16) |
+ (srcRow[col * 4 + GCOMP] << 8) |
+ (srcRow[col * 4 + BCOMP] << 0));
}
dstRow += dstRowStride;
srcRow += srcRowStride;
@@ -2916,9 +2918,7 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3002,9 +3002,7 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3078,9 +3076,7 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3126,9 +3122,7 @@ _mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3181,9 +3175,7 @@ _mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3236,9 +3228,7 @@ _mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, packing);
@@ -3312,9 +3302,7 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, &ctx->Unpack);
@@ -3424,9 +3412,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target,
/* GL_SGIS_generate_mipmap */
if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
- _mesa_generate_mipmap(ctx, target,
- &ctx->Texture.Unit[ctx->Texture.CurrentUnit],
- texObj);
+ ctx->Driver.GenerateMipmap(ctx, target, texObj);
}
_mesa_unmap_teximage_pbo(ctx, &ctx->Unpack);
@@ -3654,8 +3640,8 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level,
void
_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level,
GLvoid *img,
- const struct gl_texture_object *texObj,
- const struct gl_texture_image *texImage)
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage)
{
GLuint size;
diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h
index da0c7cb78e5..5128bc58276 100644
--- a/src/mesa/main/texstore.h
+++ b/src/mesa/main/texstore.h
@@ -214,8 +214,8 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level,
extern void
_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level,
GLvoid *img,
- const struct gl_texture_object *texObj,
- const struct gl_texture_image *texImage);
+ struct gl_texture_object *texObj,
+ struct gl_texture_image *texImage);
extern const GLvoid *
_mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions,
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index 56772e50f69..f41ee73c884 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -32,7 +32,7 @@
#include "mtypes.h"
#include "varray.h"
#include "arrayobj.h"
-#include "dispatch.h"
+#include "glapi/dispatch.h"
/**
@@ -810,16 +810,22 @@ _mesa_LockArraysEXT(GLint first, GLsizei count)
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glLockArrays %d %d\n", first, count);
- if (first == 0 && count > 0 &&
- count <= (GLint) ctx->Const.MaxArrayLockSize) {
- ctx->Array.LockFirst = first;
- ctx->Array.LockCount = count;
+ if (first < 0) {
+ _mesa_error( ctx, GL_INVALID_VALUE, "glLockArraysEXT(first)" );
+ return;
}
- else {
- ctx->Array.LockFirst = 0;
- ctx->Array.LockCount = 0;
+ if (count <= 0) {
+ _mesa_error( ctx, GL_INVALID_VALUE, "glLockArraysEXT(count)" );
+ return;
+ }
+ if (ctx->Array.LockCount != 0) {
+ _mesa_error( ctx, GL_INVALID_OPERATION, "glLockArraysEXT(reentry)" );
+ return;
}
+ ctx->Array.LockFirst = first;
+ ctx->Array.LockCount = count;
+
ctx->NewState |= _NEW_ARRAY;
ctx->Array.NewState |= _NEW_ARRAY_ALL;
@@ -837,6 +843,11 @@ _mesa_UnlockArraysEXT( void )
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glUnlockArrays\n");
+ if (ctx->Array.LockCount == 0) {
+ _mesa_error( ctx, GL_INVALID_OPERATION, "glUnlockArraysEXT(reexit)" );
+ return;
+ }
+
ctx->Array.LockFirst = 0;
ctx->Array.LockCount = 0;
ctx->NewState |= _NEW_ARRAY;
diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h
index 3589735f684..bb2d21b469b 100644
--- a/src/mesa/main/varray.h
+++ b/src/mesa/main/varray.h
@@ -146,6 +146,11 @@ _mesa_MultiModeDrawElementsIBM( const GLenum * mode, const GLsizei * count,
GLenum type, const GLvoid * const * indices,
GLsizei primcount, GLint modestride );
+extern void GLAPIENTRY
+_mesa_LockArraysEXT(GLint first, GLsizei count);
+
+extern void GLAPIENTRY
+_mesa_UnlockArraysEXT( void );
extern void
_mesa_init_varray( GLcontext * ctx );
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index 5017198b9f0..2f459e517a5 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 7.0.4
+ * Version: 7.1
*
- * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -29,9 +29,9 @@
/* Mesa version */
#define MESA_MAJOR 7
-#define MESA_MINOR 0
-#define MESA_PATCH 4
-#define MESA_VERSION_STRING "7.0.4"
+#define MESA_MINOR 1
+#define MESA_PATCH 0
+#define MESA_VERSION_STRING "7.1 rc1"
/* To make version comparison easy */
#define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff --git a/src/mesa/main/vtxfmt_tmp.h b/src/mesa/main/vtxfmt_tmp.h
index 783b06558d5..6f5d01e40f2 100644
--- a/src/mesa/main/vtxfmt_tmp.h
+++ b/src/mesa/main/vtxfmt_tmp.h
@@ -29,8 +29,8 @@
#define PRE_LOOPBACK( FUNC )
#endif
-#include "dispatch.h"
-#include "glapioffsets.h"
+#include "glapi/dispatch.h"
+#include "glapi/glapioffsets.h"
static void GLAPIENTRY TAG(ArrayElement)( GLint i )
{