diff options
25 files changed, 7749 insertions, 269 deletions
diff --git a/lib/libGL/Makefile b/lib/libGL/Makefile index 0f686b791..b54c0a335 100644 --- a/lib/libGL/Makefile +++ b/lib/libGL/Makefile @@ -1,21 +1,22 @@ -# $OpenBSD: Makefile,v 1.28 2010/06/22 20:04:22 matthieu Exp $ +# $OpenBSD: Makefile,v 1.29 2011/10/23 13:57:36 matthieu Exp $ .include <bsd.xconf.mk> .if ${XENOCARA_BUILD_DRI:L} == "yes" -SUBDIR=glsl libmesa/shader/slang/library libmesa dri +SUBDIR=glsl libmesa dri .endif LIB= GL MESA= ${.CURDIR}/../../dist/Mesa/src/mesa -GL= ${.CURDIR}/../../dist/Mesa/src/GL +MAPI= ${.CURDIR}/../../dist/Mesa/src/mapi +GL= ${.CURDIR}/../../dist/Mesa/Mesa/src/GL GLX= ${.CURDIR}/../../dist/Mesa/src/glx MESA_INCLUDE= ${.CURDIR}/../../dist/Mesa/include MESA_DRI= ${.CURDIR}/../../dist/Mesa/src/mesa/drivers/dri MESA_MAJOR= 7 -MESA_MINOR= 8 -MESA_TINY= 2 +MESA_MINOR= 10 +MESA_TINY= 3 DRI_DRIVER_INSTALL_DIR= ${X11BASE}/lib/modules/dri @@ -24,9 +25,10 @@ DRI_DRIVER_SEARCH_DIR= $(DRI_DRIVER_INSTALL_DIR) INCSDIR= ${X11BASE}/include/GL .if ${XENOCARA_BUILD_DRI:L} == "yes" -LDADD= -L${X11BASE}/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes -ldrm +LDADD= -L${X11BASE}/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ + -ldrm -lstdc++ -lm -lc .else -LDADD= -L${X11BASE}/lib -lXext -lX11 +LDADD= -L${X11BASE}/lib -lX11 -lXext .endif CPP= cpp -notraditional @@ -37,7 +39,8 @@ CPPFLAGS+= \ -I${MESA_INCLUDE} \ -I${MESA_INCLUDE}/GL/internal \ -I${MESA} \ - -I${MESA}/glapi \ + -I${MAPI} \ + -I${MAPI}/glapi \ -I${GLX} \ -I${X11BASE}/include \ -I/usr/include/dev/pci/drm \ @@ -47,7 +50,8 @@ CPPFLAGS+= \ -D_REENTRANT .if ${XENOCARA_BUILD_DRI:L} == "yes" -CPPFLAGS+= -DGLX_DIRECT_RENDERING -DXF86VIDMODE \ +CPPFLAGS+= -DMAPI_GLAPI_CURRENT \ + -DGLX_DIRECT_RENDERING -DXF86VIDMODE \ -DDEFAULT_DRIVER_DIR=\"${DRI_DRIVER_INSTALL_DIR}\" .endif @@ -69,8 +73,8 @@ INCS= \ osmesa.h GLAPI_SOURCES= \ - glapi.c \ glapi_dispatch.c \ + glapi_entrypoint.c \ glapi_getproc.c \ glapi_nop.c \ glthread.c \ @@ -89,14 +93,15 @@ SPARC_API = glapi_sparc.S .endif GLX_SOURCES= \ - glcontextmodes.c \ clientattrib.c \ compsize.c \ glxeval.c \ + glxconfig.c \ glxcmds.c \ glxcurrent.c \ glxext.c \ glxextensions.c \ + indirect_glx.c \ indirect.c \ indirect_init.c \ indirect_size.c \ @@ -121,10 +126,24 @@ GLX_SOURCES= \ XF86dri.c \ glxhash.c \ dri2_glx.c \ - dri2.c + dri2.c \ + applegl_glx.c + +MAPI_GLAPI_SOURCES = \ + u_current.c \ + u_execmem.c \ + u_thread.c + +MAPI_SOURCES = \ + entry.c \ + mapi.c \ + stub.c \ + table.c \ + $(MAPI_GLAPI_SOURCES) SRCS = $(GLX_SOURCES) \ - $(GLAPI_SOURCES) + $(GLAPI_SOURCES) \ + $(MAPI_GLAPI_SOURCES) includes: _SUBDIRUSE cd ${MESA_INCLUDE}/GL; for i in ${INCS}; do \ @@ -161,7 +180,7 @@ gl.pc: ${MESA}/gl.pc.in Makefile sed -e 's,@INSTALL_DIR@,$(X11BASE),' \ -e 's,@INSTALL_LIB_DIR@,${LIBDIR},' \ -e 's,@INSTALL_INC_DIR@,${INCSDIR},' \ - -e 's,@GL_PC_REQ_PRIV@,libdrm >= 2.4.3 dri2proto >= 1.99.3 x11 xext xxf86vm xdamage xfixes,' \ + -e 's,@GL_PC_REQ_PRIV@,libdrm >= 2.4.15 dri2proto >= 2.1 glproto >= 1.4.11 x11 xext xdamage xfixes xxf86vm,' \ -e 's,@GL_PC_LIB_PRIV@,-L${LIBDIR} -lXxf86vm -lXext -lXdamage -lXfixes -lX11 -lXau -lXdmcp,' \ -e 's,@GL_PC_CFLAGS@,-I${INCSDIR},' \ -e 's,@GL_LIB@,GL,' \ @@ -177,7 +196,7 @@ dri.pc: ${MESA_DRI}/dri.pc.in Makefile -e 's,@INSTALL_INC_DIR@,${INCSDIR},' \ -e 's,@DRI_DRIVER_DIR@,${DRI_DRIVER_INSTALL_DIR},' \ -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \ - -e 's,@DRI_PC_REQ_PRIV@,,' \ + -e 's,@DRI_PC_REQ_PRIV@,libdrm >= 2.4.15,' \ < ${MESA_DRI}/dri.pc.in > dri.pc .endif @@ -205,7 +224,8 @@ CLEANFILES+= gl.pc ${DRI_PC} .PATH: ${MESA}/x86-64 .endif .PATH: ${MESA}/main -.PATH: ${MESA}/glapi +.PATH: ${MAPI}/glapi +.PATH: ${MAPI}/mapi .PATH: ${GLX} .include <bsd.subdir.mk> diff --git a/lib/libGL/dri/Makefile b/lib/libGL/dri/Makefile index e86cd674a..88f1776a7 100644 --- a/lib/libGL/dri/Makefile +++ b/lib/libGL/dri/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.11 2011/05/30 21:52:42 oga Exp $ +# $OpenBSD: Makefile,v 1.12 2011/10/23 13:57:36 matthieu Exp $ SUBDIR= swrast diff --git a/lib/libGL/dri/Makefile.inc b/lib/libGL/dri/Makefile.inc index c6891058a..6cdbfc541 100644 --- a/lib/libGL/dri/Makefile.inc +++ b/lib/libGL/dri/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.10 2010/05/22 20:14:14 matthieu Exp $ +# $OpenBSD: Makefile.inc,v 1.11 2011/10/23 13:57:36 matthieu Exp $ .include <bsd.xconf.mk> MESA= ${.CURDIR}/../../../../dist/Mesa/src/mesa @@ -25,16 +25,13 @@ CFLAGS+= -g -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DPTHREADS \ CFLAGS += -std=c99 .endif -t: - @echo x${COMPILER_VERSION:L:Mgcc[34]*}x - INCLUDES = \ -I$(TOP)/src/mesa/drivers/dri/common \ -I$(TOP)/include \ -I$(TOP)/include/GL/internal \ -I$(TOP)/src/mesa \ -I$(TOP)/src/mesa/main \ - -I$(TOP)/src/mesa/glapi \ + -I$(TOP)/src/mapi \ -I$(TOP)/src/mesa/math \ -I$(TOP)/src/mesa/transform \ -I$(TOP)/src/mesa/shader \ @@ -56,18 +53,15 @@ CPPFLAGS += -DUSE_X86_64_ASM .endif LDADD= ../../libmesa/libmesa_pic.a \ - ../../glsl/pp/libglslpp_pic.a \ - ../../glsl/cl/libglslcl_pic.a \ - -L${X11BASE}/lib -lX11 -lexpat -ldrm -lm -DPADD= ../../libmesa/libmesa_pic.a \ - ../../glsl/pp/libglslpp_pic.a \ - ../../glsl/cl/libglslcl_pic.a + ../../glsl/libglsl/libglsl_pic.a \ + -L${X11BASE}/lib -lexpat -ldrm -lm -lstdc++ -lc +DPADD= ../../libmesa/libmesa_pic.a .PATH: ${MESA}/drivers/dri/common .PATH: ${MESA}/drivers/common .SUFFIXES: -.SUFFIXES: .a .c .o .S .s .so +.SUFFIXES: .a .c .cpp .o .S .s .so .c.so: @echo "${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" @@ -75,6 +69,13 @@ DPADD= ../../libmesa/libmesa_pic.a \ @${LD} -X -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o +.cpp.so: + @echo "${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" + @${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + + all: ${LIB} OBJS+= ${SRCS:N*.h:R:S/$/.so/g} diff --git a/lib/libGL/dri/i915/Makefile b/lib/libGL/dri/i915/Makefile index 130c759f5..f308e2afb 100644 --- a/lib/libGL/dri/i915/Makefile +++ b/lib/libGL/dri/i915/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.6 2010/05/22 20:14:14 matthieu Exp $ +# $OpenBSD: Makefile,v 1.7 2011/10/23 13:57:36 matthieu Exp $ LIB= i915_dri.so @@ -14,6 +14,7 @@ DRIVER_SOURCES = \ intel_batchbuffer.c \ intel_clear.c \ intel_extensions.c \ + intel_extensions_es2.c \ intel_mipmap_tree.c \ intel_tex_layout.c \ intel_tex_image.c \ diff --git a/lib/libGL/dri/i965/Makefile b/lib/libGL/dri/i965/Makefile index 431fbfff4..0c90446d5 100644 --- a/lib/libGL/dri/i965/Makefile +++ b/lib/libGL/dri/i965/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.5 2010/05/22 20:14:14 matthieu Exp $ +# $OpenBSD: Makefile,v 1.6 2011/10/23 13:57:36 matthieu Exp $ LIB= i965_dri.so @@ -11,6 +11,7 @@ DRIVER_SOURCES = \ intel_context.c \ intel_decode.c \ intel_extensions.c \ + intel_extensions_es2.c \ intel_fbo.c \ intel_mipmap_tree.c \ intel_regions.c \ @@ -52,11 +53,13 @@ DRIVER_SOURCES = \ brw_gs_emit.c \ brw_gs_state.c \ brw_misc_state.c \ + brw_optimize.c \ brw_program.c \ brw_queryobj.c \ brw_sf.c \ brw_sf_emit.c \ brw_sf_state.c \ + brw_state.c \ brw_state_batch.c \ brw_state_cache.c \ brw_state_dump.c \ @@ -76,7 +79,6 @@ DRIVER_SOURCES = \ brw_wm_emit.c \ brw_wm_fp.c \ brw_wm_iz.c \ - brw_wm_glsl.c \ brw_wm_pass0.c \ brw_wm_pass1.c \ brw_wm_pass2.c \ @@ -95,10 +97,18 @@ DRIVER_SOURCES = \ gen6_vs_state.c \ gen6_wm_state.c +CXX_SOURCES = \ + brw_cubemap_normalize.cpp \ + brw_fs.cpp \ + brw_fs_channel_expressions.cpp \ + brw_fs_reg_allocate.cpp \ + brw_fs_vector_splitting.cpp + SRCS = \ $(COMMON_SOURCES) \ $(MINIGLX_SOURCES) \ - $(DRIVER_SOURCES) + $(DRIVER_SOURCES) \ + $(CXX_SOURCES) DRIVER_DEFINES = \ -I$(MESA)/drivers/dri/i965 \ diff --git a/lib/libGL/dri/r200/Makefile b/lib/libGL/dri/r200/Makefile index ed0ccd81b..f8d972002 100644 --- a/lib/libGL/dri/r200/Makefile +++ b/lib/libGL/dri/r200/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 2010/05/22 20:14:14 matthieu Exp $ +# $OpenBSD: Makefile,v 1.3 2011/10/23 13:57:36 matthieu Exp $ LIB= r200_dri.so @@ -6,9 +6,10 @@ CS_SOURCES = \ radeon_cs_space_drm.c \ radeon_bo.c \ radeon_cs.c - + RADEON_COMMON_SOURCES = \ radeon_bo_legacy.c \ + radeon_buffer_objects.c \ radeon_common_context.c \ radeon_common.c \ radeon_cs_legacy.c \ @@ -17,17 +18,19 @@ RADEON_COMMON_SOURCES = \ radeon_fbo.c \ radeon_lock.c \ radeon_mipmap_tree.c \ + radeon_pixel_read.c \ radeon_queryobj.c \ radeon_span.c \ radeon_texture.c \ - radeon_tex_copy.c + radeon_tex_copy.c \ + radeon_tex_getimage.c \ + radeon_tile.c DRIVER_SOURCES = r200_context.c \ r200_ioctl.c \ r200_state.c \ r200_state_init.c \ r200_cmdbuf.c \ - r200_pixel.c \ r200_tex.c \ r200_texstate.c \ r200_tcl.c \ diff --git a/lib/libGL/dri/r300/Makefile b/lib/libGL/dri/r300/Makefile index 6dedc9c23..e47d4f522 100644 --- a/lib/libGL/dri/r300/Makefile +++ b/lib/libGL/dri/r300/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.4 2010/05/22 20:14:15 matthieu Exp $ +# $OpenBSD: Makefile,v 1.5 2011/10/23 13:57:36 matthieu Exp $ LIB= r300_dri.so @@ -27,10 +27,13 @@ RADEON_COMMON_SOURCES = \ radeon_fbo.c \ radeon_lock.c \ radeon_mipmap_tree.c \ - radeon_span.c \ + radeon_pixel_read.c \ radeon_queryobj.c \ + radeon_span.c \ radeon_texture.c \ - radeon_tex_copy.c + radeon_tex_copy.c \ + radeon_tex_getimage.c \ + radeon_tile.c DRIVER_SOURCES = \ radeon_screen.c \ @@ -55,17 +58,24 @@ DRIVER_SOURCES = \ COMPILER_SOURCES = \ radeon_code.c \ radeon_compiler.c \ + radeon_compiler_util.c \ + radeon_emulate_branches.c \ + radeon_emulate_loops.c \ radeon_program.c \ radeon_program_print.c \ radeon_opcodes.c \ radeon_program_alu.c \ radeon_program_pair.c \ + radeon_program_tex.c \ radeon_pair_translate.c \ radeon_pair_schedule.c \ radeon_pair_regalloc.c \ radeon_dataflow.c \ radeon_dataflow_deadcode.c \ radeon_dataflow_swizzles.c \ + radeon_optimize.c \ + radeon_remove_constants.c \ + radeon_rename_regs.c \ r3xx_fragprog.c \ r300_fragprog.c \ r300_fragprog_swizzle.c \ @@ -88,6 +98,8 @@ DRIVER_DEFINES = -DRADEON_R300 \ .include <bsd.xorg.mk> +LDADD+= -ldrm_radeon + .PATH: $(MESA)/drivers/dri/r300 .PATH: $(MESA)/drivers/dri/r300/compiler .PATH: $(MESA)/drivers/dri/radeon diff --git a/lib/libGL/dri/r600/Makefile b/lib/libGL/dri/r600/Makefile index 6b1ab1f99..eebc8a32a 100644 --- a/lib/libGL/dri/r600/Makefile +++ b/lib/libGL/dri/r600/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 2011/05/02 21:55:21 oga Exp $ +# $OpenBSD: Makefile,v 1.3 2011/10/23 13:57:36 matthieu Exp $ LIB= r600_dri.so @@ -22,10 +22,13 @@ RADEON_COMMON_SOURCES = \ radeon_fbo.c \ radeon_lock.c \ radeon_mipmap_tree.c \ + radeon_pixel_read.c \ + radeon_queryobj.c \ radeon_span.c \ radeon_texture.c \ - radeon_queryobj.c \ - radeon_tex_copy.c + radeon_tex_copy.c \ + radeon_tex_getimage.c \ + radeon_tile.c DRIVER_SOURCES = \ radeon_screen.c \ @@ -47,6 +50,16 @@ DRIVER_SOURCES = \ r600_texstate.c \ r600_blit.c \ r700_debug.c \ + evergreen_context.c \ + evergreen_state.c \ + evergreen_tex.c \ + evergreen_ioctl.c \ + evergreen_render.c \ + evergreen_chip.c \ + evergreen_vertprog.c \ + evergreen_fragprog.c \ + evergreen_oglprog.c \ + evergreen_blit.c \ $(RADEON_COMMON_SOURCES) \ $(EGL_SOURCES) \ $(CS_SOURCES) @@ -59,6 +72,7 @@ DRIVER_DEFINES = -DRADEON_R600 \ -I$(MESA)/drivers/dri/radeon \ -I$(MESA)/drivers/dri/radeon/server + .include <bsd.xorg.mk> LDADD+= -ldrm_radeon diff --git a/lib/libGL/dri/radeon/Makefile b/lib/libGL/dri/radeon/Makefile index 7fd5f85a3..e0aa4fca6 100644 --- a/lib/libGL/dri/radeon/Makefile +++ b/lib/libGL/dri/radeon/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 2010/05/22 20:14:15 matthieu Exp $ +# $OpenBSD: Makefile,v 1.3 2011/10/23 13:57:36 matthieu Exp $ LIB= radeon_dri.so @@ -9,6 +9,7 @@ CS_SOURCES = \ RADEON_COMMON_SOURCES = \ radeon_bo_legacy.c \ + radeon_buffer_objects.c \ radeon_common_context.c \ radeon_common.c \ radeon_cs_legacy.c \ @@ -17,10 +18,13 @@ RADEON_COMMON_SOURCES = \ radeon_fbo.c \ radeon_lock.c \ radeon_mipmap_tree.c \ + radeon_pixel_read.c \ radeon_queryobj.c \ radeon_span.c \ radeon_texture.c \ - radeon_tex_copy.c + radeon_tex_copy.c \ + radeon_tex_getimage.c \ + radeon_tile.c DRIVER_SOURCES = \ radeon_context.c \ diff --git a/lib/libGL/dri/swrast/Makefile b/lib/libGL/dri/swrast/Makefile index 3bde357ca..446278f3d 100644 --- a/lib/libGL/dri/swrast/Makefile +++ b/lib/libGL/dri/swrast/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.3 2010/05/22 20:14:15 matthieu Exp $ +# $OpenBSD: Makefile,v 1.4 2011/10/23 13:57:36 matthieu Exp $ LIB= swrast_dri.so @@ -9,7 +9,8 @@ PICFLAG = -fPIC SWRAST_COMMON_SOURCES = \ driverfuncs.c \ - utils.c + utils.c \ + drisw_util.c DRIVER_SOURCES = \ swrast.c \ diff --git a/lib/libGL/glsl/Makefile b/lib/libGL/glsl/Makefile index adb59c32e..4c191965f 100644 --- a/lib/libGL/glsl/Makefile +++ b/lib/libGL/glsl/Makefile @@ -1,6 +1,7 @@ -# $OpenBSD: Makefile,v 1.1 2010/05/22 20:14:15 matthieu Exp $ +# $OpenBSD: Makefile,v 1.2 2011/10/23 13:57:36 matthieu Exp $ -SUBDIR= pp cl apps +SUBDIR= libglsl +# glsl_compiler glcpp build depend all install clean cleandir: _SUBDIRUSE diff --git a/lib/libGL/glsl/Makefile.inc b/lib/libGL/glsl/Makefile.inc deleted file mode 100644 index 9af73c621..000000000 --- a/lib/libGL/glsl/Makefile.inc +++ /dev/null @@ -1,39 +0,0 @@ -# $OpenBSD: Makefile.inc,v 1.2 2010/08/25 17:44:24 todd Exp $ - - -.if ${MACHINE_ARCH} == powerpc || ${MACHINE_ARCH} == sparc -PICFLAG=-fPIC -.endif - -OBJS = ${C_SOURCES:.c=.so} - -CPPFLAGS = \ - -I${.CURDIR} ${LIBRARY_INCLUDES} - -.if defined(LIB) -all: ${LIB}_pic.a -.endif - -${LIB}_pic.a: ${OBJS} $(DPADD) - @rm -f ${LIB}_pic.a - @${AR} cq ${LIB}_pic.a `${LORDER} ${OBJS} | tsort -q` - ${RANLIB} ${LIB}_pic.a - -clean: - rm -f ${LIB}_pic.a ${OBJS} - -cleandir: clean - -install: - @echo "noting to install" - -.SUFFIXES: -.SUFFIXES: .a .c .o .so - -.c.so: - ${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o - @${LD} -X -r ${.TARGET}.o -o ${.TARGET} - @rm -f ${.TARGET}.o - - -.include <bsd.dep.mk> diff --git a/lib/libGL/glsl/apps/Makefile b/lib/libGL/glsl/apps/Makefile deleted file mode 100644 index 389b7f26e..000000000 --- a/lib/libGL/glsl/apps/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# $OpenBSD: Makefile,v 1.1 2010/05/22 20:14:15 matthieu Exp $ - -TOP= ${.CURDIR}/../../../../dist/Mesa - -LIBS = \ - ../pp/libglslpp_pic.a \ - ../cl/libglslcl_pic.a - -SOURCES = \ - compile.c \ - process.c \ - purify.c \ - tokenise.c \ - version.c - -APPS = $(SOURCES:%.c=%) - -CPPFLAGS = -I${.CURDIR} - -.SUFFIXES: -.SUFFIXES: .c - -.c: - ${CC} ${LDFLAGS} -o ${.TARGET} ${.IMPSRC} ${LIBS} - -all: ${APPS} - -install: - -clean: - rm -f ${APPS} - -cleandir: clean - -.include <bsd.xorg.mk> - -.PATH: ${TOP}/src/glsl/apps diff --git a/lib/libGL/glsl/cl/Makefile b/lib/libGL/glsl/cl/Makefile deleted file mode 100644 index ab52ee53e..000000000 --- a/lib/libGL/glsl/cl/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# $OpenBSD: Makefile,v 1.2 2010/05/30 20:42:44 matthieu Exp $ - -TOP= ${.CURDIR}/../../../../dist/Mesa - -C_SOURCES = \ - sl_cl_parse.c - -LIB= libglslcl - -.include <bsd.xorg.mk> - -.PATH: ${TOP}/src/glsl/cl diff --git a/lib/libGL/glsl/glcpp/Makefile b/lib/libGL/glsl/glcpp/Makefile new file mode 100644 index 000000000..2362c90a7 --- /dev/null +++ b/lib/libGL/glsl/glcpp/Makefile @@ -0,0 +1,45 @@ +# $OpenBSD: Makefile,v 1.1 2011/10/23 13:57:36 matthieu Exp $ +.include <bsd.xconf.mk> + +MESA= ${.CURDIR}/../../../../dist/Mesa/src/mesa +MAPI= ${.CURDIR}/../../../../dist/Mesa/src/mapi +GLSL= ${.CURDIR}/../../../../dist/Mesa/src/glsl + +MESA_INCLUDE= ${.CURDIR}/../../../../dist/Mesa/include + + +GLCPP_SOURCES = \ + hash_table.c \ + glcpp.c + +INCLUDES= \ + -I${X11BASE}/include/GL \ + -I$(GLSL) \ + -I$(GLSL)/glcpp \ + -I$(MESA) \ + -I$(MAPI) \ + -I$(MESA_INCLUDE) + +CPPFLAGS+= $(INCLUDES) $(DEFINES) + +SRCS= $(GLCPP_SOURCES) + +OBJS= $(GLCPP_SOURCES:.c=.o) \ + +PROG= glcpp + +LDADD= ../libglsl/libglsl.a + +all: ${PROG} + +clean: + rm -f ${OBJS} ${PROG} + +${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD} + ${CXX} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} + +.include <bsd.xorg.mk> + +.PATH: ${GLSL} +.PATH: ${GLSL}/glcpp +.PATH: ${MESA}/program diff --git a/lib/libGL/glsl/glsl_compiler/Makefile b/lib/libGL/glsl/glsl_compiler/Makefile new file mode 100644 index 000000000..080965511 --- /dev/null +++ b/lib/libGL/glsl/glsl_compiler/Makefile @@ -0,0 +1,55 @@ +# $OpenBSD: Makefile,v 1.1 2011/10/23 13:57:36 matthieu Exp $ +.include <bsd.xconf.mk> + +MESA= ${.CURDIR}/../../../../dist/Mesa/src/mesa +MAPI= ${.CURDIR}/../../../../dist/Mesa/src/mapi +GLSL= ${.CURDIR}/../../../../dist/Mesa/src/glsl + +MESA_INCLUDE= ${.CURDIR}/../../../../dist/Mesa/include + +GLSL2_C_SOURCES = \ + hash_table.c \ + symbol_table.c +GLSL2_CXX_SOURCES = \ + main.cpp + +INCLUDES= \ + -I${X11BASE}/include/GL \ + -I$(GLSL) \ + -I$(GLSL)/glcpp \ + -I$(MESA) \ + -I$(MAPI) \ + -I$(MESA_INCLUDE) + +CPPFLAGS+= $(INCLUDES) $(DEFINES) + +SRCS= $(GLSL2_C_SOURCES) \ + $(GLSL2_CXX_SOURCES) + +OBJS= $(GLSL2_C_SOURCES:.c=.o) \ + $(GLSL2_CXX_SOURCES:.cpp=.o) + +PROG= glsl_compiler + +LDADD= ../libglsl/libglsl.a + +all: ${PROG} + +clean: + rm -f ${OBJS} ${PROG} + +.SUFFIXES: .cpp + +.cpp.o: + @echo "${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}" + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD} + ${CXX} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} + +.include <bsd.xorg.mk> + +.PATH: ${GLSL} +.PATH: ${MESA}/program diff --git a/lib/libGL/glsl/libglsl/Makefile b/lib/libGL/glsl/libglsl/Makefile new file mode 100644 index 000000000..a138343f3 --- /dev/null +++ b/lib/libGL/glsl/libglsl/Makefile @@ -0,0 +1,138 @@ +# $OpenBSD: Makefile,v 1.1 2011/10/23 13:57:36 matthieu Exp $ +.include <bsd.xconf.mk> + +MESA= ${.CURDIR}/../../../../dist/Mesa/src/mesa +MAPI= ${.CURDIR}/../../../../dist/Mesa/src/mapi +GLSL= ${.CURDIR}/../../../../dist/Mesa/src/glsl + +MESA_INCLUDE= ${.CURDIR}/../../../../dist/Mesa/include + + +LIBGLCPP_SOURCES = \ + glcpp-lex.c \ + glcpp-parse.c \ + pp.c + +GLCPP_SOURCES = \ + $(LIBGLCPP_SOURCES) \ + glcpp.c + +C_SOURCES = \ + strtod.c \ + ralloc.c \ + $(LIBGLCPP_SOURCES) + +CXX_SOURCES = \ + ast_expr.cpp \ + ast_function.cpp \ + ast_to_hir.cpp \ + ast_type.cpp \ + builtin_function.cpp \ + glsl_lexer.cpp \ + glsl_parser.cpp \ + glsl_parser_extras.cpp \ + glsl_symbol_table.cpp \ + glsl_types.cpp \ + hir_field_selection.cpp \ + ir.cpp \ + ir_basic_block.cpp \ + ir_clone.cpp \ + ir_constant_expression.cpp \ + ir_expression_flattening.cpp \ + ir_function.cpp \ + ir_function_can_inline.cpp \ + ir_hierarchical_visitor.cpp \ + ir_hv_accept.cpp \ + ir_import_prototypes.cpp \ + ir_print_visitor.cpp \ + ir_reader.cpp \ + ir_rvalue_visitor.cpp \ + ir_set_program_inouts.cpp \ + ir_validate.cpp \ + ir_variable.cpp \ + ir_variable_refcount.cpp \ + link_functions.cpp \ + linker.cpp \ + loop_analysis.cpp \ + loop_controls.cpp \ + loop_unroll.cpp \ + lower_discard.cpp \ + lower_if_to_cond_assign.cpp \ + lower_instructions.cpp \ + lower_jumps.cpp \ + lower_mat_op_to_vec.cpp \ + lower_noise.cpp \ + lower_texture_projection.cpp \ + lower_variable_index_to_cond_assign.cpp \ + lower_vec_index_to_cond_assign.cpp \ + lower_vec_index_to_swizzle.cpp \ + lower_vector.cpp \ + main.cpp \ + opt_algebraic.cpp \ + opt_constant_folding.cpp \ + opt_constant_propagation.cpp \ + opt_constant_variable.cpp \ + opt_copy_propagation.cpp \ + opt_dead_code.cpp \ + opt_dead_code_local.cpp \ + opt_dead_functions.cpp \ + opt_discard_simplification.cpp \ + opt_function_inlining.cpp \ + opt_if_simplification.cpp \ + opt_noop_swizzle.cpp \ + opt_redundant_jumps.cpp \ + opt_structure_splitting.cpp \ + opt_swizzle_swizzle.cpp \ + opt_tree_grafting.cpp \ + s_expression.cpp + +LIB= glsl + +SRCS= \ + $(C_SOURCES) \ + $(CXX_SOURCES) + +OBJS+= $(CXX_SOURCES:.cpp=.o) + +INCLUDES= \ + -I${X11BASE}/include/GL \ + -I$(GLSL) \ + -I$(GLSL)/glcpp \ + -I$(MESA) \ + -I$(MAPI) \ + -I$(MESA_INCLUDE) + +CPPFLAGS+= $(INCLUDES) $(DEFINES) + +NOPROFILE= + +obj: _xenocara_obj + +install: + @echo "Not installing libglsl" + +.include <bsd.lib.mk> + +# Tweak suffixes: only .cpp is used for C++, +# ignore .l and .y to avoid rebuilding cpp-{lex,parse}.c +# which need bison/recent flex. +.SUFFIXES: +.SUFFIXES: .out .o .go .po .so .S .s .c .cc .cpp .f .ln .m4 .m + +.cpp.o: + @echo "${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}" + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.cpp.so: + @echo "${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" + @${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.include <bsd.xorg.mk> + +.PATH: ${GLSL} +.PATH.cpp: ${GLSL} +.PATH: ${GLSL}/glcpp diff --git a/lib/libGL/glsl/pp/Makefile b/lib/libGL/glsl/pp/Makefile deleted file mode 100644 index 2f06d09fc..000000000 --- a/lib/libGL/glsl/pp/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# $OpenBSD: Makefile,v 1.1 2010/05/22 20:14:15 matthieu Exp $ - -TOP= ${.CURDIR}/../../../../dist/Mesa - -C_SOURCES= \ - sl_pp_context.c \ - sl_pp_define.c \ - sl_pp_dict.c \ - sl_pp_error.c \ - sl_pp_expression.c \ - sl_pp_extension.c \ - sl_pp_if.c \ - sl_pp_line.c \ - sl_pp_macro.c \ - sl_pp_pragma.c \ - sl_pp_process.c \ - sl_pp_purify.c \ - sl_pp_token.c \ - sl_pp_token_util.c \ - sl_pp_version.c - -LIB= libglslpp - -.include <bsd.xorg.mk> - -.PATH: ${TOP}/src/glsl/pp diff --git a/lib/libGL/libmesa/Makefile b/lib/libGL/libmesa/Makefile index bbfb88ce6..ef73b9787 100644 --- a/lib/libGL/libmesa/Makefile +++ b/lib/libGL/libmesa/Makefile @@ -1,24 +1,23 @@ -# $OpenBSD: Makefile,v 1.10 2010/05/22 20:14:15 matthieu Exp $ +# $OpenBSD: Makefile,v 1.11 2011/10/23 13:57:36 matthieu Exp $ MESA= ${.CURDIR}/../../../dist/Mesa/src/mesa -MESA_INCLUDE= ${.CURDIR}/../../../dist/Mesa/include +MAPI= ${.CURDIR}/../../../dist/Mesa/src/mapi +GLSL= ${.CURDIR}/../../../dist/Mesa/src/glsl -SUBDIR = shader/slang/library +MESA_INCLUDE= ${.CURDIR}/../../../dist/Mesa/include CPP= cpp -notraditional CPPFLAGS+= \ -I. \ + -I${MAPI} \ -I${MESA_INCLUDE} \ -I${MESA_INCLUDE}/GL/internal \ -I${MESA} \ -I${MESA}/main \ -I${MESA}/math \ - -I${MESA}/glapi \ -I${MESA}/tnl \ - -I${MESA}/shader \ - -I${MESA}/shader/grammar \ - -I${MESA}/shader/slang \ + -I${GLSL} \ -I${.OBJDIR}/shader/slang \ -I${X11BASE}/include \ -I/usr/include/dev/pci/drm \ @@ -43,14 +42,21 @@ CPPFLAGS += \ -D__GLX_ALIGN64 -DUSE_X86_64_ASM .endif +# this is part of MAIN_SOURCES +MAIN_ES_SOURCES = \ + api_exec_es1.c \ + api_exec_es2.c + # main -MAIN_SOURCES= \ +MAIN_SOURCES = \ api_arrayelt.c \ api_exec.c \ api_loopback.c \ api_noop.c \ api_validate.c \ accum.c \ + arbprogram.c \ + atifragshader.c \ attrib.c \ arrayobj.c \ blend.c \ @@ -69,6 +75,7 @@ MAIN_SOURCES= \ dlist.c \ dlopen.c \ drawpix.c \ + drawtex.c \ enable.c \ enums.c \ eval.c \ @@ -93,18 +100,22 @@ MAIN_SOURCES= \ mipmap.c \ mm.c \ multisample.c \ + nvprogram.c \ + pack.c \ pixel.c \ pixelstore.c \ + pixeltransfer.c \ points.c \ polygon.c \ queryobj.c \ + querymatrix.c \ rastpos.c \ - rbadaptors.c \ readpix.c \ remap.c \ renderbuffer.c \ scissor.c \ - shaders.c \ + shaderapi.c \ + shaderobj.c \ shared.c \ state.c \ stencil.c \ @@ -120,14 +131,18 @@ MAIN_SOURCES= \ texgetimage.c \ teximage.c \ texobj.c \ + texpal.c \ texparam.c \ texrender.c \ texstate.c \ texstore.c \ + transformfeedback.c \ + uniforms.c \ varray.c \ version.c \ viewport.c \ - vtxfmt.c + vtxfmt.c \ + $(MAIN_ES_SOURCES) # math MATH_SOURCES= \ @@ -137,7 +152,9 @@ MATH_SOURCES= \ m_eval.c \ m_matrix.c \ m_translate.c \ - m_vector.c \ + m_vector.c + +MATH_XFORM_SOURCES = \ m_xform.c # swrast @@ -176,7 +193,7 @@ SWRAST_SETUP_SOURCES= \ ss_triangle.c # tnl -TNL_SOURCES= \ +TNL_SOURCES = \ t_context.c \ t_pipeline.c \ t_draw.c \ @@ -186,7 +203,6 @@ TNL_SOURCES= \ t_vb_texgen.c \ t_vb_texmat.c \ t_vb_vertex.c \ - t_vb_cull.c \ t_vb_fog.c \ t_vb_light.c \ t_vb_normals.c \ @@ -212,15 +228,11 @@ VBO_SOURCES = \ vbo_save_draw.c \ vbo_save_loopback.c -# shader -SHADER_SOURCES= \ +PROGRAM_SOURCES = \ arbprogparse.c \ - arbprogram.c \ - atifragshader.c \ hash_table.c \ lex.yy.c \ nvfragparse.c \ - nvprogram.c \ nvvertparse.c \ program.c \ program_parse.tab.c \ @@ -236,30 +248,12 @@ SHADER_SOURCES= \ prog_statevars.c \ prog_uniform.c \ programopt.c \ - symbol_table.c \ - shader_api.c - -# shader/slang -SLANG_SOURCES= \ - slang_builtin.c \ - slang_codegen.c \ - slang_compile.c \ - slang_compile_function.c \ - slang_compile_operation.c \ - slang_compile_struct.c \ - slang_compile_variable.c \ - slang_emit.c \ - slang_ir.c \ - slang_label.c \ - slang_link.c \ - slang_log.c \ - slang_mem.c \ - slang_print.c \ - slang_simplify.c \ - slang_storage.c \ - slang_typeinfo.c \ - slang_vartable.c \ - slang_utility.c + register_allocate.c \ + symbol_table.c + +SHADER_CXX_SOURCES = \ + ir_to_mesa.cpp \ + sampler.cpp .if ${MACHINE_ARCH} == i386 ASM_C_SOURCES= \ @@ -315,36 +309,41 @@ COMMON_DRIVER_SOURCES = \ MESA_SOURCES = \ $(MAIN_SOURCES) \ $(MATH_SOURCES) \ + $(MATH_XFORM_SOURCES) \ $(VBO_SOURCES) \ $(TNL_SOURCES) \ - $(SHADER_SOURCES) \ + $(PROGRAM_SOURCES) \ $(SWRAST_SOURCES) \ $(SWRAST_SETUP_SOURCES) \ $(COMMON_DRIVER_SOURCES) \ - $(ASM_C_SOURCES) \ - $(SLANG_SOURCES) + $(ASM_C_SOURCES) + +MESA_CXX_SOURCES = \ + $(SHADER_CXX_SOURCES) SRCS= ${MESA_SOURCES} \ - ${ASM_SOURCES} + ${MESA_CXX_SOURCES} \ + ${ASM_SOURCES} \ + _atexit.c OBJS+= ${SRCS:N*.h:R:S/$/.so/g} LIB= libmesa -all: _SUBDIRUSE ${LIB}_pic.a +all: ${LIB}_pic.a obj: _xenocara_obj install: @echo "Not installing libmesa" -clean: _SUBDIRUSE +clean: rm -f ${LIB}_pic.a ${OBJS} $(CLEANFILES) cleandir: clean .SUFFIXES: -.SUFFIXES: .a .c .o .S .s .so +.SUFFIXES: .a .c .cpp .o .S .s .so .c.so: @echo "${COMPILE.c} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" @@ -352,6 +351,12 @@ cleandir: clean @${LD} -X -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o +.cpp.so: + @echo "${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" + @${COMPILE.cc} ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o + @${LD} -X -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + .S.so .s.so: @echo "${CPP} -DPIC ${CPPFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ ${AS} ${ASPICFLAG} -o ${.TARGET}" @@ -360,12 +365,12 @@ cleandir: clean @${LD} -X -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o + ${LIB}_pic.a: ${OBJS} $(DPADD) @rm -f ${LIB}_pic.a @${AR} cq ${LIB}_pic.a `${LORDER} ${OBJS} | tsort -q` ${RANLIB} ${LIB}_pic.a - .if ${MACHINE_ARCH} == i386 || ${MACHINE_ARCH} == amd64 gen_matypes: gen_matypes.c $(CC) $(CPPFLAGS) $(CFLAGS) ${MESA}/x86/gen_matypes.c -o gen_matypes @@ -409,22 +414,16 @@ x86_xform4.so: matypes.h .PATH: ${MESA}/x86-64 .PATH: ${MESA}/x86 .endif -.PATH: ${MESA}/glapi +.PATH: ${MAPI}/glapi .PATH: ${MESA}/main .PATH: ${MESA}/math .PATH: ${MESA}/swrast .PATH: ${MESA}/swrast_setup .PATH: ${MESA}/tnl -.PATH: ${MESA}/shader -.PATH: ${MESA}/shader/grammar -.PATH: ${MESA}/shader/slang -.PATH: ${MESA}/shader/slang/MachineIndependent -.PATH: ${MESA}/shader/slang/MachineIndependent/preprocessor -.PATH: ${MESA}/shader/slang/OGLCompilersDLL -.PATH: ${MESA}/shader/slang/OSDependent/Linux +.PATH: ${MESA}/program .PATH: ${MESA}/vbo .PATH: ${MESA}/drivers/common - +.PATH: ${.CURDIR}/generated .include <bsd.xorg.mk> diff --git a/lib/libGL/libmesa/_atexit.c b/lib/libGL/libmesa/_atexit.c new file mode 100644 index 000000000..5e2e7f03f --- /dev/null +++ b/lib/libGL/libmesa/_atexit.c @@ -0,0 +1,12 @@ +/** + ** Hack for OpenBSD atexit + ** Author: Matthew Dempsky <matthew@dempsky.org> + **/ +extern int __cxa_atexit(void (*)(void *), void *, void *); +extern void *__dso_handle; + +int __attribute__((visibility("hidden"))) +atexit(void (*fn)(void)) +{ + return (__cxa_atexit((void (*)(void *))fn, 0, &__dso_handle)); +} diff --git a/lib/libGL/libmesa/generated/Makefile b/lib/libGL/libmesa/generated/Makefile new file mode 100644 index 000000000..431ff4d88 --- /dev/null +++ b/lib/libGL/libmesa/generated/Makefile @@ -0,0 +1,31 @@ +# $OpenBSD: Makefile,v 1.1 2011/10/23 13:57:36 matthieu Exp $ + +MESA= ${.CURDIR}/../../../../dist/Mesa/src/mesa + +PYTHON= python${PYTHON_VERSION} +PYTHON_FLAGS= -t -O -O + +GENERATED= api_exec_es1.c api_exec_es2.c + +all: ${GENERATED} + +obj: + +depend: + +install: + +clean distclean: + rm -f ${GENERATED} + +api_exec_es1.c: APIspec.xml es_generator.py APIspecutil.py APIspec.py + $(PYTHON) $(PYTHON_FLAGS) ${MESA}/main/es_generator.py -S ${MESA}/main/APIspec.xml -V GLES1.1 > $@ + +api_exec_es2.c: APIspec.xml es_generator.py APIspecutil.py APIspec.py + $(PYTHON) $(PYTHON_FLAGS) ${MESA}/main/es_generator.py -S ${MESA}/main/APIspec.xml -V GLES2.0 > $@ + +.SUFFIXES: .py .xml + +.PATH: ${MESA}/main + +.include <bsd.xorg.mk> diff --git a/lib/libGL/libmesa/generated/api_exec_es1.c b/lib/libGL/libmesa/generated/api_exec_es1.c new file mode 100644 index 000000000..54b3f0d62 --- /dev/null +++ b/lib/libGL/libmesa/generated/api_exec_es1.c @@ -0,0 +1,4821 @@ +/* DO NOT EDIT ************************************************* + * THIS FILE AUTOMATICALLY GENERATED BY THE es_generator.py SCRIPT + * API specification file: /share/OpenBSD/xenocara/lib/libGL/libmesa/generated/../../../../dist/Mesa/src/mesa/main/APIspec.xml + * GLES version: GLES1.1 + * date: 2011-05-15 15:41:33 + */ + + +#include "GLES/gl.h" +#include "GLES/glext.h" +#include "main/mfeatures.h" + +#if FEATURE_ES1 + + +/* These types are needed for the Mesa veneer, but are not defined in + * the standard GLES headers. + */ +typedef double GLdouble; +typedef double GLclampd; + +/* Mesa error handling requires these */ +extern void *_mesa_get_current_context(void); +extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... ); + +#include "main/compiler.h" +#include "main/api_exec.h" +#include "main/remap.h" + +/* cannot include main/dispatch.h here */ +#ifdef IN_DRI_DRIVER +#define _GLAPI_USE_REMAP_TABLE +#endif +/* glapi uses GLAPIENTRY while GLES headers define GL_APIENTRY */ +#ifndef GLAPIENTRY +#define GLAPIENTRY GL_APIENTRY +#endif +#include "es1api/glapi/glapitable.h" +#include "es1api/glapi/glapioffsets.h" +#include "es1api/glapi/glapidispatch.h" + +#if FEATURE_remap_table + +#if !FEATURE_GL +int driDispatchRemapTable[driDispatchRemapTable_size]; +#endif + +#define need_MESA_remap_table + +#include "es1api/main/remap_helper.h" + +void +_mesa_init_remap_table_es1(void) +{ + _mesa_do_init_remap_table(_mesa_function_pool, + driDispatchRemapTable_size, + MESA_remap_table_functions); +} + +void +_mesa_map_static_functions_es1(void) +{ +} + +#endif + +typedef void (*_glapi_proc)(void); /* generic function pointer */ + +/************************************************************* + * Generated functions begin here + */ + +extern void GL_APIENTRY _mesa_ActiveTextureARB(GLenum texture); +static void GL_APIENTRY _es_ActiveTexture(GLenum texture) +{ + switch(texture) { + case GL_TEXTURE0: + case GL_TEXTURE1: + case GL_TEXTURE2: + case GL_TEXTURE3: + case GL_TEXTURE4: + case GL_TEXTURE5: + case GL_TEXTURE6: + case GL_TEXTURE7: + case GL_TEXTURE8: + case GL_TEXTURE9: + case GL_TEXTURE10: + case GL_TEXTURE11: + case GL_TEXTURE12: + case GL_TEXTURE13: + case GL_TEXTURE14: + case GL_TEXTURE15: + case GL_TEXTURE16: + case GL_TEXTURE17: + case GL_TEXTURE18: + case GL_TEXTURE19: + case GL_TEXTURE20: + case GL_TEXTURE21: + case GL_TEXTURE22: + case GL_TEXTURE23: + case GL_TEXTURE24: + case GL_TEXTURE25: + case GL_TEXTURE26: + case GL_TEXTURE27: + case GL_TEXTURE28: + case GL_TEXTURE29: + case GL_TEXTURE30: + case GL_TEXTURE31: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glActiveTexture(texture=0x%x)", texture); + return; + } + + _mesa_ActiveTextureARB(texture); +} + +extern void GL_APIENTRY _mesa_AlphaFunc(GLenum func, GLclampf ref); +static void GL_APIENTRY _es_AlphaFunc(GLenum func, GLclampf ref) +{ + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_EQUAL: + case GL_LEQUAL: + case GL_GREATER: + case GL_NOTEQUAL: + case GL_GEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glAlphaFunc(func=0x%x)", func); + return; + } + + _mesa_AlphaFunc(func, ref); +} + +extern void GL_APIENTRY _mesa_AlphaFunc(GLenum func, GLclampf ref); +static void GL_APIENTRY _es_AlphaFuncx(GLenum func, GLclampx ref) +{ + GLclampf converted_ref; + + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_EQUAL: + case GL_LEQUAL: + case GL_GREATER: + case GL_NOTEQUAL: + case GL_GEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glAlphaFuncx(func=0x%x)", func); + return; + } + + converted_ref = (GLclampf) (ref / 65536.0f); + + _mesa_AlphaFunc(func, converted_ref); +} + +extern void GL_APIENTRY _mesa_BindBufferARB(GLenum target, GLuint buffer); +static void GL_APIENTRY _es_BindBuffer(GLenum target, GLuint buffer) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindBuffer(target=0x%x)", target); + return; + } + + _mesa_BindBufferARB(target, buffer); +} + +extern void GL_APIENTRY _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer); +static void GL_APIENTRY _es_BindFramebufferOES(GLenum target, GLuint framebuffer) +{ + switch(target) { + case GL_FRAMEBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindFramebufferOES(target=0x%x)", target); + return; + } + + _mesa_BindFramebufferEXT(target, framebuffer); +} + +extern void GL_APIENTRY _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer); +static void GL_APIENTRY _es_BindRenderbufferOES(GLenum target, GLuint renderbuffer) +{ + switch(target) { + case GL_RENDERBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindRenderbufferOES(target=0x%x)", target); + return; + } + + _mesa_BindRenderbufferEXT(target, renderbuffer); +} + +extern void GL_APIENTRY _mesa_BindTexture(GLenum target, GLuint texture); +static void GL_APIENTRY _es_BindTexture(GLenum target, GLuint texture) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindTexture(target=0x%x)", target); + return; + } + + _mesa_BindTexture(target, texture); +} + +extern void GL_APIENTRY _mesa_BlendEquation(GLenum mode); +static void GL_APIENTRY _es_BlendEquationOES(GLenum mode) +{ + switch(mode) { + case GL_FUNC_ADD_OES: + case GL_FUNC_SUBTRACT_OES: + case GL_FUNC_REVERSE_SUBTRACT_OES: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationOES(mode=0x%x)", mode); + return; + } + + _mesa_BlendEquation(mode); +} + +extern void GL_APIENTRY _mesa_BlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); +static void GL_APIENTRY _es_BlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha) +{ + switch(modeRGB) { + case GL_FUNC_ADD_OES: + case GL_FUNC_SUBTRACT_OES: + case GL_FUNC_REVERSE_SUBTRACT_OES: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparateOES(modeRGB=0x%x)", modeRGB); + return; + } + switch(modeAlpha) { + case GL_FUNC_ADD_OES: + case GL_FUNC_SUBTRACT_OES: + case GL_FUNC_REVERSE_SUBTRACT_OES: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparateOES(modeAlpha=0x%x)", modeAlpha); + return; + } + + _mesa_BlendEquationSeparateEXT(modeRGB, modeAlpha); +} + +extern void GL_APIENTRY _mesa_BlendFunc(GLenum sfactor, GLenum dfactor); +static void GL_APIENTRY _es_BlendFunc(GLenum sfactor, GLenum dfactor) +{ + switch(sfactor) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(sfactor=0x%x)", sfactor); + return; + } + switch(dfactor) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(dfactor=0x%x)", dfactor); + return; + } + + _mesa_BlendFunc(sfactor, dfactor); +} + +extern void GL_APIENTRY _mesa_BlendFuncSeparateEXT(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +static void GL_APIENTRY _es_BlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) +{ + switch(srcRGB) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(srcRGB=0x%x)", srcRGB); + return; + } + switch(dstRGB) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(dstRGB=0x%x)", dstRGB); + return; + } + switch(srcAlpha) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(srcAlpha=0x%x)", srcAlpha); + return; + } + switch(dstAlpha) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparateOES(dstAlpha=0x%x)", dstAlpha); + return; + } + + _mesa_BlendFuncSeparateEXT(srcRGB, dstRGB, srcAlpha, dstAlpha); +} + +extern void GL_APIENTRY _mesa_BufferDataARB(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); +static void GL_APIENTRY _es_BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(target=0x%x)", target); + return; + } + switch(usage) { + case GL_STATIC_DRAW: + case GL_DYNAMIC_DRAW: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(usage=0x%x)", usage); + return; + } + + _mesa_BufferDataARB(target, size, data, usage); +} + +extern void GL_APIENTRY _mesa_BufferSubDataARB(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data); +static void GL_APIENTRY _es_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferSubData(target=0x%x)", target); + return; + } + + _mesa_BufferSubDataARB(target, offset, size, data); +} + +extern GLenum GL_APIENTRY _mesa_CheckFramebufferStatusEXT(GLenum target); +static GLenum GL_APIENTRY _es_CheckFramebufferStatusOES(GLenum target) +{ + switch(target) { + case GL_FRAMEBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCheckFramebufferStatusOES(target=0x%x)", target); + return (GLenum) 0; + } + + return _mesa_CheckFramebufferStatusEXT(target); +} + +extern void GL_APIENTRY _mesa_Clear(GLbitfield mask); +static void GL_APIENTRY _es_Clear(GLbitfield mask) +{ + switch(mask) { + case 0: + case (GL_COLOR_BUFFER_BIT): + case (GL_DEPTH_BUFFER_BIT): + case (GL_STENCIL_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + case (GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glClear(mask=0x%x)", mask); + return; + } + + _mesa_Clear(mask); +} + +extern void GL_APIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#define _es_ClearColor _mesa_ClearColor + +extern void GL_APIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +static void GL_APIENTRY _es_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) +{ + GLclampf converted_red; + GLclampf converted_green; + GLclampf converted_blue; + GLclampf converted_alpha; + + converted_red = (GLclampf) (red / 65536.0f); + converted_green = (GLclampf) (green / 65536.0f); + converted_blue = (GLclampf) (blue / 65536.0f); + converted_alpha = (GLclampf) (alpha / 65536.0f); + + _mesa_ClearColor(converted_red, converted_green, converted_blue, converted_alpha); +} + +extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf depth); +#define _es_ClearDepthf _mesa_ClearDepthf + +extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf depth); +static void GL_APIENTRY _es_ClearDepthx(GLclampx depth) +{ + GLclampf converted_depth; + + converted_depth = (GLclampf) (depth / 65536.0f); + + _mesa_ClearDepthf(converted_depth); +} + +extern void GL_APIENTRY _mesa_ClearStencil(GLint s); +#define _es_ClearStencil _mesa_ClearStencil + +extern void GL_APIENTRY _mesa_ClientActiveTextureARB(GLenum texture); +static void GL_APIENTRY _es_ClientActiveTexture(GLenum texture) +{ + switch(texture) { + case GL_TEXTURE0: + case GL_TEXTURE1: + case GL_TEXTURE2: + case GL_TEXTURE3: + case GL_TEXTURE4: + case GL_TEXTURE5: + case GL_TEXTURE6: + case GL_TEXTURE7: + case GL_TEXTURE8: + case GL_TEXTURE9: + case GL_TEXTURE10: + case GL_TEXTURE11: + case GL_TEXTURE12: + case GL_TEXTURE13: + case GL_TEXTURE14: + case GL_TEXTURE15: + case GL_TEXTURE16: + case GL_TEXTURE17: + case GL_TEXTURE18: + case GL_TEXTURE19: + case GL_TEXTURE20: + case GL_TEXTURE21: + case GL_TEXTURE22: + case GL_TEXTURE23: + case GL_TEXTURE24: + case GL_TEXTURE25: + case GL_TEXTURE26: + case GL_TEXTURE27: + case GL_TEXTURE28: + case GL_TEXTURE29: + case GL_TEXTURE30: + case GL_TEXTURE31: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClientActiveTexture(texture=0x%x)", texture); + return; + } + + _mesa_ClientActiveTextureARB(texture); +} + +extern void GL_APIENTRY _mesa_ClipPlane(GLenum plane, GLdouble const * equation); +static void GL_APIENTRY _es_ClipPlanef(GLenum plane, const GLfloat *equation) +{ + register unsigned int i; + unsigned int n_equation = 4; + GLdouble converted_equation[4]; + + switch(plane) { + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClipPlanef(plane=0x%x)", plane); + return; + } + + for (i = 0; i < n_equation; i++) { + converted_equation[i] = (GLdouble) (equation[i]); + } + + _mesa_ClipPlane(plane, converted_equation); +} + +extern void GL_APIENTRY _mesa_ClipPlane(GLenum plane, GLdouble const * equation); +static void GL_APIENTRY _es_ClipPlanex(GLenum plane, const GLfixed *equation) +{ + register unsigned int i; + unsigned int n_equation = 4; + GLdouble converted_equation[4]; + + switch(plane) { + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glClipPlanex(plane=0x%x)", plane); + return; + } + + for (i = 0; i < n_equation; i++) { + converted_equation[i] = (GLdouble) (equation[i] / 65536.0); + } + + _mesa_ClipPlane(plane, converted_equation); +} + +extern void GL_APIENTRY _vbo_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#define _es_Color4f _vbo_Color4f + +extern void GL_APIENTRY _vbo_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +static void GL_APIENTRY _es_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) +{ + GLfloat converted_red; + GLfloat converted_green; + GLfloat converted_blue; + GLfloat converted_alpha; + + converted_red = (GLfloat) (red / 255.0f); + converted_green = (GLfloat) (green / 255.0f); + converted_blue = (GLfloat) (blue / 255.0f); + converted_alpha = (GLfloat) (alpha / 255.0f); + + _vbo_Color4f(converted_red, converted_green, converted_blue, converted_alpha); +} + +extern void GL_APIENTRY _vbo_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +static void GL_APIENTRY _es_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) +{ + GLfloat converted_red; + GLfloat converted_green; + GLfloat converted_blue; + GLfloat converted_alpha; + + converted_red = (GLfloat) (red / 65536.0f); + converted_green = (GLfloat) (green / 65536.0f); + converted_blue = (GLfloat) (blue / 65536.0f); + converted_alpha = (GLfloat) (alpha / 65536.0f); + + _vbo_Color4f(converted_red, converted_green, converted_blue, converted_alpha); +} + +extern void GL_APIENTRY _mesa_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#define _es_ColorMask _mesa_ColorMask + +extern void GL_APIENTRY _mesa_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ + switch(size) { + case 4: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glColorPointer(size=%d)", size); + return; + } + switch(type) { + case GL_UNSIGNED_BYTE: + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glColorPointer(type=0x%x)", type); + return; + } + + _mesa_ColorPointer(size, type, stride, pointer); +} + +extern void GL_APIENTRY _mesa_CompressedTexImage2DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_PALETTE4_RGB8_OES: + case GL_PALETTE4_RGBA8_OES: + case GL_PALETTE4_R5_G6_B5_OES: + case GL_PALETTE4_RGBA4_OES: + case GL_PALETTE4_RGB5_A1_OES: + case GL_PALETTE8_RGB8_OES: + case GL_PALETTE8_RGBA8_OES: + case GL_PALETTE8_R5_G6_B5_OES: + case GL_PALETTE8_RGBA4_OES: + case GL_PALETTE8_RGB5_A1_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(internalFormat=0x%x)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCompressedTexImage2D(border=%d)", border); + return; + } + + _mesa_CompressedTexImage2DARB(target, level, internalFormat, width, height, border, imageSize, data); +} + +extern void GL_APIENTRY _mesa_CompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(target=0x%x)", target); + return; + } + + _mesa_CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data); +} + +extern void GL_APIENTRY _mesa_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +static void GL_APIENTRY _es_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_ALPHA: + case GL_RGB: + case GL_RGBA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(internalFormat=0x%x)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(border=%d)", border); + return; + } + + _mesa_CopyTexImage2D(target, level, internalFormat, x, y, width, height, border); +} + +extern void GL_APIENTRY _mesa_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +static void GL_APIENTRY _es_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage2D(target=0x%x)", target); + return; + } + + _mesa_CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); +} + +extern void GL_APIENTRY _mesa_CullFace(GLenum mode); +static void GL_APIENTRY _es_CullFace(GLenum mode) +{ + switch(mode) { + case GL_FRONT: + case GL_BACK: + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCullFace(mode=0x%x)", mode); + return; + } + + _mesa_CullFace(mode); +} + +extern void GL_APIENTRY _mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer); +#define _es_DeleteBuffers _mesa_DeleteBuffersARB + +extern void GL_APIENTRY _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers); +#define _es_DeleteFramebuffersOES _mesa_DeleteFramebuffersEXT + +extern void GL_APIENTRY _mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers); +#define _es_DeleteRenderbuffersOES _mesa_DeleteRenderbuffersEXT + +extern void GL_APIENTRY _mesa_DeleteTextures(GLsizei n, const GLuint * textures); +#define _es_DeleteTextures _mesa_DeleteTextures + +extern void GL_APIENTRY _mesa_DepthFunc(GLenum func); +static void GL_APIENTRY _es_DepthFunc(GLenum func) +{ + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_EQUAL: + case GL_LEQUAL: + case GL_GREATER: + case GL_NOTEQUAL: + case GL_GEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDepthFunc(func=0x%x)", func); + return; + } + + _mesa_DepthFunc(func); +} + +extern void GL_APIENTRY _mesa_DepthMask(GLboolean flag); +#define _es_DepthMask _mesa_DepthMask + +extern void GL_APIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar); +#define _es_DepthRangef _mesa_DepthRangef + +extern void GL_APIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar); +static void GL_APIENTRY _es_DepthRangex(GLclampx zNear, GLclampx zFar) +{ + GLclampf converted_zNear; + GLclampf converted_zFar; + + converted_zNear = (GLclampf) (zNear / 65536.0f); + converted_zFar = (GLclampf) (zFar / 65536.0f); + + _mesa_DepthRangef(converted_zNear, converted_zFar); +} + +extern void GL_APIENTRY _mesa_Disable(GLenum cap); +static void GL_APIENTRY _es_Disable(GLenum cap) +{ + switch(cap) { + case GL_NORMALIZE: + case GL_RESCALE_NORMAL: + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + case GL_FOG: + case GL_LIGHTING: + case GL_COLOR_MATERIAL: + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + case GL_POINT_SMOOTH: + case GL_LINE_SMOOTH: + case GL_CULL_FACE: + case GL_POLYGON_OFFSET_FILL: + case GL_MULTISAMPLE: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_ALPHA_TO_ONE: + case GL_SAMPLE_COVERAGE: + case GL_TEXTURE_2D: + case GL_SCISSOR_TEST: + case GL_ALPHA_TEST: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_BLEND: + case GL_DITHER: + case GL_COLOR_LOGIC_OP: + case GL_POINT_SPRITE_OES: + case GL_MATRIX_PALETTE_OES: + case GL_TEXTURE_CUBE_MAP_OES: + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisable(cap=0x%x)", cap); + return; + } + + _mesa_Disable(cap); +} + +extern void GL_APIENTRY _mesa_DisableClientState(GLenum array); +static void GL_APIENTRY _es_DisableClientState(GLenum array) +{ + switch(array) { + case GL_VERTEX_ARRAY: + case GL_NORMAL_ARRAY: + case GL_COLOR_ARRAY: + case GL_TEXTURE_COORD_ARRAY: + case GL_MATRIX_INDEX_ARRAY_OES: + case GL_WEIGHT_ARRAY_OES: + case GL_POINT_SIZE_ARRAY_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisableClientState(array=0x%x)", array); + return; + } + + _mesa_DisableClientState(array); +} + +extern void GL_APIENTRY _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count); +static void GL_APIENTRY _es_DrawArrays(GLenum mode, GLint first, GLsizei count) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawArrays(mode=0x%x)", mode); + return; + } + + _mesa_DrawArrays(mode, first, count); +} + +extern void GL_APIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); +static void GL_APIENTRY _es_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(mode=0x%x)", mode); + return; + } + switch(type) { + case GL_UNSIGNED_BYTE: + case GL_UNSIGNED_SHORT: + case GL_UNSIGNED_INT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(type=0x%x)", type); + return; + } + + _mesa_DrawElements(mode, count, type, indices); +} + +extern void GL_APIENTRY _mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h); +#define _es_DrawTexfOES _mesa_DrawTexf + +extern void GL_APIENTRY _mesa_DrawTexfv(const GLfloat * coords); +#define _es_DrawTexfvOES _mesa_DrawTexfv + +extern void GL_APIENTRY _mesa_DrawTexi(GLint x, GLint y, GLint z, GLint w, GLint h); +#define _es_DrawTexiOES _mesa_DrawTexi + +extern void GL_APIENTRY _mesa_DrawTexiv(const GLint * coords); +#define _es_DrawTexivOES _mesa_DrawTexiv + +extern void GL_APIENTRY _mesa_DrawTexs(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h); +#define _es_DrawTexsOES _mesa_DrawTexs + +extern void GL_APIENTRY _mesa_DrawTexsv(const GLshort * coords); +#define _es_DrawTexsvOES _mesa_DrawTexsv + +extern void GL_APIENTRY _mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h); +static void GL_APIENTRY _es_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h) +{ + GLfloat converted_x; + GLfloat converted_y; + GLfloat converted_z; + GLfloat converted_w; + GLfloat converted_h; + + converted_x = (GLfloat) (x / 65536.0f); + converted_y = (GLfloat) (y / 65536.0f); + converted_z = (GLfloat) (z / 65536.0f); + converted_w = (GLfloat) (w / 65536.0f); + converted_h = (GLfloat) (h / 65536.0f); + + _mesa_DrawTexf(converted_x, converted_y, converted_z, converted_w, converted_h); +} + +extern void GL_APIENTRY _mesa_DrawTexfv(GLfloat const * coords); +static void GL_APIENTRY _es_DrawTexxvOES(const GLfixed *coords) +{ + register unsigned int i; + unsigned int n_coords = 5; + GLfloat converted_coords[5]; + + for (i = 0; i < n_coords; i++) { + converted_coords[i] = (GLfloat) (coords[i] / 65536.0f); + } + + _mesa_DrawTexfv(converted_coords); +} + +extern void GL_APIENTRY _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image); +static void GL_APIENTRY _es_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) +{ + switch(target) { + case GL_RENDERBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetRenderbufferStorageOES(target=0x%x)", target); + return; + } + + _mesa_EGLImageTargetRenderbufferStorageOES(target, image); +} + +extern void GL_APIENTRY _mesa_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); +static void GL_APIENTRY _es_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) +{ + switch(target) { + case GL_TEXTURE_2D: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetTexture2DOES(target=0x%x)", target); + return; + } + + _mesa_EGLImageTargetTexture2DOES(target, image); +} + +extern void GL_APIENTRY _mesa_Enable(GLenum cap); +static void GL_APIENTRY _es_Enable(GLenum cap) +{ + switch(cap) { + case GL_NORMALIZE: + case GL_RESCALE_NORMAL: + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + case GL_FOG: + case GL_LIGHTING: + case GL_COLOR_MATERIAL: + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + case GL_POINT_SMOOTH: + case GL_LINE_SMOOTH: + case GL_CULL_FACE: + case GL_POLYGON_OFFSET_FILL: + case GL_MULTISAMPLE: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_ALPHA_TO_ONE: + case GL_SAMPLE_COVERAGE: + case GL_TEXTURE_2D: + case GL_SCISSOR_TEST: + case GL_ALPHA_TEST: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_BLEND: + case GL_DITHER: + case GL_COLOR_LOGIC_OP: + case GL_POINT_SPRITE_OES: + case GL_MATRIX_PALETTE_OES: + case GL_TEXTURE_CUBE_MAP_OES: + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnable(cap=0x%x)", cap); + return; + } + + _mesa_Enable(cap); +} + +extern void GL_APIENTRY _mesa_EnableClientState(GLenum array); +static void GL_APIENTRY _es_EnableClientState(GLenum array) +{ + switch(array) { + case GL_VERTEX_ARRAY: + case GL_NORMAL_ARRAY: + case GL_COLOR_ARRAY: + case GL_TEXTURE_COORD_ARRAY: + case GL_MATRIX_INDEX_ARRAY_OES: + case GL_WEIGHT_ARRAY_OES: + case GL_POINT_SIZE_ARRAY_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnableClientState(array=0x%x)", array); + return; + } + + _mesa_EnableClientState(array); +} + +extern void GL_APIENTRY _mesa_Finish(void); +#define _es_Finish _mesa_Finish + +extern void GL_APIENTRY _mesa_Flush(void); +#define _es_Flush _mesa_Flush + +extern void GL_APIENTRY _mesa_Fogf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Fogf(GLenum pname, GLfloat param) +{ + switch(pname) { + case GL_FOG_MODE: + if (param != GL_EXP && param != GL_EXP2 && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogf(pname=0x%x)", pname); + return; + } + break; + case GL_FOG_DENSITY: + case GL_FOG_START: + case GL_FOG_END: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogf(pname=0x%x)", pname); + return; + } + + _mesa_Fogf(pname, param); +} + +extern void GL_APIENTRY _mesa_Fogfv(GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_Fogfv(GLenum pname, const GLfloat *params) +{ + switch(pname) { + case GL_FOG_MODE: /* size 1 */ + if (params[0] != GL_EXP && params[0] != GL_EXP2 && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogfv(pname=0x%x)", pname); + return; + } + break; + case GL_FOG_COLOR: /* size 4 */ + case GL_FOG_DENSITY: /* size 1 */ + case GL_FOG_START: /* size 1 */ + case GL_FOG_END: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogfv(pname=0x%x)", pname); + return; + } + + _mesa_Fogfv(pname, params); +} + +extern void GL_APIENTRY _mesa_Fogf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Fogx(GLenum pname, GLfixed param) +{ + GLfloat converted_param; + int convert_param_value = 1; + + switch(pname) { + case GL_FOG_MODE: + if (param != GL_EXP && param != GL_EXP2 && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_FOG_DENSITY: + case GL_FOG_START: + case GL_FOG_END: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogx(pname=0x%x)", pname); + return; + } + + if (convert_param_value) { + converted_param = (GLfloat) (param / 65536.0f); + } else { + converted_param = (GLfloat) param; + } + + _mesa_Fogf(pname, converted_param); +} + +extern void GL_APIENTRY _mesa_Fogfv(GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_Fogxv(GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(pname) { + case GL_FOG_MODE: + if (params[0] != GL_EXP && params[0] != GL_EXP2 && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_FOG_COLOR: + n_params = 4; + break; + case GL_FOG_DENSITY: + case GL_FOG_START: + case GL_FOG_END: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFogxv(pname=0x%x)", pname); + return; + } + + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + } else { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + } + + _mesa_Fogfv(pname, converted_params); +} + +extern void GL_APIENTRY _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +static void GL_APIENTRY _es_FramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) +{ + switch(target) { + case GL_FRAMEBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(target=0x%x)", target); + return; + } + switch(attachment) { + case GL_COLOR_ATTACHMENT0_OES: + case GL_DEPTH_ATTACHMENT_OES: + case GL_STENCIL_ATTACHMENT_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(attachment=0x%x)", attachment); + return; + } + switch(renderbuffertarget) { + case GL_RENDERBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbufferOES(renderbuffertarget=0x%x)", renderbuffertarget); + return; + } + + _mesa_FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer); +} + +extern void GL_APIENTRY _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +static void GL_APIENTRY _es_FramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + switch(target) { + case GL_FRAMEBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2DOES(target=0x%x)", target); + return; + } + switch(attachment) { + case GL_COLOR_ATTACHMENT0_OES: + case GL_DEPTH_ATTACHMENT_OES: + case GL_STENCIL_ATTACHMENT_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2DOES(attachment=0x%x)", attachment); + return; + } + switch(textarget) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture2DOES(textarget=0x%x)", textarget); + return; + } + + _mesa_FramebufferTexture2DEXT(target, attachment, textarget, texture, level); +} + +extern void GL_APIENTRY _mesa_FrontFace(GLenum mode); +static void GL_APIENTRY _es_FrontFace(GLenum mode) +{ + switch(mode) { + case GL_CW: + case GL_CCW: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFrontFace(mode=0x%x)", mode); + return; + } + + _mesa_FrontFace(mode); +} + +extern void GL_APIENTRY _mesa_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +static void GL_APIENTRY _es_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) +{ + GLdouble converted_left; + GLdouble converted_right; + GLdouble converted_bottom; + GLdouble converted_top; + GLdouble converted_zNear; + GLdouble converted_zFar; + + converted_left = (GLdouble) (left); + converted_right = (GLdouble) (right); + converted_bottom = (GLdouble) (bottom); + converted_top = (GLdouble) (top); + converted_zNear = (GLdouble) (zNear); + converted_zFar = (GLdouble) (zFar); + + _mesa_Frustum(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar); +} + +extern void GL_APIENTRY _mesa_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +static void GL_APIENTRY _es_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) +{ + GLdouble converted_left; + GLdouble converted_right; + GLdouble converted_bottom; + GLdouble converted_top; + GLdouble converted_zNear; + GLdouble converted_zFar; + + converted_left = (GLdouble) (left / 65536.0); + converted_right = (GLdouble) (right / 65536.0); + converted_bottom = (GLdouble) (bottom / 65536.0); + converted_top = (GLdouble) (top / 65536.0); + converted_zNear = (GLdouble) (zNear / 65536.0); + converted_zFar = (GLdouble) (zFar / 65536.0); + + _mesa_Frustum(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar); +} + +extern void GL_APIENTRY _mesa_GenBuffersARB(GLsizei n, GLuint * buffer); +#define _es_GenBuffers _mesa_GenBuffersARB + +extern void GL_APIENTRY _mesa_GenFramebuffersEXT(GLsizei n, GLuint * ids); +#define _es_GenFramebuffersOES _mesa_GenFramebuffersEXT + +extern void GL_APIENTRY _mesa_GenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers); +#define _es_GenRenderbuffersOES _mesa_GenRenderbuffersEXT + +extern void GL_APIENTRY _mesa_GenTextures(GLsizei n, GLuint * textures); +#define _es_GenTextures _mesa_GenTextures + +extern void GL_APIENTRY _mesa_GenerateMipmapEXT(GLenum target); +static void GL_APIENTRY _es_GenerateMipmapOES(GLenum target) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGenerateMipmapOES(target=0x%x)", target); + return; + } + + _mesa_GenerateMipmapEXT(target); +} + +extern void GL_APIENTRY _mesa_GetBooleanv(GLenum pname, GLboolean * params); +#define _es_GetBooleanv _mesa_GetBooleanv + +extern void GL_APIENTRY _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_BUFFER_SIZE: + case GL_BUFFER_USAGE: + case GL_BUFFER_ACCESS_OES: + case GL_BUFFER_MAPPED_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetBufferParameterivARB(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid ** params); +static void GL_APIENTRY _es_GetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(target=0x%x)", target); + return; + } + switch(pname) { + case GL_BUFFER_MAP_POINTER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(pname=0x%x)", pname); + return; + } + + _mesa_GetBufferPointervARB(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetClipPlane(GLenum plane, GLdouble * equation); +static void GL_APIENTRY _es_GetClipPlanef(GLenum plane, GLfloat *equation) +{ + register unsigned int i; + unsigned int n_equation = 4; + GLdouble converted_equation[4]; + + switch(plane) { + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetClipPlanef(plane=0x%x)", plane); + return; + } + + _mesa_GetClipPlane(plane, converted_equation); + for (i = 0; i < n_equation; i++) { + equation[i] = (GLfloat) (converted_equation[i]); + } +} + +extern void GL_APIENTRY _mesa_GetClipPlane(GLenum plane, GLdouble * equation); +static void GL_APIENTRY _es_GetClipPlanex(GLenum plane, GLfixed *equation) +{ + register unsigned int i; + unsigned int n_equation = 4; + GLdouble converted_equation[4]; + + switch(plane) { + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetClipPlanex(plane=0x%x)", plane); + return; + } + + _mesa_GetClipPlane(plane, converted_equation); + for (i = 0; i < n_equation; i++) { + equation[i] = (GLfixed) (converted_equation[i] * 65536); + } +} + +extern GLenum GL_APIENTRY _mesa_GetError(void); +#define _es_GetError _mesa_GetError + +extern void GL_APIENTRY _mesa_GetFixedv(GLenum pname, GLfixed * params); +#define _es_GetFixedv _mesa_GetFixedv + +extern void GL_APIENTRY _mesa_GetFloatv(GLenum pname, GLfloat * params); +#define _es_GetFloatv _mesa_GetFloatv + +extern void GL_APIENTRY _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params) +{ + switch(target) { + case GL_FRAMEBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameterivOES(target=0x%x)", target); + return; + } + switch(pname) { + case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameterivOES(pname=0x%x)", pname); + return; + } + + _mesa_GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params); +} + +extern void GL_APIENTRY _mesa_GetIntegerv(GLenum pname, GLint * params); +#define _es_GetIntegerv _mesa_GetIntegerv + +extern void GL_APIENTRY _mesa_GetLightfv(GLenum light, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetLightfv(GLenum light, GLenum pname, GLfloat *params) +{ + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightfv(light=0x%x)", light); + return; + } + switch(pname) { + case GL_AMBIENT: /* size 4 */ + case GL_DIFFUSE: /* size 4 */ + case GL_SPECULAR: /* size 4 */ + case GL_POSITION: /* size 4 */ + case GL_SPOT_DIRECTION: /* size 3 */ + case GL_SPOT_EXPONENT: /* size 1 */ + case GL_SPOT_CUTOFF: /* size 1 */ + case GL_CONSTANT_ATTENUATION: /* size 1 */ + case GL_LINEAR_ATTENUATION: /* size 1 */ + case GL_QUADRATIC_ATTENUATION: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightfv(pname=0x%x)", pname); + return; + } + + _mesa_GetLightfv(light, pname, params); +} + +extern void GL_APIENTRY _mesa_GetLightfv(GLenum light, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetLightxv(GLenum light, GLenum pname, GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightxv(light=0x%x)", light); + return; + } + switch(pname) { + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_SPECULAR: + case GL_POSITION: + n_params = 4; + break; + case GL_SPOT_DIRECTION: + n_params = 3; + break; + case GL_SPOT_EXPONENT: + case GL_SPOT_CUTOFF: + case GL_CONSTANT_ATTENUATION: + case GL_LINEAR_ATTENUATION: + case GL_QUADRATIC_ATTENUATION: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetLightxv(pname=0x%x)", pname); + return; + } + + _mesa_GetLightfv(light, pname, converted_params); + for (i = 0; i < n_params; i++) { + params[i] = (GLint) (converted_params[i] * 65536); + } +} + +extern void GL_APIENTRY _mesa_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetMaterialfv(GLenum face, GLenum pname, GLfloat *params) +{ + switch(face) { + case GL_FRONT: + case GL_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialfv(face=0x%x)", face); + return; + } + switch(pname) { + case GL_SHININESS: /* size 1 */ + case GL_AMBIENT: /* size 4 */ + case GL_DIFFUSE: /* size 4 */ + case GL_AMBIENT_AND_DIFFUSE: /* size 4 */ + case GL_SPECULAR: /* size 4 */ + case GL_EMISSION: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialfv(pname=0x%x)", pname); + return; + } + + _mesa_GetMaterialfv(face, pname, params); +} + +extern void GL_APIENTRY _mesa_GetMaterialfv(GLenum face, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetMaterialxv(GLenum face, GLenum pname, GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + + switch(face) { + case GL_FRONT: + case GL_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialxv(face=0x%x)", face); + return; + } + switch(pname) { + case GL_SHININESS: + n_params = 1; + break; + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_AMBIENT_AND_DIFFUSE: + case GL_SPECULAR: + case GL_EMISSION: + n_params = 4; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetMaterialxv(pname=0x%x)", pname); + return; + } + + _mesa_GetMaterialfv(face, pname, converted_params); + for (i = 0; i < n_params; i++) { + params[i] = (GLint) (converted_params[i] * 65536); + } +} + +extern void GL_APIENTRY _mesa_GetPointerv(GLenum pname, GLvoid ** params); +static void GL_APIENTRY _es_GetPointerv(GLenum pname, GLvoid **params) +{ + switch(pname) { + case GL_VERTEX_ARRAY_POINTER: + case GL_NORMAL_ARRAY_POINTER: + case GL_COLOR_ARRAY_POINTER: + case GL_TEXTURE_COORD_ARRAY_POINTER: + case GL_MATRIX_INDEX_ARRAY_POINTER_OES: + case GL_WEIGHT_ARRAY_POINTER_OES: + case GL_POINT_SIZE_ARRAY_POINTER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetPointerv(pname=0x%x)", pname); + return; + } + + _mesa_GetPointerv(pname, params); +} + +extern void GL_APIENTRY _mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_RENDERBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameterivOES(target=0x%x)", target); + return; + } + switch(pname) { + case GL_RENDERBUFFER_WIDTH_OES: /* size 1 */ + case GL_RENDERBUFFER_HEIGHT_OES: /* size 1 */ + case GL_RENDERBUFFER_INTERNAL_FORMAT_OES: /* size 1 */ + case GL_RENDERBUFFER_RED_SIZE_OES: /* size 1 */ + case GL_RENDERBUFFER_GREEN_SIZE_OES: /* size 1 */ + case GL_RENDERBUFFER_BLUE_SIZE_OES: /* size 1 */ + case GL_RENDERBUFFER_ALPHA_SIZE_OES: /* size 1 */ + case GL_RENDERBUFFER_DEPTH_SIZE_OES: /* size 1 */ + case GL_RENDERBUFFER_STENCIL_SIZE_OES: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameterivOES(pname=0x%x)", pname); + return; + } + + _mesa_GetRenderbufferParameterivEXT(target, pname, params); +} + +extern const GLubyte * GL_APIENTRY _mesa_GetString(GLenum name); +static const GLubyte * GL_APIENTRY _es_GetString(GLenum name) +{ + switch(name) { + case GL_VENDOR: + case GL_RENDERER: + case GL_VERSION: + case GL_EXTENSIONS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetString(name=0x%x)", name); + return (const GLubyte *) 0; + } + + return _mesa_GetString(name); +} + +extern void GL_APIENTRY _mesa_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: /* size 1 */ + break; + case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */ + case GL_TEXTURE_ENV_COLOR: /* size 4 */ + case GL_RGB_SCALE: /* size 1 */ + case GL_ALPHA_SCALE: /* size 1 */ + break; + case GL_TEXTURE_ENV_MODE: /* size 1 */ + case GL_COMBINE_RGB: /* size 1 */ + case GL_COMBINE_ALPHA: /* size 1 */ + case GL_SRC0_RGB: /* size 1 */ + case GL_SRC1_RGB: /* size 1 */ + case GL_SRC2_RGB: /* size 1 */ + case GL_SRC0_ALPHA: /* size 1 */ + case GL_SRC1_ALPHA: /* size 1 */ + case GL_SRC2_ALPHA: /* size 1 */ + case GL_OPERAND0_RGB: /* size 1 */ + case GL_OPERAND1_RGB: /* size 1 */ + case GL_OPERAND2_RGB: /* size 1 */ + case GL_OPERAND0_ALPHA: /* size 1 */ + case GL_OPERAND1_ALPHA: /* size 1 */ + case GL_OPERAND2_ALPHA: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvfv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexEnvfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetTexEnviv(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetTexEnviv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: /* size 1 */ + break; + case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */ + case GL_TEXTURE_ENV_COLOR: /* size 4 */ + case GL_RGB_SCALE: /* size 1 */ + case GL_ALPHA_SCALE: /* size 1 */ + break; + case GL_TEXTURE_ENV_MODE: /* size 1 */ + case GL_COMBINE_RGB: /* size 1 */ + case GL_COMBINE_ALPHA: /* size 1 */ + case GL_SRC0_RGB: /* size 1 */ + case GL_SRC1_RGB: /* size 1 */ + case GL_SRC2_RGB: /* size 1 */ + case GL_SRC0_ALPHA: /* size 1 */ + case GL_SRC1_ALPHA: /* size 1 */ + case GL_SRC2_ALPHA: /* size 1 */ + case GL_OPERAND0_RGB: /* size 1 */ + case GL_OPERAND1_RGB: /* size 1 */ + case GL_OPERAND2_RGB: /* size 1 */ + case GL_OPERAND0_ALPHA: /* size 1 */ + case GL_OPERAND1_ALPHA: /* size 1 */ + case GL_OPERAND2_ALPHA: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnviv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexEnviv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetTexEnvfv(GLenum target, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_COLOR && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_LOD_BIAS_EXT: + n_params = 1; + break; + case GL_TEXTURE_ENV_COLOR: + n_params = 4; + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + n_params = 1; + break; + case GL_TEXTURE_ENV_MODE: + case GL_COMBINE_RGB: + case GL_COMBINE_ALPHA: + case GL_SRC0_RGB: + case GL_SRC1_RGB: + case GL_SRC2_RGB: + case GL_SRC0_ALPHA: + case GL_SRC1_ALPHA: + case GL_SRC2_ALPHA: + case GL_OPERAND0_RGB: + case GL_OPERAND1_RGB: + case GL_OPERAND2_RGB: + case GL_OPERAND0_ALPHA: + case GL_OPERAND1_ALPHA: + case GL_OPERAND2_ALPHA: + convert_params_value = 0; + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexEnvxv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexEnvfv(target, pname, converted_params); + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + params[i] = (GLint) (converted_params[i] * 65536); + } + } else { + for (i = 0; i < n_params; i++) { + params[i] = (GLfixed) converted_params[i]; + } + } +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params); +static void GL_APIENTRY _check_GetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params) +{ + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenfvOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenfvOES(pname=0x%x)", pname); + return; + } + + _es_GetTexGenfv(coord, pname, params); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params); +static void GL_APIENTRY _check_GetTexGenivOES(GLenum coord, GLenum pname, GLint *params) +{ + register unsigned int i; + unsigned int n_params = 1; + GLfloat converted_params[1]; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenivOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenivOES(pname=0x%x)", pname); + return; + } + + _es_GetTexGenfv(coord, pname, converted_params); + for (i = 0; i < n_params; i++) { + params[i] = (GLfloat) converted_params[i]; + } +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat * params); +static void GL_APIENTRY _check_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 1; + GLfloat converted_params[1]; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenxvOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexGenxvOES(pname=0x%x)", pname); + return; + } + + _es_GetTexGenfv(coord, pname, converted_params); + for (i = 0; i < n_params; i++) { + params[i] = (GLfloat) converted_params[i]; + } +} + +extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + case GL_GENERATE_MIPMAP: /* size 1 */ + break; + case GL_TEXTURE_CROP_RECT_OES: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexParameterfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetTexParameteriv(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetTexParameteriv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + case GL_GENERATE_MIPMAP: /* size 1 */ + break; + case GL_TEXTURE_CROP_RECT_OES: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexParameteriv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterxv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + case GL_TEXTURE_MIN_FILTER: + case GL_TEXTURE_MAG_FILTER: + case GL_GENERATE_MIPMAP: + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_CROP_RECT_OES: + n_params = 4; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterxv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexParameterfv(target, pname, converted_params); + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + params[i] = (GLint) (converted_params[i] * 65536); + } + } else { + for (i = 0; i < n_params; i++) { + params[i] = (GLfixed) converted_params[i]; + } + } +} + +extern void GL_APIENTRY _mesa_Hint(GLenum target, GLenum mode); +static void GL_APIENTRY _es_Hint(GLenum target, GLenum mode) +{ + switch(target) { + case GL_FOG_HINT: + case GL_LINE_SMOOTH_HINT: + case GL_PERSPECTIVE_CORRECTION_HINT: + case GL_POINT_SMOOTH_HINT: + case GL_GENERATE_MIPMAP_HINT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(target=0x%x)", target); + return; + } + switch(mode) { + case GL_FASTEST: + case GL_NICEST: + case GL_DONT_CARE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(mode=0x%x)", mode); + return; + } + + _mesa_Hint(target, mode); +} + +extern GLboolean GL_APIENTRY _mesa_IsBufferARB(GLuint buffer); +#define _es_IsBuffer _mesa_IsBufferARB + +extern GLboolean GL_APIENTRY _mesa_IsEnabled(GLenum cap); +static GLboolean GL_APIENTRY _es_IsEnabled(GLenum cap) +{ + switch(cap) { + case GL_NORMALIZE: + case GL_RESCALE_NORMAL: + case GL_CLIP_PLANE0: + case GL_CLIP_PLANE1: + case GL_CLIP_PLANE2: + case GL_CLIP_PLANE3: + case GL_CLIP_PLANE4: + case GL_CLIP_PLANE5: + case GL_FOG: + case GL_LIGHTING: + case GL_COLOR_MATERIAL: + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + case GL_POINT_SMOOTH: + case GL_LINE_SMOOTH: + case GL_CULL_FACE: + case GL_POLYGON_OFFSET_FILL: + case GL_MULTISAMPLE: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_ALPHA_TO_ONE: + case GL_SAMPLE_COVERAGE: + case GL_TEXTURE_2D: + case GL_SCISSOR_TEST: + case GL_ALPHA_TEST: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_BLEND: + case GL_DITHER: + case GL_COLOR_LOGIC_OP: + case GL_POINT_SPRITE_OES: + case GL_TEXTURE_CUBE_MAP_OES: + case GL_TEXTURE_GEN_STR_OES: + case GL_VERTEX_ARRAY: + case GL_NORMAL_ARRAY: + case GL_COLOR_ARRAY: + case GL_TEXTURE_COORD_ARRAY: + case GL_MATRIX_INDEX_ARRAY_OES: + case GL_WEIGHT_ARRAY_OES: + case GL_POINT_SIZE_ARRAY_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glIsEnabled(cap=0x%x)", cap); + return GL_FALSE; + } + + return _mesa_IsEnabled(cap); +} + +extern GLboolean GL_APIENTRY _mesa_IsFramebufferEXT(GLuint framebuffer); +#define _es_IsFramebufferOES _mesa_IsFramebufferEXT + +extern GLboolean GL_APIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer); +#define _es_IsRenderbufferOES _mesa_IsRenderbufferEXT + +extern GLboolean GL_APIENTRY _mesa_IsTexture(GLuint texture); +#define _es_IsTexture _mesa_IsTexture + +extern void GL_APIENTRY _mesa_LightModelf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_LightModelf(GLenum pname, GLfloat param) +{ + switch(pname) { + case GL_LIGHT_MODEL_TWO_SIDE: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelf(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelf(pname=0x%x)", pname); + return; + } + + _mesa_LightModelf(pname, param); +} + +extern void GL_APIENTRY _mesa_LightModelfv(GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_LightModelfv(GLenum pname, const GLfloat *params) +{ + switch(pname) { + case GL_LIGHT_MODEL_AMBIENT: /* size 4 */ + break; + case GL_LIGHT_MODEL_TWO_SIDE: /* size 1 */ + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelfv(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelfv(pname=0x%x)", pname); + return; + } + + _mesa_LightModelfv(pname, params); +} + +extern void GL_APIENTRY _mesa_LightModelf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_LightModelx(GLenum pname, GLfixed param) +{ + GLfloat converted_param; + + switch(pname) { + case GL_LIGHT_MODEL_TWO_SIDE: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelx(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelx(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) param; + + _mesa_LightModelf(pname, converted_param); +} + +extern void GL_APIENTRY _mesa_LightModelfv(GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_LightModelxv(GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(pname) { + case GL_LIGHT_MODEL_AMBIENT: + n_params = 4; + break; + case GL_LIGHT_MODEL_TWO_SIDE: + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightModelxv(pname=0x%x)", pname); + return; + } + + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + } else { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + } + + _mesa_LightModelfv(pname, converted_params); +} + +extern void GL_APIENTRY _mesa_Lightf(GLenum light, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Lightf(GLenum light, GLenum pname, GLfloat param) +{ + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightf(light=0x%x)", light); + return; + } + switch(pname) { + case GL_SPOT_EXPONENT: + case GL_SPOT_CUTOFF: + case GL_CONSTANT_ATTENUATION: + case GL_LINEAR_ATTENUATION: + case GL_QUADRATIC_ATTENUATION: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightf(pname=0x%x)", pname); + return; + } + + _mesa_Lightf(light, pname, param); +} + +extern void GL_APIENTRY _mesa_Lightfv(GLenum light, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_Lightfv(GLenum light, GLenum pname, const GLfloat *params) +{ + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightfv(light=0x%x)", light); + return; + } + switch(pname) { + case GL_AMBIENT: /* size 4 */ + case GL_DIFFUSE: /* size 4 */ + case GL_SPECULAR: /* size 4 */ + case GL_POSITION: /* size 4 */ + case GL_SPOT_DIRECTION: /* size 3 */ + case GL_SPOT_EXPONENT: /* size 1 */ + case GL_SPOT_CUTOFF: /* size 1 */ + case GL_CONSTANT_ATTENUATION: /* size 1 */ + case GL_LINEAR_ATTENUATION: /* size 1 */ + case GL_QUADRATIC_ATTENUATION: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightfv(pname=0x%x)", pname); + return; + } + + _mesa_Lightfv(light, pname, params); +} + +extern void GL_APIENTRY _mesa_Lightf(GLenum light, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Lightx(GLenum light, GLenum pname, GLfixed param) +{ + GLfloat converted_param; + + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightx(light=0x%x)", light); + return; + } + switch(pname) { + case GL_SPOT_EXPONENT: + case GL_SPOT_CUTOFF: + case GL_CONSTANT_ATTENUATION: + case GL_LINEAR_ATTENUATION: + case GL_QUADRATIC_ATTENUATION: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightx(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) (param / 65536.0f); + + _mesa_Lightf(light, pname, converted_param); +} + +extern void GL_APIENTRY _mesa_Lightfv(GLenum light, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_Lightxv(GLenum light, GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + + switch(light) { + case GL_LIGHT0: + case GL_LIGHT1: + case GL_LIGHT2: + case GL_LIGHT3: + case GL_LIGHT4: + case GL_LIGHT5: + case GL_LIGHT6: + case GL_LIGHT7: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightxv(light=0x%x)", light); + return; + } + switch(pname) { + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_SPECULAR: + case GL_POSITION: + n_params = 4; + break; + case GL_SPOT_DIRECTION: + n_params = 3; + break; + case GL_SPOT_EXPONENT: + case GL_SPOT_CUTOFF: + case GL_CONSTANT_ATTENUATION: + case GL_LINEAR_ATTENUATION: + case GL_QUADRATIC_ATTENUATION: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLightxv(pname=0x%x)", pname); + return; + } + + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + + _mesa_Lightfv(light, pname, converted_params); +} + +extern void GL_APIENTRY _mesa_LineWidth(GLfloat width); +#define _es_LineWidth _mesa_LineWidth + +extern void GL_APIENTRY _mesa_LineWidth(GLfloat width); +static void GL_APIENTRY _es_LineWidthx(GLfixed width) +{ + GLfloat converted_width; + + converted_width = (GLfloat) (width / 65536.0f); + + _mesa_LineWidth(converted_width); +} + +extern void GL_APIENTRY _mesa_LoadIdentity(void); +#define _es_LoadIdentity _mesa_LoadIdentity + +extern void GL_APIENTRY _mesa_LoadMatrixf(const GLfloat * m); +#define _es_LoadMatrixf _mesa_LoadMatrixf + +extern void GL_APIENTRY _mesa_LoadMatrixf(GLfloat const * m); +static void GL_APIENTRY _es_LoadMatrixx(const GLfixed *m) +{ + register unsigned int i; + unsigned int n_m = 16; + GLfloat converted_m[16]; + + for (i = 0; i < n_m; i++) { + converted_m[i] = (GLfloat) (m[i] / 65536.0f); + } + + _mesa_LoadMatrixf(converted_m); +} + +extern void GL_APIENTRY _mesa_LogicOp(GLenum opcode); +static void GL_APIENTRY _es_LogicOp(GLenum opcode) +{ + switch(opcode) { + case GL_CLEAR: + case GL_SET: + case GL_COPY: + case GL_COPY_INVERTED: + case GL_NOOP: + case GL_INVERT: + case GL_AND: + case GL_NAND: + case GL_OR: + case GL_NOR: + case GL_XOR: + case GL_EQUIV: + case GL_AND_REVERSE: + case GL_AND_INVERTED: + case GL_OR_REVERSE: + case GL_OR_INVERTED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glLogicOp(opcode=0x%x)", opcode); + return; + } + + _mesa_LogicOp(opcode); +} + +extern void * GL_APIENTRY _mesa_MapBufferARB(GLenum target, GLenum access); +static void * GL_APIENTRY _es_MapBufferOES(GLenum target, GLenum access) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(target=0x%x)", target); + return (void *) 0; + } + switch(access) { + case GL_WRITE_ONLY_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(access=0x%x)", access); + return (void *) 0; + } + + return _mesa_MapBufferARB(target, access); +} + +extern void GL_APIENTRY _vbo_Materialf(GLenum face, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Materialf(GLenum face, GLenum pname, GLfloat param) +{ + switch(face) { + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialf(face=0x%x)", face); + return; + } + switch(pname) { + case GL_SHININESS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialf(pname=0x%x)", pname); + return; + } + + _vbo_Materialf(face, pname, param); +} + +extern void GL_APIENTRY _vbo_Materialfv(GLenum face, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_Materialfv(GLenum face, GLenum pname, const GLfloat *params) +{ + switch(face) { + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialfv(face=0x%x)", face); + return; + } + switch(pname) { + case GL_AMBIENT: /* size 4 */ + case GL_DIFFUSE: /* size 4 */ + case GL_AMBIENT_AND_DIFFUSE: /* size 4 */ + case GL_SPECULAR: /* size 4 */ + case GL_EMISSION: /* size 4 */ + case GL_SHININESS: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialfv(pname=0x%x)", pname); + return; + } + + _vbo_Materialfv(face, pname, params); +} + +extern void GL_APIENTRY _vbo_Materialf(GLenum face, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_Materialx(GLenum face, GLenum pname, GLfixed param) +{ + GLfloat converted_param; + + switch(face) { + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialx(face=0x%x)", face); + return; + } + switch(pname) { + case GL_SHININESS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialx(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) (param / 65536.0f); + + _vbo_Materialf(face, pname, converted_param); +} + +extern void GL_APIENTRY _vbo_Materialfv(GLenum face, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_Materialxv(GLenum face, GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + + switch(face) { + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialxv(face=0x%x)", face); + return; + } + switch(pname) { + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_AMBIENT_AND_DIFFUSE: + case GL_SPECULAR: + case GL_EMISSION: + n_params = 4; + break; + case GL_SHININESS: + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMaterialxv(pname=0x%x)", pname); + return; + } + + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + + _vbo_Materialfv(face, pname, converted_params); +} + +extern void GL_APIENTRY _mesa_MatrixMode(GLenum mode); +static void GL_APIENTRY _es_MatrixMode(GLenum mode) +{ + switch(mode) { + case GL_MODELVIEW: + case GL_PROJECTION: + case GL_TEXTURE: + case GL_MATRIX_PALETTE_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMatrixMode(mode=0x%x)", mode); + return; + } + + _mesa_MatrixMode(mode); +} + +extern void GL_APIENTRY _mesa_MultMatrixf(const GLfloat * m); +#define _es_MultMatrixf _mesa_MultMatrixf + +extern void GL_APIENTRY _mesa_MultMatrixf(GLfloat const * m); +static void GL_APIENTRY _es_MultMatrixx(const GLfixed *m) +{ + register unsigned int i; + unsigned int n_m = 16; + GLfloat converted_m[16]; + + for (i = 0; i < n_m; i++) { + converted_m[i] = (GLfloat) (m[i] / 65536.0f); + } + + _mesa_MultMatrixf(converted_m); +} + +extern void GL_APIENTRY _mesa_MultiDrawArraysEXT(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); +static void GL_APIENTRY _es_MultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawArraysEXT(mode=0x%x)", mode); + return; + } + + _mesa_MultiDrawArraysEXT(mode, first, count, primcount); +} + +extern void GL_APIENTRY _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); +static void GL_APIENTRY _es_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(mode=0x%x)", mode); + return; + } + switch(type) { + case GL_UNSIGNED_BYTE: + case GL_UNSIGNED_SHORT: + case GL_UNSIGNED_INT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(type=0x%x)", type); + return; + } + + _mesa_MultiDrawElementsEXT(mode, count, type, indices, primcount); +} + +extern void GL_APIENTRY _vbo_MultiTexCoord4f(GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +static void GL_APIENTRY _es_MultiTexCoord4f(GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q) +{ + switch(texture) { + case GL_TEXTURE0: + case GL_TEXTURE1: + case GL_TEXTURE2: + case GL_TEXTURE3: + case GL_TEXTURE4: + case GL_TEXTURE5: + case GL_TEXTURE6: + case GL_TEXTURE7: + case GL_TEXTURE8: + case GL_TEXTURE9: + case GL_TEXTURE10: + case GL_TEXTURE11: + case GL_TEXTURE12: + case GL_TEXTURE13: + case GL_TEXTURE14: + case GL_TEXTURE15: + case GL_TEXTURE16: + case GL_TEXTURE17: + case GL_TEXTURE18: + case GL_TEXTURE19: + case GL_TEXTURE20: + case GL_TEXTURE21: + case GL_TEXTURE22: + case GL_TEXTURE23: + case GL_TEXTURE24: + case GL_TEXTURE25: + case GL_TEXTURE26: + case GL_TEXTURE27: + case GL_TEXTURE28: + case GL_TEXTURE29: + case GL_TEXTURE30: + case GL_TEXTURE31: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiTexCoord4f(texture=0x%x)", texture); + return; + } + + _vbo_MultiTexCoord4f(texture, s, t, r, q); +} + +extern void GL_APIENTRY _vbo_MultiTexCoord4f(GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +static void GL_APIENTRY _es_MultiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q) +{ + GLfloat converted_s; + GLfloat converted_t; + GLfloat converted_r; + GLfloat converted_q; + + switch(texture) { + case GL_TEXTURE0: + case GL_TEXTURE1: + case GL_TEXTURE2: + case GL_TEXTURE3: + case GL_TEXTURE4: + case GL_TEXTURE5: + case GL_TEXTURE6: + case GL_TEXTURE7: + case GL_TEXTURE8: + case GL_TEXTURE9: + case GL_TEXTURE10: + case GL_TEXTURE11: + case GL_TEXTURE12: + case GL_TEXTURE13: + case GL_TEXTURE14: + case GL_TEXTURE15: + case GL_TEXTURE16: + case GL_TEXTURE17: + case GL_TEXTURE18: + case GL_TEXTURE19: + case GL_TEXTURE20: + case GL_TEXTURE21: + case GL_TEXTURE22: + case GL_TEXTURE23: + case GL_TEXTURE24: + case GL_TEXTURE25: + case GL_TEXTURE26: + case GL_TEXTURE27: + case GL_TEXTURE28: + case GL_TEXTURE29: + case GL_TEXTURE30: + case GL_TEXTURE31: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiTexCoord4x(texture=0x%x)", texture); + return; + } + + converted_s = (GLfloat) (s / 65536.0f); + converted_t = (GLfloat) (t / 65536.0f); + converted_r = (GLfloat) (r / 65536.0f); + converted_q = (GLfloat) (q / 65536.0f); + + _vbo_MultiTexCoord4f(texture, converted_s, converted_t, converted_r, converted_q); +} + +extern void GL_APIENTRY _vbo_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz); +#define _es_Normal3f _vbo_Normal3f + +extern void GL_APIENTRY _vbo_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz); +static void GL_APIENTRY _es_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz) +{ + GLfloat converted_nx; + GLfloat converted_ny; + GLfloat converted_nz; + + converted_nx = (GLfloat) (nx / 65536.0f); + converted_ny = (GLfloat) (ny / 65536.0f); + converted_nz = (GLfloat) (nz / 65536.0f); + + _vbo_Normal3f(converted_nx, converted_ny, converted_nz); +} + +extern void GL_APIENTRY _mesa_NormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) +{ + switch(type) { + case GL_BYTE: + case GL_SHORT: + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glNormalPointer(type=0x%x)", type); + return; + } + + _mesa_NormalPointer(type, stride, pointer); +} + +extern void GL_APIENTRY _mesa_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +static void GL_APIENTRY _es_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) +{ + GLdouble converted_left; + GLdouble converted_right; + GLdouble converted_bottom; + GLdouble converted_top; + GLdouble converted_zNear; + GLdouble converted_zFar; + + converted_left = (GLdouble) (left); + converted_right = (GLdouble) (right); + converted_bottom = (GLdouble) (bottom); + converted_top = (GLdouble) (top); + converted_zNear = (GLdouble) (zNear); + converted_zFar = (GLdouble) (zFar); + + _mesa_Ortho(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar); +} + +extern void GL_APIENTRY _mesa_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +static void GL_APIENTRY _es_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) +{ + GLdouble converted_left; + GLdouble converted_right; + GLdouble converted_bottom; + GLdouble converted_top; + GLdouble converted_zNear; + GLdouble converted_zFar; + + converted_left = (GLdouble) (left / 65536.0); + converted_right = (GLdouble) (right / 65536.0); + converted_bottom = (GLdouble) (bottom / 65536.0); + converted_top = (GLdouble) (top / 65536.0); + converted_zNear = (GLdouble) (zNear / 65536.0); + converted_zFar = (GLdouble) (zFar / 65536.0); + + _mesa_Ortho(converted_left, converted_right, converted_bottom, converted_top, converted_zNear, converted_zFar); +} + +extern void GL_APIENTRY _mesa_PixelStorei(GLenum pname, GLint param); +static void GL_APIENTRY _es_PixelStorei(GLenum pname, GLint param) +{ + switch(pname) { + case GL_PACK_ALIGNMENT: + case GL_UNPACK_ALIGNMENT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPixelStorei(pname=0x%x)", pname); + return; + } + switch(param) { + case 1: + case 2: + case 4: + case 8: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glPixelStorei(param=%d)", param); + return; + } + + _mesa_PixelStorei(pname, param); +} + +extern void GL_APIENTRY _mesa_PointParameterf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_PointParameterf(GLenum pname, GLfloat param) +{ + switch(pname) { + case GL_POINT_SIZE_MIN: + case GL_POINT_SIZE_MAX: + case GL_POINT_FADE_THRESHOLD_SIZE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterf(pname=0x%x)", pname); + return; + } + + _mesa_PointParameterf(pname, param); +} + +extern void GL_APIENTRY _mesa_PointParameterfv(GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_PointParameterfv(GLenum pname, const GLfloat *params) +{ + switch(pname) { + case GL_POINT_SIZE_MIN: /* size 1 */ + case GL_POINT_SIZE_MAX: /* size 1 */ + case GL_POINT_FADE_THRESHOLD_SIZE: /* size 1 */ + case GL_POINT_DISTANCE_ATTENUATION: /* size 3 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterfv(pname=0x%x)", pname); + return; + } + + _mesa_PointParameterfv(pname, params); +} + +extern void GL_APIENTRY _mesa_PointParameterf(GLenum pname, GLfloat param); +static void GL_APIENTRY _es_PointParameterx(GLenum pname, GLfixed param) +{ + GLfloat converted_param; + + switch(pname) { + case GL_POINT_SIZE_MIN: + case GL_POINT_SIZE_MAX: + case GL_POINT_FADE_THRESHOLD_SIZE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterx(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) (param / 65536.0f); + + _mesa_PointParameterf(pname, converted_param); +} + +extern void GL_APIENTRY _mesa_PointParameterfv(GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_PointParameterxv(GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 3; + GLfloat converted_params[3]; + + switch(pname) { + case GL_POINT_SIZE_MIN: + case GL_POINT_SIZE_MAX: + case GL_POINT_FADE_THRESHOLD_SIZE: + n_params = 1; + break; + case GL_POINT_DISTANCE_ATTENUATION: + n_params = 3; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointParameterxv(pname=0x%x)", pname); + return; + } + + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + + _mesa_PointParameterfv(pname, converted_params); +} + +extern void GL_APIENTRY _mesa_PointSize(GLfloat size); +#define _es_PointSize _mesa_PointSize + +extern void GL_APIENTRY _mesa_PointSizePointer(GLenum type, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_PointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer) +{ + switch(type) { + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPointSizePointerOES(type=0x%x)", type); + return; + } + + _mesa_PointSizePointer(type, stride, pointer); +} + +extern void GL_APIENTRY _mesa_PointSize(GLfloat size); +static void GL_APIENTRY _es_PointSizex(GLfixed size) +{ + GLfloat converted_size; + + converted_size = (GLfloat) (size / 65536.0f); + + _mesa_PointSize(converted_size); +} + +extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units); +#define _es_PolygonOffset _mesa_PolygonOffset + +extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units); +static void GL_APIENTRY _es_PolygonOffsetx(GLfixed factor, GLfixed units) +{ + GLfloat converted_factor; + GLfloat converted_units; + + converted_factor = (GLfloat) (factor / 65536.0f); + converted_units = (GLfloat) (units / 65536.0f); + + _mesa_PolygonOffset(converted_factor, converted_units); +} + +extern void GL_APIENTRY _mesa_PopMatrix(void); +#define _es_PopMatrix _mesa_PopMatrix + +extern void GL_APIENTRY _mesa_PushMatrix(void); +#define _es_PushMatrix _mesa_PushMatrix + +/* this function is special and is defined elsewhere */ +extern GLbitfield GL_APIENTRY _es_QueryMatrixxOES(GLfixed * mantissa, GLint * exponent); +#define _check_QueryMatrixxOES _es_QueryMatrixxOES + +extern void GL_APIENTRY _mesa_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); +static void GL_APIENTRY _es_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) +{ + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + + _mesa_ReadPixels(x, y, width, height, format, type, pixels); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); +static void GL_APIENTRY _check_RenderbufferStorageOES(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height) +{ + switch(target) { + case GL_RENDERBUFFER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorageOES(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_DEPTH_COMPONENT16_OES: + case GL_RGBA4_OES: + case GL_RGB5_A1_OES: + case GL_RGB565_OES: + case GL_STENCIL_INDEX8_OES: + case GL_DEPTH_COMPONENT24_OES: + case GL_DEPTH_COMPONENT32_OES: + case GL_RGB8_OES: + case GL_RGBA8_OES: + case GL_STENCIL_INDEX1_OES: + case GL_STENCIL_INDEX4_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorageOES(internalFormat=0x%x)", internalFormat); + return; + } + + _es_RenderbufferStorageEXT(target, internalFormat, width, height); +} + +extern void GL_APIENTRY _mesa_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +#define _es_Rotatef _mesa_Rotatef + +extern void GL_APIENTRY _mesa_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +static void GL_APIENTRY _es_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) +{ + GLfloat converted_angle; + GLfloat converted_x; + GLfloat converted_y; + GLfloat converted_z; + + converted_angle = (GLfloat) (angle / 65536.0f); + converted_x = (GLfloat) (x / 65536.0f); + converted_y = (GLfloat) (y / 65536.0f); + converted_z = (GLfloat) (z / 65536.0f); + + _mesa_Rotatef(converted_angle, converted_x, converted_y, converted_z); +} + +extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf value, GLboolean invert); +#define _es_SampleCoverage _mesa_SampleCoverageARB + +extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf value, GLboolean invert); +static void GL_APIENTRY _es_SampleCoveragex(GLclampx value, GLboolean invert) +{ + GLclampf converted_value; + + converted_value = (GLclampf) (value / 65536.0f); + + _mesa_SampleCoverageARB(converted_value, invert); +} + +extern void GL_APIENTRY _mesa_Scalef(GLfloat x, GLfloat y, GLfloat z); +#define _es_Scalef _mesa_Scalef + +extern void GL_APIENTRY _mesa_Scalef(GLfloat x, GLfloat y, GLfloat z); +static void GL_APIENTRY _es_Scalex(GLfixed x, GLfixed y, GLfixed z) +{ + GLfloat converted_x; + GLfloat converted_y; + GLfloat converted_z; + + converted_x = (GLfloat) (x / 65536.0f); + converted_y = (GLfloat) (y / 65536.0f); + converted_z = (GLfloat) (z / 65536.0f); + + _mesa_Scalef(converted_x, converted_y, converted_z); +} + +extern void GL_APIENTRY _mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height); +#define _es_Scissor _mesa_Scissor + +extern void GL_APIENTRY _mesa_ShadeModel(GLenum mode); +static void GL_APIENTRY _es_ShadeModel(GLenum mode) +{ + switch(mode) { + case GL_FLAT: + case GL_SMOOTH: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glShadeModel(mode=0x%x)", mode); + return; + } + + _mesa_ShadeModel(mode); +} + +extern void GL_APIENTRY _mesa_StencilFunc(GLenum func, GLint ref, GLuint mask); +static void GL_APIENTRY _es_StencilFunc(GLenum func, GLint ref, GLuint mask) +{ + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_LEQUAL: + case GL_GREATER: + case GL_GEQUAL: + case GL_EQUAL: + case GL_NOTEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFunc(func=0x%x)", func); + return; + } + + _mesa_StencilFunc(func, ref, mask); +} + +extern void GL_APIENTRY _mesa_StencilMask(GLuint mask); +#define _es_StencilMask _mesa_StencilMask + +extern void GL_APIENTRY _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass); +static void GL_APIENTRY _es_StencilOp(GLenum fail, GLenum zfail, GLenum zpass) +{ + switch(fail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP_OES: + case GL_DECR_WRAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(fail=0x%x)", fail); + return; + } + switch(zfail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP_OES: + case GL_DECR_WRAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zfail=0x%x)", zfail); + return; + } + switch(zpass) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP_OES: + case GL_DECR_WRAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zpass=0x%x)", zpass); + return; + } + + _mesa_StencilOp(fail, zfail, zpass); +} + +extern void GL_APIENTRY _mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ + switch(size) { + case 2: + case 3: + case 4: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexCoordPointer(size=%d)", size); + return; + } + switch(type) { + case GL_BYTE: + case GL_SHORT: + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexCoordPointer(type=0x%x)", type); + return; + } + + _mesa_TexCoordPointer(size, type, stride, pointer); +} + +extern void GL_APIENTRY _mesa_TexEnvf(GLenum target, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_TexEnvf(GLenum target, GLenum pname, GLfloat param) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_LOD_BIAS_EXT: + break; + case GL_TEXTURE_ENV_MODE: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_RGB: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_ALPHA: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (param != 1.0 && param != 2.0 && param != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: + case GL_SRC1_RGB: + case GL_SRC2_RGB: + case GL_SRC0_ALPHA: + case GL_SRC1_ALPHA: + case GL_SRC2_ALPHA: + if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_RGB: + case GL_OPERAND1_RGB: + case GL_OPERAND2_RGB: + if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_ALPHA: + case GL_OPERAND1_ALPHA: + case GL_OPERAND2_ALPHA: + if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvf(pname=0x%x)", pname); + return; + } + + _mesa_TexEnvf(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexEnvfv(GLenum target, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_TexEnvfv(GLenum target, GLenum pname, const GLfloat *params) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: /* size 1 */ + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */ + break; + case GL_TEXTURE_ENV_MODE: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_RGB: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_ALPHA: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: /* size 1 */ + case GL_SRC1_RGB: /* size 1 */ + case GL_SRC2_RGB: /* size 1 */ + case GL_SRC0_ALPHA: /* size 1 */ + case GL_SRC1_ALPHA: /* size 1 */ + case GL_SRC2_ALPHA: /* size 1 */ + if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_RGB: /* size 1 */ + case GL_OPERAND1_RGB: /* size 1 */ + case GL_OPERAND2_RGB: /* size 1 */ + if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_ALPHA: /* size 1 */ + case GL_OPERAND1_ALPHA: /* size 1 */ + case GL_OPERAND2_ALPHA: /* size 1 */ + if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_ENV_COLOR: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvfv(pname=0x%x)", pname); + return; + } + + _mesa_TexEnvfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexEnvi(GLenum target, GLenum pname, GLint param); +static void GL_APIENTRY _es_TexEnvi(GLenum target, GLenum pname, GLint param) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_LOD_BIAS_EXT: + break; + case GL_TEXTURE_ENV_MODE: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_RGB: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_ALPHA: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (param != 1.0 && param != 2.0 && param != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: + case GL_SRC1_RGB: + case GL_SRC2_RGB: + case GL_SRC0_ALPHA: + case GL_SRC1_ALPHA: + case GL_SRC2_ALPHA: + if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_RGB: + case GL_OPERAND1_RGB: + case GL_OPERAND2_RGB: + if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_ALPHA: + case GL_OPERAND1_ALPHA: + case GL_OPERAND2_ALPHA: + if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvi(pname=0x%x)", pname); + return; + } + + _mesa_TexEnvi(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexEnviv(GLenum target, GLenum pname, const GLint * params); +static void GL_APIENTRY _es_TexEnviv(GLenum target, GLenum pname, const GLint *params) +{ + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: /* size 1 */ + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_LOD_BIAS_EXT: /* size 1 */ + break; + case GL_TEXTURE_ENV_MODE: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_RGB: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_COMBINE_ALPHA: /* size 1 */ + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: /* size 1 */ + case GL_SRC1_RGB: /* size 1 */ + case GL_SRC2_RGB: /* size 1 */ + case GL_SRC0_ALPHA: /* size 1 */ + case GL_SRC1_ALPHA: /* size 1 */ + case GL_SRC2_ALPHA: /* size 1 */ + if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_RGB: /* size 1 */ + case GL_OPERAND1_RGB: /* size 1 */ + case GL_OPERAND2_RGB: /* size 1 */ + if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_OPERAND0_ALPHA: /* size 1 */ + case GL_OPERAND1_ALPHA: /* size 1 */ + case GL_OPERAND2_ALPHA: /* size 1 */ + if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_ENV_COLOR: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnviv(pname=0x%x)", pname); + return; + } + + _mesa_TexEnviv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexEnvf(GLenum target, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_TexEnvx(GLenum target, GLenum pname, GLfixed param) +{ + GLfloat converted_param; + int convert_param_value = 1; + + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_TEXTURE_LOD_BIAS_EXT: + break; + case GL_TEXTURE_ENV_MODE: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_DECAL && param != GL_BLEND && param != GL_ADD && param != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_COMBINE_RGB: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT && param != GL_DOT3_RGB && param != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_COMBINE_ALPHA: + if (param != GL_REPLACE && param != GL_MODULATE && param != GL_ADD && param != GL_ADD_SIGNED && param != GL_INTERPOLATE && param != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (param != 1.0 && param != 2.0 && param != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvx(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: + case GL_SRC1_RGB: + case GL_SRC2_RGB: + case GL_SRC0_ALPHA: + case GL_SRC1_ALPHA: + case GL_SRC2_ALPHA: + if (param != GL_TEXTURE && param != GL_CONSTANT && param != GL_PRIMARY_COLOR && param != GL_PREVIOUS && param != GL_TEXTURE0 && param != GL_TEXTURE1 && param != GL_TEXTURE2 && param != GL_TEXTURE3 && param != GL_TEXTURE4 && param != GL_TEXTURE5 && param != GL_TEXTURE6 && param != GL_TEXTURE7 && param != GL_TEXTURE8 && param != GL_TEXTURE9 && param != GL_TEXTURE10 && param != GL_TEXTURE11 && param != GL_TEXTURE12 && param != GL_TEXTURE13 && param != GL_TEXTURE14 && param != GL_TEXTURE15 && param != GL_TEXTURE16 && param != GL_TEXTURE17 && param != GL_TEXTURE18 && param != GL_TEXTURE19 && param != GL_TEXTURE20 && param != GL_TEXTURE21 && param != GL_TEXTURE22 && param != GL_TEXTURE23 && param != GL_TEXTURE24 && param != GL_TEXTURE25 && param != GL_TEXTURE26 && param != GL_TEXTURE27 && param != GL_TEXTURE28 && param != GL_TEXTURE29 && param != GL_TEXTURE30 && param != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_OPERAND0_RGB: + case GL_OPERAND1_RGB: + case GL_OPERAND2_RGB: + if (param != GL_SRC_COLOR && param != GL_ONE_MINUS_SRC_COLOR && param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_OPERAND0_ALPHA: + case GL_OPERAND1_ALPHA: + case GL_OPERAND2_ALPHA: + if (param != GL_SRC_ALPHA && param != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvx(pname=0x%x)", pname); + return; + } + + if (convert_param_value) { + converted_param = (GLfloat) (param / 65536.0f); + } else { + converted_param = (GLfloat) param; + } + + _mesa_TexEnvf(target, pname, converted_param); +} + +extern void GL_APIENTRY _mesa_TexEnvfv(GLenum target, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_TexEnvxv(GLenum target, GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(target) { + case GL_POINT_SPRITE_OES: + if (pname != GL_COORD_REPLACE_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_FILTER_CONTROL_EXT: + if (pname != GL_TEXTURE_LOD_BIAS_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target); + return; + } + break; + case GL_TEXTURE_ENV: + if (pname != GL_TEXTURE_ENV_MODE && pname != GL_COMBINE_RGB && pname != GL_COMBINE_ALPHA && pname != GL_RGB_SCALE && pname != GL_ALPHA_SCALE && pname != GL_SRC0_RGB && pname != GL_SRC1_RGB && pname != GL_SRC2_RGB && pname != GL_SRC0_ALPHA && pname != GL_SRC1_ALPHA && pname != GL_SRC2_ALPHA && pname != GL_OPERAND0_RGB && pname != GL_OPERAND1_RGB && pname != GL_OPERAND2_RGB && pname != GL_OPERAND0_ALPHA && pname != GL_OPERAND1_ALPHA && pname != GL_OPERAND2_ALPHA && pname != GL_TEXTURE_ENV_COLOR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_COORD_REPLACE_OES: + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_LOD_BIAS_EXT: + n_params = 1; + break; + case GL_TEXTURE_ENV_MODE: + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_DECAL && params[0] != GL_BLEND && params[0] != GL_ADD && params[0] != GL_COMBINE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_COMBINE_RGB: + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT && params[0] != GL_DOT3_RGB && params[0] != GL_DOT3_RGBA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_COMBINE_ALPHA: + if (params[0] != GL_REPLACE && params[0] != GL_MODULATE && params[0] != GL_ADD && params[0] != GL_ADD_SIGNED && params[0] != GL_INTERPOLATE && params[0] != GL_SUBTRACT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_RGB_SCALE: + case GL_ALPHA_SCALE: + if (params[0] != 1.0 && params[0] != 2.0 && params[0] != 4.0) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexEnvxv(pname=0x%x)", pname); + return; + } + break; + case GL_SRC0_RGB: + case GL_SRC1_RGB: + case GL_SRC2_RGB: + case GL_SRC0_ALPHA: + case GL_SRC1_ALPHA: + case GL_SRC2_ALPHA: + if (params[0] != GL_TEXTURE && params[0] != GL_CONSTANT && params[0] != GL_PRIMARY_COLOR && params[0] != GL_PREVIOUS && params[0] != GL_TEXTURE0 && params[0] != GL_TEXTURE1 && params[0] != GL_TEXTURE2 && params[0] != GL_TEXTURE3 && params[0] != GL_TEXTURE4 && params[0] != GL_TEXTURE5 && params[0] != GL_TEXTURE6 && params[0] != GL_TEXTURE7 && params[0] != GL_TEXTURE8 && params[0] != GL_TEXTURE9 && params[0] != GL_TEXTURE10 && params[0] != GL_TEXTURE11 && params[0] != GL_TEXTURE12 && params[0] != GL_TEXTURE13 && params[0] != GL_TEXTURE14 && params[0] != GL_TEXTURE15 && params[0] != GL_TEXTURE16 && params[0] != GL_TEXTURE17 && params[0] != GL_TEXTURE18 && params[0] != GL_TEXTURE19 && params[0] != GL_TEXTURE20 && params[0] != GL_TEXTURE21 && params[0] != GL_TEXTURE22 && params[0] != GL_TEXTURE23 && params[0] != GL_TEXTURE24 && params[0] != GL_TEXTURE25 && params[0] != GL_TEXTURE26 && params[0] != GL_TEXTURE27 && params[0] != GL_TEXTURE28 && params[0] != GL_TEXTURE29 && params[0] != GL_TEXTURE30 && params[0] != GL_TEXTURE31) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_OPERAND0_RGB: + case GL_OPERAND1_RGB: + case GL_OPERAND2_RGB: + if (params[0] != GL_SRC_COLOR && params[0] != GL_ONE_MINUS_SRC_COLOR && params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_OPERAND0_ALPHA: + case GL_OPERAND1_ALPHA: + case GL_OPERAND2_ALPHA: + if (params[0] != GL_SRC_ALPHA && params[0] != GL_ONE_MINUS_SRC_ALPHA) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_ENV_COLOR: + n_params = 4; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexEnvxv(pname=0x%x)", pname); + return; + } + + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + } else { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + } + + _mesa_TexEnvfv(target, pname, converted_params); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat param); +static void GL_APIENTRY _check_TexGenfOES(GLenum coord, GLenum pname, GLfloat param) +{ + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfOES(pname=0x%x)", pname); + return; + } + + _es_TexGenf(coord, pname, param); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _check_TexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params) +{ + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: /* size 1 */ + if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenfvOES(pname=0x%x)", pname); + return; + } + + _es_TexGenfv(coord, pname, params); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat param); +static void GL_APIENTRY _check_TexGeniOES(GLenum coord, GLenum pname, GLint param) +{ + GLfloat converted_param; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGeniOES(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) param; + + _es_TexGenf(coord, pname, converted_param); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _check_TexGenivOES(GLenum coord, GLenum pname, const GLint *params) +{ + register unsigned int i; + unsigned int n_params = 1; + GLfloat converted_params[1]; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(pname=0x%x)", pname); + return; + } + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenivOES(pname=0x%x)", pname); + return; + } + + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + + _es_TexGenfv(coord, pname, converted_params); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenf(GLenum coord, GLenum pname, GLfloat param); +static void GL_APIENTRY _check_TexGenxOES(GLenum coord, GLenum pname, GLfixed param) +{ + GLfloat converted_param; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + if (param != GL_NORMAL_MAP_OES && param != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(pname=0x%x)", pname); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxOES(pname=0x%x)", pname); + return; + } + + converted_param = (GLfloat) param; + + _es_TexGenf(coord, pname, converted_param); +} + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_TexGenfv(GLenum coord, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _check_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 1; + GLfloat converted_params[1]; + + switch(coord) { + case GL_TEXTURE_GEN_STR_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(coord=0x%x)", coord); + return; + } + switch(pname) { + case GL_TEXTURE_GEN_MODE_OES: + if (params[0] != GL_NORMAL_MAP_OES && params[0] != GL_REFLECTION_MAP_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(pname=0x%x)", pname); + return; + } + n_params = 1; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexGenxvOES(pname=0x%x)", pname); + return; + } + + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + + _es_TexGenfv(coord, pname, converted_params); +} + +extern void GL_APIENTRY _mesa_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_ALPHA: + case GL_RGB: + case GL_RGBA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=%d)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(border=%d)", border); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + + _mesa_TexImage2D(target, level, internalFormat, width, height, border, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_TexParameterf(GLenum target, GLenum pname, GLfloat param) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_GENERATE_MIPMAP: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + + _mesa_TexParameterf(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_GENERATE_MIPMAP: /* size 1 */ + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */ + case GL_TEXTURE_CROP_RECT_OES: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + + _mesa_TexParameterfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexParameteri(GLenum target, GLenum pname, GLint param); +static void GL_APIENTRY _es_TexParameteri(GLenum target, GLenum pname, GLint param) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_GENERATE_MIPMAP: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + + _mesa_TexParameteri(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint * params); +static void GL_APIENTRY _es_TexParameteriv(GLenum target, GLenum pname, const GLint *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_GENERATE_MIPMAP: /* size 1 */ + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */ + case GL_TEXTURE_CROP_RECT_OES: /* size 4 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_TexParameteriv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_TexParameterx(GLenum target, GLenum pname, GLfixed param) +{ + GLfloat converted_param; + int convert_param_value = 1; + + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_TEXTURE_MIN_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_TEXTURE_MAG_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_GENERATE_MIPMAP: + if (param != GL_TRUE && param != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname); + return; + } + convert_param_value = 0; + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterx(pname=0x%x)", pname); + return; + } + + if (convert_param_value) { + converted_param = (GLfloat) (param / 65536.0f); + } else { + converted_param = (GLfloat) param; + } + + _mesa_TexParameterf(target, pname, converted_param); +} + +extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, GLfloat const * params); +static void GL_APIENTRY _es_TexParameterxv(GLenum target, GLenum pname, const GLfixed *params) +{ + register unsigned int i; + unsigned int n_params = 4; + GLfloat converted_params[4]; + int convert_params_value = 1; + + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_MIN_FILTER: + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_MAG_FILTER: + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_GENERATE_MIPMAP: + if (params[0] != GL_TRUE && params[0] != GL_FALSE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname); + return; + } + convert_params_value = 0; + n_params = 1; + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + n_params = 1; + break; + case GL_TEXTURE_CROP_RECT_OES: + n_params = 4; + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterxv(pname=0x%x)", pname); + return; + } + + if (convert_params_value) { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) (params[i] / 65536.0f); + } + } else { + for (i = 0; i < n_params; i++) { + converted_params[i] = (GLfloat) params[i]; + } + } + + _mesa_TexParameterfv(target, pname, converted_params); +} + +extern void GL_APIENTRY _mesa_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage2D(target=0x%x)", target); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + + _mesa_TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_Translatef(GLfloat x, GLfloat y, GLfloat z); +#define _es_Translatef _mesa_Translatef + +extern void GL_APIENTRY _mesa_Translatef(GLfloat x, GLfloat y, GLfloat z); +static void GL_APIENTRY _es_Translatex(GLfixed x, GLfixed y, GLfixed z) +{ + GLfloat converted_x; + GLfloat converted_y; + GLfloat converted_z; + + converted_x = (GLfloat) (x / 65536.0f); + converted_y = (GLfloat) (y / 65536.0f); + converted_z = (GLfloat) (z / 65536.0f); + + _mesa_Translatef(converted_x, converted_y, converted_z); +} + +extern GLboolean GL_APIENTRY _mesa_UnmapBufferARB(GLenum target); +static GLboolean GL_APIENTRY _es_UnmapBufferOES(GLenum target) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glUnmapBufferOES(target=0x%x)", target); + return GL_FALSE; + } + + return _mesa_UnmapBufferARB(target); +} + +extern void GL_APIENTRY _mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) +{ + switch(size) { + case 2: + case 3: + case 4: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexPointer(size=%d)", size); + return; + } + switch(type) { + case GL_BYTE: + case GL_SHORT: + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glVertexPointer(type=0x%x)", type); + return; + } + + _mesa_VertexPointer(size, type, stride, pointer); +} + +extern void GL_APIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); +#define _es_Viewport _mesa_Viewport + + +struct _glapi_table * +_mesa_create_exec_table_es1(void) +{ + struct _glapi_table *exec; + exec = _mesa_alloc_dispatch_table(sizeof *exec); + if (exec == NULL) + return NULL; + + + SET_ActiveTexture(exec, _es_ActiveTexture); + SET_AlphaFunc(exec, _es_AlphaFunc); + SET_AlphaFuncx(exec, _es_AlphaFuncx); + SET_BindBuffer(exec, _es_BindBuffer); + SET_BindFramebufferOES(exec, _es_BindFramebufferOES); + SET_BindRenderbufferOES(exec, _es_BindRenderbufferOES); + SET_BindTexture(exec, _es_BindTexture); + SET_BlendEquationOES(exec, _es_BlendEquationOES); + SET_BlendEquationSeparateOES(exec, _es_BlendEquationSeparateOES); + SET_BlendFunc(exec, _es_BlendFunc); + SET_BlendFuncSeparateOES(exec, _es_BlendFuncSeparateOES); + SET_BufferData(exec, _es_BufferData); + SET_BufferSubData(exec, _es_BufferSubData); + SET_CheckFramebufferStatusOES(exec, _es_CheckFramebufferStatusOES); + SET_Clear(exec, _es_Clear); + SET_ClearColor(exec, _es_ClearColor); + SET_ClearColorx(exec, _es_ClearColorx); + SET_ClearDepthf(exec, _es_ClearDepthf); + SET_ClearDepthx(exec, _es_ClearDepthx); + SET_ClearStencil(exec, _es_ClearStencil); + SET_ClientActiveTexture(exec, _es_ClientActiveTexture); + SET_ClipPlanef(exec, _es_ClipPlanef); + SET_ClipPlanex(exec, _es_ClipPlanex); + SET_Color4f(exec, _es_Color4f); + SET_Color4ub(exec, _es_Color4ub); + SET_Color4x(exec, _es_Color4x); + SET_ColorMask(exec, _es_ColorMask); + SET_ColorPointer(exec, _es_ColorPointer); + SET_CompressedTexImage2D(exec, _es_CompressedTexImage2D); + SET_CompressedTexSubImage2D(exec, _es_CompressedTexSubImage2D); + SET_CopyTexImage2D(exec, _es_CopyTexImage2D); + SET_CopyTexSubImage2D(exec, _es_CopyTexSubImage2D); + SET_CullFace(exec, _es_CullFace); + SET_DeleteBuffers(exec, _es_DeleteBuffers); + SET_DeleteFramebuffersOES(exec, _es_DeleteFramebuffersOES); + SET_DeleteRenderbuffersOES(exec, _es_DeleteRenderbuffersOES); + SET_DeleteTextures(exec, _es_DeleteTextures); + SET_DepthFunc(exec, _es_DepthFunc); + SET_DepthMask(exec, _es_DepthMask); + SET_DepthRangef(exec, _es_DepthRangef); + SET_DepthRangex(exec, _es_DepthRangex); + SET_Disable(exec, _es_Disable); + SET_DisableClientState(exec, _es_DisableClientState); + SET_DrawArrays(exec, _es_DrawArrays); + SET_DrawElements(exec, _es_DrawElements); + SET_DrawTexfOES(exec, _es_DrawTexfOES); + SET_DrawTexfvOES(exec, _es_DrawTexfvOES); + SET_DrawTexiOES(exec, _es_DrawTexiOES); + SET_DrawTexivOES(exec, _es_DrawTexivOES); + SET_DrawTexsOES(exec, _es_DrawTexsOES); + SET_DrawTexsvOES(exec, _es_DrawTexsvOES); + SET_DrawTexxOES(exec, _es_DrawTexxOES); + SET_DrawTexxvOES(exec, _es_DrawTexxvOES); + SET_EGLImageTargetRenderbufferStorageOES(exec, _es_EGLImageTargetRenderbufferStorageOES); + SET_EGLImageTargetTexture2DOES(exec, _es_EGLImageTargetTexture2DOES); + SET_Enable(exec, _es_Enable); + SET_EnableClientState(exec, _es_EnableClientState); + SET_Finish(exec, _es_Finish); + SET_Flush(exec, _es_Flush); + SET_Fogf(exec, _es_Fogf); + SET_Fogfv(exec, _es_Fogfv); + SET_Fogx(exec, _es_Fogx); + SET_Fogxv(exec, _es_Fogxv); + SET_FramebufferRenderbufferOES(exec, _es_FramebufferRenderbufferOES); + SET_FramebufferTexture2DOES(exec, _es_FramebufferTexture2DOES); + SET_FrontFace(exec, _es_FrontFace); + SET_Frustumf(exec, _es_Frustumf); + SET_Frustumx(exec, _es_Frustumx); + SET_GenBuffers(exec, _es_GenBuffers); + SET_GenFramebuffersOES(exec, _es_GenFramebuffersOES); + SET_GenRenderbuffersOES(exec, _es_GenRenderbuffersOES); + SET_GenTextures(exec, _es_GenTextures); + SET_GenerateMipmapOES(exec, _es_GenerateMipmapOES); + SET_GetBooleanv(exec, _es_GetBooleanv); + SET_GetBufferParameteriv(exec, _es_GetBufferParameteriv); + SET_GetBufferPointervOES(exec, _es_GetBufferPointervOES); + SET_GetClipPlanef(exec, _es_GetClipPlanef); + SET_GetClipPlanex(exec, _es_GetClipPlanex); + SET_GetError(exec, _es_GetError); + SET_GetFixedv(exec, _es_GetFixedv); + SET_GetFloatv(exec, _es_GetFloatv); + SET_GetFramebufferAttachmentParameterivOES(exec, _es_GetFramebufferAttachmentParameterivOES); + SET_GetIntegerv(exec, _es_GetIntegerv); + SET_GetLightfv(exec, _es_GetLightfv); + SET_GetLightxv(exec, _es_GetLightxv); + SET_GetMaterialfv(exec, _es_GetMaterialfv); + SET_GetMaterialxv(exec, _es_GetMaterialxv); + SET_GetPointerv(exec, _es_GetPointerv); + SET_GetRenderbufferParameterivOES(exec, _es_GetRenderbufferParameterivOES); + SET_GetString(exec, _es_GetString); + SET_GetTexEnvfv(exec, _es_GetTexEnvfv); + SET_GetTexEnviv(exec, _es_GetTexEnviv); + SET_GetTexEnvxv(exec, _es_GetTexEnvxv); + SET_GetTexGenfvOES(exec, _check_GetTexGenfvOES); + SET_GetTexGenivOES(exec, _check_GetTexGenivOES); + SET_GetTexGenxvOES(exec, _check_GetTexGenxvOES); + SET_GetTexParameterfv(exec, _es_GetTexParameterfv); + SET_GetTexParameteriv(exec, _es_GetTexParameteriv); + SET_GetTexParameterxv(exec, _es_GetTexParameterxv); + SET_Hint(exec, _es_Hint); + SET_IsBuffer(exec, _es_IsBuffer); + SET_IsEnabled(exec, _es_IsEnabled); + SET_IsFramebufferOES(exec, _es_IsFramebufferOES); + SET_IsRenderbufferOES(exec, _es_IsRenderbufferOES); + SET_IsTexture(exec, _es_IsTexture); + SET_LightModelf(exec, _es_LightModelf); + SET_LightModelfv(exec, _es_LightModelfv); + SET_LightModelx(exec, _es_LightModelx); + SET_LightModelxv(exec, _es_LightModelxv); + SET_Lightf(exec, _es_Lightf); + SET_Lightfv(exec, _es_Lightfv); + SET_Lightx(exec, _es_Lightx); + SET_Lightxv(exec, _es_Lightxv); + SET_LineWidth(exec, _es_LineWidth); + SET_LineWidthx(exec, _es_LineWidthx); + SET_LoadIdentity(exec, _es_LoadIdentity); + SET_LoadMatrixf(exec, _es_LoadMatrixf); + SET_LoadMatrixx(exec, _es_LoadMatrixx); + SET_LogicOp(exec, _es_LogicOp); + SET_MapBufferOES(exec, _es_MapBufferOES); + SET_Materialf(exec, _es_Materialf); + SET_Materialfv(exec, _es_Materialfv); + SET_Materialx(exec, _es_Materialx); + SET_Materialxv(exec, _es_Materialxv); + SET_MatrixMode(exec, _es_MatrixMode); + SET_MultMatrixf(exec, _es_MultMatrixf); + SET_MultMatrixx(exec, _es_MultMatrixx); + SET_MultiDrawArraysEXT(exec, _es_MultiDrawArraysEXT); + SET_MultiDrawElementsEXT(exec, _es_MultiDrawElementsEXT); + SET_MultiTexCoord4f(exec, _es_MultiTexCoord4f); + SET_MultiTexCoord4x(exec, _es_MultiTexCoord4x); + SET_Normal3f(exec, _es_Normal3f); + SET_Normal3x(exec, _es_Normal3x); + SET_NormalPointer(exec, _es_NormalPointer); + SET_Orthof(exec, _es_Orthof); + SET_Orthox(exec, _es_Orthox); + SET_PixelStorei(exec, _es_PixelStorei); + SET_PointParameterf(exec, _es_PointParameterf); + SET_PointParameterfv(exec, _es_PointParameterfv); + SET_PointParameterx(exec, _es_PointParameterx); + SET_PointParameterxv(exec, _es_PointParameterxv); + SET_PointSize(exec, _es_PointSize); + SET_PointSizePointerOES(exec, _es_PointSizePointerOES); + SET_PointSizex(exec, _es_PointSizex); + SET_PolygonOffset(exec, _es_PolygonOffset); + SET_PolygonOffsetx(exec, _es_PolygonOffsetx); + SET_PopMatrix(exec, _es_PopMatrix); + SET_PushMatrix(exec, _es_PushMatrix); + SET_QueryMatrixxOES(exec, _check_QueryMatrixxOES); + SET_ReadPixels(exec, _es_ReadPixels); + SET_RenderbufferStorageOES(exec, _check_RenderbufferStorageOES); + SET_Rotatef(exec, _es_Rotatef); + SET_Rotatex(exec, _es_Rotatex); + SET_SampleCoverage(exec, _es_SampleCoverage); + SET_SampleCoveragex(exec, _es_SampleCoveragex); + SET_Scalef(exec, _es_Scalef); + SET_Scalex(exec, _es_Scalex); + SET_Scissor(exec, _es_Scissor); + SET_ShadeModel(exec, _es_ShadeModel); + SET_StencilFunc(exec, _es_StencilFunc); + SET_StencilMask(exec, _es_StencilMask); + SET_StencilOp(exec, _es_StencilOp); + SET_TexCoordPointer(exec, _es_TexCoordPointer); + SET_TexEnvf(exec, _es_TexEnvf); + SET_TexEnvfv(exec, _es_TexEnvfv); + SET_TexEnvi(exec, _es_TexEnvi); + SET_TexEnviv(exec, _es_TexEnviv); + SET_TexEnvx(exec, _es_TexEnvx); + SET_TexEnvxv(exec, _es_TexEnvxv); + SET_TexGenfOES(exec, _check_TexGenfOES); + SET_TexGenfvOES(exec, _check_TexGenfvOES); + SET_TexGeniOES(exec, _check_TexGeniOES); + SET_TexGenivOES(exec, _check_TexGenivOES); + SET_TexGenxOES(exec, _check_TexGenxOES); + SET_TexGenxvOES(exec, _check_TexGenxvOES); + SET_TexImage2D(exec, _es_TexImage2D); + SET_TexParameterf(exec, _es_TexParameterf); + SET_TexParameterfv(exec, _es_TexParameterfv); + SET_TexParameteri(exec, _es_TexParameteri); + SET_TexParameteriv(exec, _es_TexParameteriv); + SET_TexParameterx(exec, _es_TexParameterx); + SET_TexParameterxv(exec, _es_TexParameterxv); + SET_TexSubImage2D(exec, _es_TexSubImage2D); + SET_Translatef(exec, _es_Translatef); + SET_Translatex(exec, _es_Translatex); + SET_UnmapBufferOES(exec, _es_UnmapBufferOES); + SET_VertexPointer(exec, _es_VertexPointer); + SET_Viewport(exec, _es_Viewport); + + return exec; +} + +#endif /* FEATURE_ES1 */ diff --git a/lib/libGL/libmesa/generated/api_exec_es2.c b/lib/libGL/libmesa/generated/api_exec_es2.c new file mode 100644 index 000000000..d28291b0e --- /dev/null +++ b/lib/libGL/libmesa/generated/api_exec_es2.c @@ -0,0 +1,2471 @@ +/* DO NOT EDIT ************************************************* + * THIS FILE AUTOMATICALLY GENERATED BY THE es_generator.py SCRIPT + * API specification file: /share/OpenBSD/xenocara/lib/libGL/libmesa/generated/../../../../dist/Mesa/src/mesa/main/APIspec.xml + * GLES version: GLES2.0 + * date: 2011-05-15 15:41:34 + */ + + +#include "GLES2/gl2.h" +#include "GLES2/gl2ext.h" +#include "main/mfeatures.h" + +#if FEATURE_ES2 + + +/* These types are needed for the Mesa veneer, but are not defined in + * the standard GLES headers. + */ +typedef double GLdouble; +typedef double GLclampd; + +/* Mesa error handling requires these */ +extern void *_mesa_get_current_context(void); +extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... ); + +#include "main/compiler.h" +#include "main/api_exec.h" +#include "main/remap.h" + +/* cannot include main/dispatch.h here */ +#ifdef IN_DRI_DRIVER +#define _GLAPI_USE_REMAP_TABLE +#endif +/* glapi uses GLAPIENTRY while GLES headers define GL_APIENTRY */ +#ifndef GLAPIENTRY +#define GLAPIENTRY GL_APIENTRY +#endif +#include "es2api/glapi/glapitable.h" +#include "es2api/glapi/glapioffsets.h" +#include "es2api/glapi/glapidispatch.h" + +#if FEATURE_remap_table + +#if !FEATURE_GL +int driDispatchRemapTable[driDispatchRemapTable_size]; +#endif + +#define need_MESA_remap_table + +#include "es2api/main/remap_helper.h" + +void +_mesa_init_remap_table_es2(void) +{ + _mesa_do_init_remap_table(_mesa_function_pool, + driDispatchRemapTable_size, + MESA_remap_table_functions); +} + +void +_mesa_map_static_functions_es2(void) +{ +} + +#endif + +typedef void (*_glapi_proc)(void); /* generic function pointer */ + +/************************************************************* + * Generated functions begin here + */ + +extern void GL_APIENTRY _mesa_ActiveTextureARB(GLenum texture); +static void GL_APIENTRY _es_ActiveTexture(GLenum texture) +{ + switch(texture) { + case GL_TEXTURE0: + case GL_TEXTURE1: + case GL_TEXTURE2: + case GL_TEXTURE3: + case GL_TEXTURE4: + case GL_TEXTURE5: + case GL_TEXTURE6: + case GL_TEXTURE7: + case GL_TEXTURE8: + case GL_TEXTURE9: + case GL_TEXTURE10: + case GL_TEXTURE11: + case GL_TEXTURE12: + case GL_TEXTURE13: + case GL_TEXTURE14: + case GL_TEXTURE15: + case GL_TEXTURE16: + case GL_TEXTURE17: + case GL_TEXTURE18: + case GL_TEXTURE19: + case GL_TEXTURE20: + case GL_TEXTURE21: + case GL_TEXTURE22: + case GL_TEXTURE23: + case GL_TEXTURE24: + case GL_TEXTURE25: + case GL_TEXTURE26: + case GL_TEXTURE27: + case GL_TEXTURE28: + case GL_TEXTURE29: + case GL_TEXTURE30: + case GL_TEXTURE31: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glActiveTexture(texture=0x%x)", texture); + return; + } + + _mesa_ActiveTextureARB(texture); +} + +extern void GL_APIENTRY _mesa_AttachShader(GLuint program, GLuint shader); +#define _es_AttachShader _mesa_AttachShader + +extern void GL_APIENTRY _mesa_BindAttribLocationARB(GLuint program, GLuint index, const char * name); +#define _es_BindAttribLocation _mesa_BindAttribLocationARB + +extern void GL_APIENTRY _mesa_BindBufferARB(GLenum target, GLuint buffer); +static void GL_APIENTRY _es_BindBuffer(GLenum target, GLuint buffer) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindBuffer(target=0x%x)", target); + return; + } + + _mesa_BindBufferARB(target, buffer); +} + +extern void GL_APIENTRY _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer); +static void GL_APIENTRY _es_BindFramebuffer(GLenum target, GLuint framebuffer) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindFramebuffer(target=0x%x)", target); + return; + } + + _mesa_BindFramebufferEXT(target, framebuffer); +} + +extern void GL_APIENTRY _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer); +static void GL_APIENTRY _es_BindRenderbuffer(GLenum target, GLuint renderbuffer) +{ + switch(target) { + case GL_RENDERBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindRenderbuffer(target=0x%x)", target); + return; + } + + _mesa_BindRenderbufferEXT(target, renderbuffer); +} + +extern void GL_APIENTRY _mesa_BindTexture(GLenum target, GLuint texture); +static void GL_APIENTRY _es_BindTexture(GLenum target, GLuint texture) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBindTexture(target=0x%x)", target); + return; + } + + _mesa_BindTexture(target, texture); +} + +extern void GL_APIENTRY _mesa_BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#define _es_BlendColor _mesa_BlendColor + +extern void GL_APIENTRY _mesa_BlendEquation(GLenum mode); +static void GL_APIENTRY _es_BlendEquation(GLenum mode) +{ + switch(mode) { + case GL_FUNC_ADD: + case GL_FUNC_SUBTRACT: + case GL_FUNC_REVERSE_SUBTRACT: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquation(mode=0x%x)", mode); + return; + } + + _mesa_BlendEquation(mode); +} + +extern void GL_APIENTRY _mesa_BlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); +static void GL_APIENTRY _es_BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) +{ + switch(modeRGB) { + case GL_FUNC_ADD: + case GL_FUNC_SUBTRACT: + case GL_FUNC_REVERSE_SUBTRACT: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparate(modeRGB=0x%x)", modeRGB); + return; + } + switch(modeAlpha) { + case GL_FUNC_ADD: + case GL_FUNC_SUBTRACT: + case GL_FUNC_REVERSE_SUBTRACT: + case GL_MIN_EXT: + case GL_MAX_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendEquationSeparate(modeAlpha=0x%x)", modeAlpha); + return; + } + + _mesa_BlendEquationSeparateEXT(modeRGB, modeAlpha); +} + +extern void GL_APIENTRY _mesa_BlendFunc(GLenum sfactor, GLenum dfactor); +static void GL_APIENTRY _es_BlendFunc(GLenum sfactor, GLenum dfactor) +{ + switch(sfactor) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + case GL_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(sfactor=0x%x)", sfactor); + return; + } + switch(dfactor) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFunc(dfactor=0x%x)", dfactor); + return; + } + + _mesa_BlendFunc(sfactor, dfactor); +} + +extern void GL_APIENTRY _mesa_BlendFuncSeparateEXT(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +static void GL_APIENTRY _es_BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) +{ + switch(srcRGB) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + case GL_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(srcRGB=0x%x)", srcRGB); + return; + } + switch(dstRGB) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(dstRGB=0x%x)", dstRGB); + return; + } + switch(srcAlpha) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_SRC_ALPHA_SATURATE: + case GL_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(srcAlpha=0x%x)", srcAlpha); + return; + } + switch(dstAlpha) { + case GL_ZERO: + case GL_ONE: + case GL_SRC_COLOR: + case GL_ONE_MINUS_SRC_COLOR: + case GL_SRC_ALPHA: + case GL_ONE_MINUS_SRC_ALPHA: + case GL_DST_ALPHA: + case GL_ONE_MINUS_DST_ALPHA: + case GL_DST_COLOR: + case GL_ONE_MINUS_DST_COLOR: + case GL_CONSTANT_COLOR: + case GL_ONE_MINUS_CONSTANT_COLOR: + case GL_CONSTANT_ALPHA: + case GL_ONE_MINUS_CONSTANT_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBlendFuncSeparate(dstAlpha=0x%x)", dstAlpha); + return; + } + + _mesa_BlendFuncSeparateEXT(srcRGB, dstRGB, srcAlpha, dstAlpha); +} + +extern void GL_APIENTRY _mesa_BufferDataARB(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); +static void GL_APIENTRY _es_BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(target=0x%x)", target); + return; + } + switch(usage) { + case GL_STATIC_DRAW: + case GL_DYNAMIC_DRAW: + case GL_STREAM_DRAW: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferData(usage=0x%x)", usage); + return; + } + + _mesa_BufferDataARB(target, size, data, usage); +} + +extern void GL_APIENTRY _mesa_BufferSubDataARB(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data); +static void GL_APIENTRY _es_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glBufferSubData(target=0x%x)", target); + return; + } + + _mesa_BufferSubDataARB(target, offset, size, data); +} + +extern GLenum GL_APIENTRY _mesa_CheckFramebufferStatusEXT(GLenum target); +static GLenum GL_APIENTRY _es_CheckFramebufferStatus(GLenum target) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCheckFramebufferStatus(target=0x%x)", target); + return (GLenum) 0; + } + + return _mesa_CheckFramebufferStatusEXT(target); +} + +extern void GL_APIENTRY _mesa_Clear(GLbitfield mask); +static void GL_APIENTRY _es_Clear(GLbitfield mask) +{ + switch(mask) { + case 0: + case (GL_COLOR_BUFFER_BIT): + case (GL_DEPTH_BUFFER_BIT): + case (GL_STENCIL_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + case (GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + case (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT): + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glClear(mask=0x%x)", mask); + return; + } + + _mesa_Clear(mask); +} + +extern void GL_APIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#define _es_ClearColor _mesa_ClearColor + +extern void GL_APIENTRY _mesa_ClearDepthf(GLclampf depth); +#define _es_ClearDepthf _mesa_ClearDepthf + +extern void GL_APIENTRY _mesa_ClearStencil(GLint s); +#define _es_ClearStencil _mesa_ClearStencil + +extern void GL_APIENTRY _mesa_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#define _es_ColorMask _mesa_ColorMask + +extern void GL_APIENTRY _mesa_CompileShaderARB(GLuint shader); +#define _es_CompileShader _mesa_CompileShaderARB + +extern void GL_APIENTRY _mesa_CompressedTexImage2DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_PALETTE4_RGB8_OES: + case GL_PALETTE4_RGBA8_OES: + case GL_PALETTE4_R5_G6_B5_OES: + case GL_PALETTE4_RGBA4_OES: + case GL_PALETTE4_RGB5_A1_OES: + case GL_PALETTE8_RGB8_OES: + case GL_PALETTE8_RGBA8_OES: + case GL_PALETTE8_R5_G6_B5_OES: + case GL_PALETTE8_RGBA4_OES: + case GL_PALETTE8_RGB5_A1_OES: + case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: + case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage2D(internalFormat=0x%x)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCompressedTexImage2D(border=%d)", border); + return; + } + + _mesa_CompressedTexImage2DARB(target, level, internalFormat, width, height, border, imageSize, data); +} + +extern void GL_APIENTRY _mesa_CompressedTexImage3DARB(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexImage3DOES(target=0x%x)", target); + return; + } + + _mesa_CompressedTexImage3DARB(target, level, internalFormat, width, height, depth, border, imagesize, data); +} + +extern void GL_APIENTRY _mesa_CompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(target=0x%x)", target); + return; + } + switch(format) { + case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: + case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage2D(format=0x%x)", format); + return; + } + + _mesa_CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data); +} + +extern void GL_APIENTRY _mesa_CompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid * data); +static void GL_APIENTRY _es_CompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid *data) +{ + switch(target) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCompressedTexSubImage3DOES(target=0x%x)", target); + return; + } + + _mesa_CompressedTexSubImage3DARB(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, data); +} + +extern void GL_APIENTRY _mesa_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +static void GL_APIENTRY _es_CopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_ALPHA: + case GL_RGB: + case GL_RGBA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(internalFormat=0x%x)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glCopyTexImage2D(border=%d)", border); + return; + } + + _mesa_CopyTexImage2D(target, level, internalFormat, x, y, width, height, border); +} + +extern void GL_APIENTRY _mesa_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +static void GL_APIENTRY _es_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage2D(target=0x%x)", target); + return; + } + + _mesa_CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); +} + +extern void GL_APIENTRY _mesa_CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +static void GL_APIENTRY _es_CopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + switch(target) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCopyTexSubImage3DOES(target=0x%x)", target); + return; + } + + _mesa_CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height); +} + +extern GLuint GL_APIENTRY _mesa_CreateProgram(void); +#define _es_CreateProgram _mesa_CreateProgram + +extern GLuint GL_APIENTRY _mesa_CreateShader(GLenum type); +static GLuint GL_APIENTRY _es_CreateShader(GLenum type) +{ + switch(type) { + case GL_VERTEX_SHADER: + case GL_FRAGMENT_SHADER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCreateShader(type=0x%x)", type); + return (GLuint) 0; + } + + return _mesa_CreateShader(type); +} + +extern void GL_APIENTRY _mesa_CullFace(GLenum mode); +static void GL_APIENTRY _es_CullFace(GLenum mode) +{ + switch(mode) { + case GL_FRONT: + case GL_BACK: + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glCullFace(mode=0x%x)", mode); + return; + } + + _mesa_CullFace(mode); +} + +extern void GL_APIENTRY _mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer); +#define _es_DeleteBuffers _mesa_DeleteBuffersARB + +extern void GL_APIENTRY _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers); +#define _es_DeleteFramebuffers _mesa_DeleteFramebuffersEXT + +extern void GL_APIENTRY _mesa_DeleteProgram(GLuint program); +#define _es_DeleteProgram _mesa_DeleteProgram + +extern void GL_APIENTRY _mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers); +#define _es_DeleteRenderbuffers _mesa_DeleteRenderbuffersEXT + +extern void GL_APIENTRY _mesa_DeleteShader(GLuint shader); +#define _es_DeleteShader _mesa_DeleteShader + +extern void GL_APIENTRY _mesa_DeleteTextures(GLsizei n, const GLuint * textures); +#define _es_DeleteTextures _mesa_DeleteTextures + +extern void GL_APIENTRY _mesa_DepthFunc(GLenum func); +static void GL_APIENTRY _es_DepthFunc(GLenum func) +{ + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_EQUAL: + case GL_LEQUAL: + case GL_GREATER: + case GL_NOTEQUAL: + case GL_GEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDepthFunc(func=0x%x)", func); + return; + } + + _mesa_DepthFunc(func); +} + +extern void GL_APIENTRY _mesa_DepthMask(GLboolean flag); +#define _es_DepthMask _mesa_DepthMask + +extern void GL_APIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar); +#define _es_DepthRangef _mesa_DepthRangef + +extern void GL_APIENTRY _mesa_DetachShader(GLuint program, GLuint shader); +#define _es_DetachShader _mesa_DetachShader + +extern void GL_APIENTRY _mesa_Disable(GLenum cap); +static void GL_APIENTRY _es_Disable(GLenum cap) +{ + switch(cap) { + case GL_CULL_FACE: + case GL_SCISSOR_TEST: + case GL_POLYGON_OFFSET_FILL: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_COVERAGE: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_DITHER: + case GL_BLEND: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDisable(cap=0x%x)", cap); + return; + } + + _mesa_Disable(cap); +} + +extern void GL_APIENTRY _mesa_DisableVertexAttribArrayARB(GLuint index); +#define _es_DisableVertexAttribArray _mesa_DisableVertexAttribArrayARB + +extern void GL_APIENTRY _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count); +static void GL_APIENTRY _es_DrawArrays(GLenum mode, GLint first, GLsizei count) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawArrays(mode=0x%x)", mode); + return; + } + + _mesa_DrawArrays(mode, first, count); +} + +extern void GL_APIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); +static void GL_APIENTRY _es_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(mode=0x%x)", mode); + return; + } + switch(type) { + case GL_UNSIGNED_BYTE: + case GL_UNSIGNED_SHORT: + case GL_UNSIGNED_INT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glDrawElements(type=0x%x)", type); + return; + } + + _mesa_DrawElements(mode, count, type, indices); +} + +extern void GL_APIENTRY _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image); +static void GL_APIENTRY _es_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) +{ + switch(target) { + case GL_RENDERBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetRenderbufferStorageOES(target=0x%x)", target); + return; + } + + _mesa_EGLImageTargetRenderbufferStorageOES(target, image); +} + +extern void GL_APIENTRY _mesa_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); +static void GL_APIENTRY _es_EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) +{ + switch(target) { + case GL_TEXTURE_2D: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEGLImageTargetTexture2DOES(target=0x%x)", target); + return; + } + + _mesa_EGLImageTargetTexture2DOES(target, image); +} + +extern void GL_APIENTRY _mesa_Enable(GLenum cap); +static void GL_APIENTRY _es_Enable(GLenum cap) +{ + switch(cap) { + case GL_CULL_FACE: + case GL_SCISSOR_TEST: + case GL_POLYGON_OFFSET_FILL: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_COVERAGE: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_DITHER: + case GL_BLEND: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glEnable(cap=0x%x)", cap); + return; + } + + _mesa_Enable(cap); +} + +extern void GL_APIENTRY _mesa_EnableVertexAttribArrayARB(GLuint index); +#define _es_EnableVertexAttribArray _mesa_EnableVertexAttribArrayARB + +extern void GL_APIENTRY _mesa_Finish(void); +#define _es_Finish _mesa_Finish + +extern void GL_APIENTRY _mesa_Flush(void); +#define _es_Flush _mesa_Flush + +extern void GL_APIENTRY _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +static void GL_APIENTRY _es_FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbuffer(target=0x%x)", target); + return; + } + switch(attachment) { + case GL_COLOR_ATTACHMENT0: + case GL_DEPTH_ATTACHMENT: + case GL_STENCIL_ATTACHMENT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbuffer(attachment=0x%x)", attachment); + return; + } + switch(renderbuffertarget) { + case GL_RENDERBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferRenderbuffer(renderbuffertarget=0x%x)", renderbuffertarget); + return; + } + + _mesa_FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer); +} + +extern void GL_APIENTRY _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +static void GL_APIENTRY _es_FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2D(target=0x%x)", target); + return; + } + switch(attachment) { + case GL_COLOR_ATTACHMENT0: + case GL_DEPTH_ATTACHMENT: + case GL_STENCIL_ATTACHMENT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture2D(attachment=0x%x)", attachment); + return; + } + switch(textarget) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture2D(textarget=0x%x)", textarget); + return; + } + + _mesa_FramebufferTexture2DEXT(target, attachment, textarget, texture, level); +} + +extern void GL_APIENTRY _mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +static void GL_APIENTRY _es_FramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture3DOES(target=0x%x)", target); + return; + } + switch(attachment) { + case GL_COLOR_ATTACHMENT0: + case GL_DEPTH_ATTACHMENT: + case GL_STENCIL_ATTACHMENT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFramebufferTexture3DOES(attachment=0x%x)", attachment); + return; + } + switch(textarget) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glFramebufferTexture3DOES(textarget=0x%x)", textarget); + return; + } + + _mesa_FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset); +} + +extern void GL_APIENTRY _mesa_FrontFace(GLenum mode); +static void GL_APIENTRY _es_FrontFace(GLenum mode) +{ + switch(mode) { + case GL_CW: + case GL_CCW: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glFrontFace(mode=0x%x)", mode); + return; + } + + _mesa_FrontFace(mode); +} + +extern void GL_APIENTRY _mesa_GenBuffersARB(GLsizei n, GLuint * buffer); +#define _es_GenBuffers _mesa_GenBuffersARB + +extern void GL_APIENTRY _mesa_GenFramebuffersEXT(GLsizei n, GLuint * ids); +#define _es_GenFramebuffers _mesa_GenFramebuffersEXT + +extern void GL_APIENTRY _mesa_GenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers); +#define _es_GenRenderbuffers _mesa_GenRenderbuffersEXT + +extern void GL_APIENTRY _mesa_GenTextures(GLsizei n, GLuint * textures); +#define _es_GenTextures _mesa_GenTextures + +extern void GL_APIENTRY _mesa_GenerateMipmapEXT(GLenum target); +static void GL_APIENTRY _es_GenerateMipmap(GLenum target) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGenerateMipmap(target=0x%x)", target); + return; + } + + _mesa_GenerateMipmapEXT(target); +} + +extern void GL_APIENTRY _mesa_GetActiveAttribARB(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +#define _es_GetActiveAttrib _mesa_GetActiveAttribARB + +extern void GL_APIENTRY _mesa_GetActiveUniformARB(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +#define _es_GetActiveUniform _mesa_GetActiveUniformARB + +extern void GL_APIENTRY _mesa_GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); +#define _es_GetAttachedShaders _mesa_GetAttachedShaders + +extern GLint GL_APIENTRY _mesa_GetAttribLocationARB(GLuint program, const char * name); +#define _es_GetAttribLocation _mesa_GetAttribLocationARB + +extern void GL_APIENTRY _mesa_GetBooleanv(GLenum pname, GLboolean * params); +#define _es_GetBooleanv _mesa_GetBooleanv + +extern void GL_APIENTRY _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_BUFFER_SIZE: + case GL_BUFFER_USAGE: + case GL_BUFFER_ACCESS_OES: + case GL_BUFFER_MAPPED_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetBufferParameterivARB(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid ** params); +static void GL_APIENTRY _es_GetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(target=0x%x)", target); + return; + } + switch(pname) { + case GL_BUFFER_MAP_POINTER_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetBufferPointervOES(pname=0x%x)", pname); + return; + } + + _mesa_GetBufferPointervARB(target, pname, params); +} + +extern GLenum GL_APIENTRY _mesa_GetError(void); +#define _es_GetError _mesa_GetError + +extern void GL_APIENTRY _mesa_GetFloatv(GLenum pname, GLfloat * params); +#define _es_GetFloatv _mesa_GetFloatv + +extern void GL_APIENTRY _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params) +{ + switch(target) { + case GL_FRAMEBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: /* size 1 */ + case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetFramebufferAttachmentParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params); +} + +extern void GL_APIENTRY _mesa_GetIntegerv(GLenum pname, GLint * params); +#define _es_GetIntegerv _mesa_GetIntegerv + +extern void GL_APIENTRY _mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +#define _es_GetProgramInfoLog _mesa_GetProgramInfoLog + +extern void GL_APIENTRY _mesa_GetProgramiv(GLuint program, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetProgramiv(GLuint program, GLenum pname, GLint *params) +{ + switch(pname) { + case GL_DELETE_STATUS: + case GL_LINK_STATUS: + case GL_VALIDATE_STATUS: + case GL_INFO_LOG_LENGTH: + case GL_ATTACHED_SHADERS: + case GL_ACTIVE_ATTRIBUTES: + case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: + case GL_ACTIVE_UNIFORMS: + case GL_ACTIVE_UNIFORM_MAX_LENGTH: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetProgramiv(pname=0x%x)", pname); + return; + } + + _mesa_GetProgramiv(program, pname, params); +} + +extern void GL_APIENTRY _mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_RENDERBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_RENDERBUFFER_WIDTH: /* size 1 */ + case GL_RENDERBUFFER_HEIGHT: /* size 1 */ + case GL_RENDERBUFFER_INTERNAL_FORMAT: /* size 1 */ + case GL_RENDERBUFFER_RED_SIZE: /* size 1 */ + case GL_RENDERBUFFER_GREEN_SIZE: /* size 1 */ + case GL_RENDERBUFFER_BLUE_SIZE: /* size 1 */ + case GL_RENDERBUFFER_ALPHA_SIZE: /* size 1 */ + case GL_RENDERBUFFER_DEPTH_SIZE: /* size 1 */ + case GL_RENDERBUFFER_STENCIL_SIZE: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetRenderbufferParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetRenderbufferParameterivEXT(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +#define _es_GetShaderInfoLog _mesa_GetShaderInfoLog + +extern void GL_APIENTRY _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); +static void GL_APIENTRY _es_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision) +{ + switch(shadertype) { + case GL_VERTEX_SHADER: + case GL_FRAGMENT_SHADER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderPrecisionFormat(shadertype=0x%x)", shadertype); + return; + } + switch(precisiontype) { + case GL_LOW_FLOAT: + case GL_MEDIUM_FLOAT: + case GL_HIGH_FLOAT: + case GL_LOW_INT: + case GL_MEDIUM_INT: + case GL_HIGH_INT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderPrecisionFormat(precisiontype=0x%x)", precisiontype); + return; + } + + _mesa_GetShaderPrecisionFormat(shadertype, precisiontype, range, precision); +} + +extern void GL_APIENTRY _mesa_GetShaderSourceARB(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source); +#define _es_GetShaderSource _mesa_GetShaderSourceARB + +extern void GL_APIENTRY _mesa_GetShaderiv(GLuint shader, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetShaderiv(GLuint shader, GLenum pname, GLint *params) +{ + switch(pname) { + case GL_SHADER_TYPE: + case GL_COMPILE_STATUS: + case GL_DELETE_STATUS: + case GL_INFO_LOG_LENGTH: + case GL_SHADER_SOURCE_LENGTH: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetShaderiv(pname=0x%x)", pname); + return; + } + + _mesa_GetShaderiv(shader, pname, params); +} + +extern const GLubyte * GL_APIENTRY _mesa_GetString(GLenum name); +static const GLubyte * GL_APIENTRY _es_GetString(GLenum name) +{ + switch(name) { + case GL_VENDOR: + case GL_RENDERER: + case GL_VERSION: + case GL_EXTENSIONS: + case GL_SHADING_LANGUAGE_VERSION: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetString(name=0x%x)", name); + return (const GLubyte *) 0; + } + + return _mesa_GetString(name); +} + +extern void GL_APIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_WRAP_R_OES: /* size 1 */ + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameterfv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexParameterfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_GetTexParameteriv(GLenum target, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetTexParameteriv(GLenum target, GLenum pname, GLint *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_WRAP_R_OES: /* size 1 */ + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetTexParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_GetTexParameteriv(target, pname, params); +} + +extern GLint GL_APIENTRY _mesa_GetUniformLocationARB(GLuint program, const char * name); +#define _es_GetUniformLocation _mesa_GetUniformLocationARB + +extern void GL_APIENTRY _mesa_GetUniformfvARB(GLuint program, GLint location, GLfloat * params); +#define _es_GetUniformfv _mesa_GetUniformfvARB + +extern void GL_APIENTRY _mesa_GetUniformivARB(GLuint program, GLint location, GLint * params); +#define _es_GetUniformiv _mesa_GetUniformivARB + +extern void GL_APIENTRY _mesa_GetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid ** pointer); +static void GL_APIENTRY _es_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer) +{ + switch(pname) { + case GL_VERTEX_ATTRIB_ARRAY_POINTER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribPointerv(pname=0x%x)", pname); + return; + } + + _mesa_GetVertexAttribPointervARB(index, pname, pointer); +} + +extern void GL_APIENTRY _mesa_GetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat * params); +static void GL_APIENTRY _es_GetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) +{ + switch(pname) { + case GL_VERTEX_ATTRIB_ARRAY_ENABLED: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_SIZE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_STRIDE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_TYPE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: /* size 1 */ + case GL_CURRENT_VERTEX_ATTRIB: /* size 16? */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribfv(pname=0x%x)", pname); + return; + } + + _mesa_GetVertexAttribfvARB(index, pname, params); +} + +extern void GL_APIENTRY _mesa_GetVertexAttribivARB(GLuint index, GLenum pname, GLint * params); +static void GL_APIENTRY _es_GetVertexAttribiv(GLuint index, GLenum pname, GLint *params) +{ + switch(pname) { + case GL_VERTEX_ATTRIB_ARRAY_ENABLED: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_SIZE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_STRIDE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_TYPE: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: /* size 1 */ + case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: /* size 1 */ + case GL_CURRENT_VERTEX_ATTRIB: /* size 16? */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glGetVertexAttribiv(pname=0x%x)", pname); + return; + } + + _mesa_GetVertexAttribivARB(index, pname, params); +} + +extern void GL_APIENTRY _mesa_Hint(GLenum target, GLenum mode); +static void GL_APIENTRY _es_Hint(GLenum target, GLenum mode) +{ + switch(target) { + case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: + case GL_GENERATE_MIPMAP_HINT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(target=0x%x)", target); + return; + } + switch(mode) { + case GL_FASTEST: + case GL_NICEST: + case GL_DONT_CARE: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glHint(mode=0x%x)", mode); + return; + } + + _mesa_Hint(target, mode); +} + +extern GLboolean GL_APIENTRY _mesa_IsBufferARB(GLuint buffer); +#define _es_IsBuffer _mesa_IsBufferARB + +extern GLboolean GL_APIENTRY _mesa_IsEnabled(GLenum cap); +static GLboolean GL_APIENTRY _es_IsEnabled(GLenum cap) +{ + switch(cap) { + case GL_CULL_FACE: + case GL_SCISSOR_TEST: + case GL_POLYGON_OFFSET_FILL: + case GL_SAMPLE_ALPHA_TO_COVERAGE: + case GL_SAMPLE_COVERAGE: + case GL_STENCIL_TEST: + case GL_DEPTH_TEST: + case GL_DITHER: + case GL_BLEND: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glIsEnabled(cap=0x%x)", cap); + return GL_FALSE; + } + + return _mesa_IsEnabled(cap); +} + +extern GLboolean GL_APIENTRY _mesa_IsFramebufferEXT(GLuint framebuffer); +#define _es_IsFramebuffer _mesa_IsFramebufferEXT + +extern GLboolean GL_APIENTRY _mesa_IsProgram(GLuint program); +#define _es_IsProgram _mesa_IsProgram + +extern GLboolean GL_APIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer); +#define _es_IsRenderbuffer _mesa_IsRenderbufferEXT + +extern GLboolean GL_APIENTRY _mesa_IsShader(GLuint shader); +#define _es_IsShader _mesa_IsShader + +extern GLboolean GL_APIENTRY _mesa_IsTexture(GLuint texture); +#define _es_IsTexture _mesa_IsTexture + +extern void GL_APIENTRY _mesa_LineWidth(GLfloat width); +#define _es_LineWidth _mesa_LineWidth + +extern void GL_APIENTRY _mesa_LinkProgramARB(GLuint program); +#define _es_LinkProgram _mesa_LinkProgramARB + +extern void * GL_APIENTRY _mesa_MapBufferARB(GLenum target, GLenum access); +static void * GL_APIENTRY _es_MapBufferOES(GLenum target, GLenum access) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(target=0x%x)", target); + return (void *) 0; + } + switch(access) { + case GL_WRITE_ONLY_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMapBufferOES(access=0x%x)", access); + return (void *) 0; + } + + return _mesa_MapBufferARB(target, access); +} + +extern void GL_APIENTRY _mesa_MultiDrawArraysEXT(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); +static void GL_APIENTRY _es_MultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawArraysEXT(mode=0x%x)", mode); + return; + } + + _mesa_MultiDrawArraysEXT(mode, first, count, primcount); +} + +extern void GL_APIENTRY _mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); +static void GL_APIENTRY _es_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount) +{ + switch(mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_LOOP: + case GL_LINE_STRIP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(mode=0x%x)", mode); + return; + } + switch(type) { + case GL_UNSIGNED_BYTE: + case GL_UNSIGNED_SHORT: + case GL_UNSIGNED_INT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glMultiDrawElementsEXT(type=0x%x)", type); + return; + } + + _mesa_MultiDrawElementsEXT(mode, count, type, indices, primcount); +} + +extern void GL_APIENTRY _mesa_PixelStorei(GLenum pname, GLint param); +static void GL_APIENTRY _es_PixelStorei(GLenum pname, GLint param) +{ + switch(pname) { + case GL_PACK_ALIGNMENT: + case GL_UNPACK_ALIGNMENT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glPixelStorei(pname=0x%x)", pname); + return; + } + switch(param) { + case 1: + case 2: + case 4: + case 8: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glPixelStorei(param=%d)", param); + return; + } + + _mesa_PixelStorei(pname, param); +} + +extern void GL_APIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units); +#define _es_PolygonOffset _mesa_PolygonOffset + +extern void GL_APIENTRY _mesa_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); +static void GL_APIENTRY _es_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) +{ + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glReadPixels(format=0x%x)", format); + return; + } + + _mesa_ReadPixels(x, y, width, height, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_ReleaseShaderCompiler(void); +#define _es_ReleaseShaderCompiler _mesa_ReleaseShaderCompiler + +/* this function is special and is defined elsewhere */ +extern void GL_APIENTRY _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); +static void GL_APIENTRY _check_RenderbufferStorage(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height) +{ + switch(target) { + case GL_RENDERBUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorage(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_DEPTH_COMPONENT16: + case GL_RGBA4: + case GL_RGB5_A1: + case GL_RGB565: + case GL_STENCIL_INDEX8: + case GL_DEPTH_COMPONENT24_OES: + case GL_DEPTH_COMPONENT32_OES: + case GL_RGB8_OES: + case GL_RGBA8_OES: + case GL_STENCIL_INDEX1_OES: + case GL_STENCIL_INDEX4_OES: + case GL_DEPTH24_STENCIL8_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glRenderbufferStorage(internalFormat=0x%x)", internalFormat); + return; + } + + _es_RenderbufferStorageEXT(target, internalFormat, width, height); +} + +extern void GL_APIENTRY _mesa_SampleCoverageARB(GLclampf value, GLboolean invert); +#define _es_SampleCoverage _mesa_SampleCoverageARB + +extern void GL_APIENTRY _mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height); +#define _es_Scissor _mesa_Scissor + +extern void GL_APIENTRY _mesa_ShaderBinary(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length); +#define _es_ShaderBinary _mesa_ShaderBinary + +extern void GL_APIENTRY _mesa_ShaderSourceARB(GLuint shader, GLsizei count, const GLchar ** string, const int * length); +#define _es_ShaderSource _mesa_ShaderSourceARB + +extern void GL_APIENTRY _mesa_StencilFunc(GLenum func, GLint ref, GLuint mask); +static void GL_APIENTRY _es_StencilFunc(GLenum func, GLint ref, GLuint mask) +{ + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_LEQUAL: + case GL_GREATER: + case GL_GEQUAL: + case GL_EQUAL: + case GL_NOTEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFunc(func=0x%x)", func); + return; + } + + _mesa_StencilFunc(func, ref, mask); +} + +extern void GL_APIENTRY _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); +static void GL_APIENTRY _es_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) +{ + switch(face) { + case GL_FRONT: + case GL_BACK: + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFuncSeparate(face=0x%x)", face); + return; + } + switch(func) { + case GL_NEVER: + case GL_LESS: + case GL_LEQUAL: + case GL_GREATER: + case GL_GEQUAL: + case GL_EQUAL: + case GL_NOTEQUAL: + case GL_ALWAYS: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilFuncSeparate(func=0x%x)", func); + return; + } + + _mesa_StencilFuncSeparate(face, func, ref, mask); +} + +extern void GL_APIENTRY _mesa_StencilMask(GLuint mask); +#define _es_StencilMask _mesa_StencilMask + +extern void GL_APIENTRY _mesa_StencilMaskSeparate(GLenum face, GLuint mask); +static void GL_APIENTRY _es_StencilMaskSeparate(GLenum face, GLuint mask) +{ + switch(face) { + case GL_FRONT: + case GL_BACK: + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilMaskSeparate(face=0x%x)", face); + return; + } + + _mesa_StencilMaskSeparate(face, mask); +} + +extern void GL_APIENTRY _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass); +static void GL_APIENTRY _es_StencilOp(GLenum fail, GLenum zfail, GLenum zpass) +{ + switch(fail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(fail=0x%x)", fail); + return; + } + switch(zfail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zfail=0x%x)", zfail); + return; + } + switch(zpass) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOp(zpass=0x%x)", zpass); + return; + } + + _mesa_StencilOp(fail, zfail, zpass); +} + +extern void GL_APIENTRY _mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +static void GL_APIENTRY _es_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) +{ + switch(face) { + case GL_FRONT: + case GL_BACK: + case GL_FRONT_AND_BACK: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(face=0x%x)", face); + return; + } + switch(fail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(fail=0x%x)", fail); + return; + } + switch(zfail) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(zfail=0x%x)", zfail); + return; + } + switch(zpass) { + case GL_KEEP: + case GL_ZERO: + case GL_REPLACE: + case GL_INCR: + case GL_DECR: + case GL_INVERT: + case GL_INCR_WRAP: + case GL_DECR_WRAP: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glStencilOpSeparate(zpass=0x%x)", zpass); + return; + } + + _mesa_StencilOpSeparate(face, fail, zfail, zpass); +} + +extern void GL_APIENTRY _mesa_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage2D(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_ALPHA: + case GL_RGB: + case GL_RGBA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + case GL_DEPTH_COMPONENT: + case GL_DEPTH_STENCIL_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(internalFormat=%d)", internalFormat); + return; + } + switch(border) { + case 0: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glTexImage2D(border=%d)", border); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_DEPTH_COMPONENT: + if (type != GL_UNSIGNED_SHORT && type != GL_UNSIGNED_INT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + case GL_DEPTH_STENCIL_OES: + if (type != GL_UNSIGNED_INT_24_8_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage2D(format=0x%x)", format); + return; + } + + _mesa_TexImage2D(target, level, internalFormat, width, height, border, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_TexImage3D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage3DOES(target=0x%x)", target); + return; + } + switch(internalFormat) { + case GL_ALPHA: + case GL_RGB: + case GL_RGBA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexImage3DOES(internalFormat=0x%x)", internalFormat); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexImage3DOES(format=0x%x)", format); + return; + } + + _mesa_TexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param); +static void GL_APIENTRY _es_TexParameterf(GLenum target, GLenum pname, GLfloat param) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + case GL_TEXTURE_WRAP_R_OES: + if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterf(pname=0x%x)", pname); + return; + } + + _mesa_TexParameterf(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params); +static void GL_APIENTRY _es_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_WRAP_R_OES: /* size 1 */ + if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameterfv(pname=0x%x)", pname); + return; + } + + _mesa_TexParameterfv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexParameteri(GLenum target, GLenum pname, GLint param); +static void GL_APIENTRY _es_TexParameteri(GLenum target, GLenum pname, GLint param) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + case GL_TEXTURE_WRAP_R_OES: + if (param != GL_CLAMP_TO_EDGE && param != GL_REPEAT && param != GL_MIRRORED_REPEAT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR && param != GL_NEAREST_MIPMAP_NEAREST && param != GL_NEAREST_MIPMAP_LINEAR && param != GL_LINEAR_MIPMAP_NEAREST && param != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: + if (param != GL_NEAREST && param != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteri(pname=0x%x)", pname); + return; + } + + _mesa_TexParameteri(target, pname, param); +} + +extern void GL_APIENTRY _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint * params); +static void GL_APIENTRY _es_TexParameteriv(GLenum target, GLenum pname, const GLint *params) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(target=0x%x)", target); + return; + } + switch(pname) { + case GL_TEXTURE_WRAP_S: /* size 1 */ + case GL_TEXTURE_WRAP_T: /* size 1 */ + case GL_TEXTURE_WRAP_R_OES: /* size 1 */ + if (params[0] != GL_CLAMP_TO_EDGE && params[0] != GL_REPEAT && params[0] != GL_MIRRORED_REPEAT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MIN_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR && params[0] != GL_NEAREST_MIPMAP_NEAREST && params[0] != GL_NEAREST_MIPMAP_LINEAR && params[0] != GL_LINEAR_MIPMAP_NEAREST && params[0] != GL_LINEAR_MIPMAP_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAG_FILTER: /* size 1 */ + if (params[0] != GL_NEAREST && params[0] != GL_LINEAR) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + break; + case GL_TEXTURE_MAX_ANISOTROPY_EXT: /* size 1 */ + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexParameteriv(pname=0x%x)", pname); + return; + } + + _mesa_TexParameteriv(target, pname, params); +} + +extern void GL_APIENTRY _mesa_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage2D(target=0x%x)", target); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_DEPTH_COMPONENT: + if (type != GL_UNSIGNED_SHORT && type != GL_UNSIGNED_INT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + case GL_DEPTH_STENCIL_OES: + if (type != GL_UNSIGNED_INT_24_8_OES) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage2D(format=0x%x)", format); + return; + } + + _mesa_TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels); +static void GL_APIENTRY _es_TexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels) +{ + switch(target) { + case GL_TEXTURE_3D_OES: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glTexSubImage3DOES(target=0x%x)", target); + return; + } + switch(format) { + case GL_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_RGB: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_5_6_5) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_RGBA: + if (type != GL_UNSIGNED_BYTE && type != GL_UNSIGNED_SHORT_4_4_4_4 && type != GL_UNSIGNED_SHORT_5_5_5_1 && type != GL_UNSIGNED_INT_2_10_10_10_REV_EXT) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format); + return; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (type != GL_UNSIGNED_BYTE) { + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format); + return; + } + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_OPERATION, "glTexSubImage3DOES(format=0x%x)", format); + return; + } + + _mesa_TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); +} + +extern void GL_APIENTRY _mesa_Uniform1fARB(GLint location, GLfloat v0); +#define _es_Uniform1f _mesa_Uniform1fARB + +extern void GL_APIENTRY _mesa_Uniform1fvARB(GLint location, GLsizei count, const GLfloat * values); +#define _es_Uniform1fv _mesa_Uniform1fvARB + +extern void GL_APIENTRY _mesa_Uniform1iARB(GLint location, GLint v0); +#define _es_Uniform1i _mesa_Uniform1iARB + +extern void GL_APIENTRY _mesa_Uniform1ivARB(GLint location, GLsizei count, const GLint * values); +#define _es_Uniform1iv _mesa_Uniform1ivARB + +extern void GL_APIENTRY _mesa_Uniform2fARB(GLint location, GLfloat v0, GLfloat v1); +#define _es_Uniform2f _mesa_Uniform2fARB + +extern void GL_APIENTRY _mesa_Uniform2fvARB(GLint location, GLsizei count, const GLfloat * values); +#define _es_Uniform2fv _mesa_Uniform2fvARB + +extern void GL_APIENTRY _mesa_Uniform2iARB(GLint location, GLint v0, GLint v1); +#define _es_Uniform2i _mesa_Uniform2iARB + +extern void GL_APIENTRY _mesa_Uniform2ivARB(GLint location, GLsizei count, const GLint * values); +#define _es_Uniform2iv _mesa_Uniform2ivARB + +extern void GL_APIENTRY _mesa_Uniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +#define _es_Uniform3f _mesa_Uniform3fARB + +extern void GL_APIENTRY _mesa_Uniform3fvARB(GLint location, GLsizei count, const GLfloat * values); +#define _es_Uniform3fv _mesa_Uniform3fvARB + +extern void GL_APIENTRY _mesa_Uniform3iARB(GLint location, GLint v0, GLint v1, GLint v2); +#define _es_Uniform3i _mesa_Uniform3iARB + +extern void GL_APIENTRY _mesa_Uniform3ivARB(GLint location, GLsizei count, const GLint * values); +#define _es_Uniform3iv _mesa_Uniform3ivARB + +extern void GL_APIENTRY _mesa_Uniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +#define _es_Uniform4f _mesa_Uniform4fARB + +extern void GL_APIENTRY _mesa_Uniform4fvARB(GLint location, GLsizei count, const GLfloat * values); +#define _es_Uniform4fv _mesa_Uniform4fvARB + +extern void GL_APIENTRY _mesa_Uniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +#define _es_Uniform4i _mesa_Uniform4iARB + +extern void GL_APIENTRY _mesa_Uniform4ivARB(GLint location, GLsizei count, const GLint * values); +#define _es_Uniform4iv _mesa_Uniform4ivARB + +extern void GL_APIENTRY _mesa_UniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +#define _es_UniformMatrix2fv _mesa_UniformMatrix2fvARB + +extern void GL_APIENTRY _mesa_UniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +#define _es_UniformMatrix3fv _mesa_UniformMatrix3fvARB + +extern void GL_APIENTRY _mesa_UniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +#define _es_UniformMatrix4fv _mesa_UniformMatrix4fvARB + +extern GLboolean GL_APIENTRY _mesa_UnmapBufferARB(GLenum target); +static GLboolean GL_APIENTRY _es_UnmapBufferOES(GLenum target) +{ + switch(target) { + case GL_ARRAY_BUFFER: + case GL_ELEMENT_ARRAY_BUFFER: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM, "glUnmapBufferOES(target=0x%x)", target); + return GL_FALSE; + } + + return _mesa_UnmapBufferARB(target); +} + +extern void GL_APIENTRY _mesa_UseProgramObjectARB(GLuint program); +#define _es_UseProgram _mesa_UseProgramObjectARB + +extern void GL_APIENTRY _mesa_ValidateProgramARB(GLuint program); +#define _es_ValidateProgram _mesa_ValidateProgramARB + +extern void GL_APIENTRY _vbo_VertexAttrib1f(GLuint index, GLfloat x); +#define _es_VertexAttrib1f _vbo_VertexAttrib1f + +extern void GL_APIENTRY _vbo_VertexAttrib1fv(GLuint index, const GLfloat * v); +#define _es_VertexAttrib1fv _vbo_VertexAttrib1fv + +extern void GL_APIENTRY _vbo_VertexAttrib2f(GLuint index, GLfloat x, GLfloat y); +#define _es_VertexAttrib2f _vbo_VertexAttrib2f + +extern void GL_APIENTRY _vbo_VertexAttrib2fv(GLuint index, const GLfloat * v); +#define _es_VertexAttrib2fv _vbo_VertexAttrib2fv + +extern void GL_APIENTRY _vbo_VertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z); +#define _es_VertexAttrib3f _vbo_VertexAttrib3f + +extern void GL_APIENTRY _vbo_VertexAttrib3fv(GLuint index, const GLfloat * v); +#define _es_VertexAttrib3fv _vbo_VertexAttrib3fv + +extern void GL_APIENTRY _vbo_VertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +#define _es_VertexAttrib4f _vbo_VertexAttrib4f + +extern void GL_APIENTRY _vbo_VertexAttrib4fv(GLuint index, const GLfloat * v); +#define _es_VertexAttrib4fv _vbo_VertexAttrib4fv + +extern void GL_APIENTRY _mesa_VertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); +static void GL_APIENTRY _es_VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer) +{ + switch(size) { + case 1: + case 2: + case 3: + case 4: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexAttribPointer(size=%d)", size); + return; + } + switch(type) { + case GL_BYTE: + case GL_UNSIGNED_BYTE: + case GL_SHORT: + case GL_UNSIGNED_SHORT: + case GL_FLOAT: + case GL_FIXED: + break; + default: + _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE, "glVertexAttribPointer(type=0x%x)", type); + return; + } + + _mesa_VertexAttribPointerARB(index, size, type, normalized, stride, pointer); +} + +extern void GL_APIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); +#define _es_Viewport _mesa_Viewport + + +struct _glapi_table * +_mesa_create_exec_table_es2(void) +{ + struct _glapi_table *exec; + exec = _mesa_alloc_dispatch_table(sizeof *exec); + if (exec == NULL) + return NULL; + + + SET_ActiveTexture(exec, _es_ActiveTexture); + SET_AttachShader(exec, _es_AttachShader); + SET_BindAttribLocation(exec, _es_BindAttribLocation); + SET_BindBuffer(exec, _es_BindBuffer); + SET_BindFramebuffer(exec, _es_BindFramebuffer); + SET_BindRenderbuffer(exec, _es_BindRenderbuffer); + SET_BindTexture(exec, _es_BindTexture); + SET_BlendColor(exec, _es_BlendColor); + SET_BlendEquation(exec, _es_BlendEquation); + SET_BlendEquationSeparate(exec, _es_BlendEquationSeparate); + SET_BlendFunc(exec, _es_BlendFunc); + SET_BlendFuncSeparate(exec, _es_BlendFuncSeparate); + SET_BufferData(exec, _es_BufferData); + SET_BufferSubData(exec, _es_BufferSubData); + SET_CheckFramebufferStatus(exec, _es_CheckFramebufferStatus); + SET_Clear(exec, _es_Clear); + SET_ClearColor(exec, _es_ClearColor); + SET_ClearDepthf(exec, _es_ClearDepthf); + SET_ClearStencil(exec, _es_ClearStencil); + SET_ColorMask(exec, _es_ColorMask); + SET_CompileShader(exec, _es_CompileShader); + SET_CompressedTexImage2D(exec, _es_CompressedTexImage2D); + SET_CompressedTexImage3DOES(exec, _es_CompressedTexImage3DOES); + SET_CompressedTexSubImage2D(exec, _es_CompressedTexSubImage2D); + SET_CompressedTexSubImage3DOES(exec, _es_CompressedTexSubImage3DOES); + SET_CopyTexImage2D(exec, _es_CopyTexImage2D); + SET_CopyTexSubImage2D(exec, _es_CopyTexSubImage2D); + SET_CopyTexSubImage3DOES(exec, _es_CopyTexSubImage3DOES); + SET_CreateProgram(exec, _es_CreateProgram); + SET_CreateShader(exec, _es_CreateShader); + SET_CullFace(exec, _es_CullFace); + SET_DeleteBuffers(exec, _es_DeleteBuffers); + SET_DeleteFramebuffers(exec, _es_DeleteFramebuffers); + SET_DeleteProgram(exec, _es_DeleteProgram); + SET_DeleteRenderbuffers(exec, _es_DeleteRenderbuffers); + SET_DeleteShader(exec, _es_DeleteShader); + SET_DeleteTextures(exec, _es_DeleteTextures); + SET_DepthFunc(exec, _es_DepthFunc); + SET_DepthMask(exec, _es_DepthMask); + SET_DepthRangef(exec, _es_DepthRangef); + SET_DetachShader(exec, _es_DetachShader); + SET_Disable(exec, _es_Disable); + SET_DisableVertexAttribArray(exec, _es_DisableVertexAttribArray); + SET_DrawArrays(exec, _es_DrawArrays); + SET_DrawElements(exec, _es_DrawElements); + SET_EGLImageTargetRenderbufferStorageOES(exec, _es_EGLImageTargetRenderbufferStorageOES); + SET_EGLImageTargetTexture2DOES(exec, _es_EGLImageTargetTexture2DOES); + SET_Enable(exec, _es_Enable); + SET_EnableVertexAttribArray(exec, _es_EnableVertexAttribArray); + SET_Finish(exec, _es_Finish); + SET_Flush(exec, _es_Flush); + SET_FramebufferRenderbuffer(exec, _es_FramebufferRenderbuffer); + SET_FramebufferTexture2D(exec, _es_FramebufferTexture2D); + SET_FramebufferTexture3DOES(exec, _es_FramebufferTexture3DOES); + SET_FrontFace(exec, _es_FrontFace); + SET_GenBuffers(exec, _es_GenBuffers); + SET_GenFramebuffers(exec, _es_GenFramebuffers); + SET_GenRenderbuffers(exec, _es_GenRenderbuffers); + SET_GenTextures(exec, _es_GenTextures); + SET_GenerateMipmap(exec, _es_GenerateMipmap); + SET_GetActiveAttrib(exec, _es_GetActiveAttrib); + SET_GetActiveUniform(exec, _es_GetActiveUniform); + SET_GetAttachedShaders(exec, _es_GetAttachedShaders); + SET_GetAttribLocation(exec, _es_GetAttribLocation); + SET_GetBooleanv(exec, _es_GetBooleanv); + SET_GetBufferParameteriv(exec, _es_GetBufferParameteriv); + SET_GetBufferPointervOES(exec, _es_GetBufferPointervOES); + SET_GetError(exec, _es_GetError); + SET_GetFloatv(exec, _es_GetFloatv); + SET_GetFramebufferAttachmentParameteriv(exec, _es_GetFramebufferAttachmentParameteriv); + SET_GetIntegerv(exec, _es_GetIntegerv); + SET_GetProgramInfoLog(exec, _es_GetProgramInfoLog); + SET_GetProgramiv(exec, _es_GetProgramiv); + SET_GetRenderbufferParameteriv(exec, _es_GetRenderbufferParameteriv); + SET_GetShaderInfoLog(exec, _es_GetShaderInfoLog); + SET_GetShaderPrecisionFormat(exec, _es_GetShaderPrecisionFormat); + SET_GetShaderSource(exec, _es_GetShaderSource); + SET_GetShaderiv(exec, _es_GetShaderiv); + SET_GetString(exec, _es_GetString); + SET_GetTexParameterfv(exec, _es_GetTexParameterfv); + SET_GetTexParameteriv(exec, _es_GetTexParameteriv); + SET_GetUniformLocation(exec, _es_GetUniformLocation); + SET_GetUniformfv(exec, _es_GetUniformfv); + SET_GetUniformiv(exec, _es_GetUniformiv); + SET_GetVertexAttribPointerv(exec, _es_GetVertexAttribPointerv); + SET_GetVertexAttribfv(exec, _es_GetVertexAttribfv); + SET_GetVertexAttribiv(exec, _es_GetVertexAttribiv); + SET_Hint(exec, _es_Hint); + SET_IsBuffer(exec, _es_IsBuffer); + SET_IsEnabled(exec, _es_IsEnabled); + SET_IsFramebuffer(exec, _es_IsFramebuffer); + SET_IsProgram(exec, _es_IsProgram); + SET_IsRenderbuffer(exec, _es_IsRenderbuffer); + SET_IsShader(exec, _es_IsShader); + SET_IsTexture(exec, _es_IsTexture); + SET_LineWidth(exec, _es_LineWidth); + SET_LinkProgram(exec, _es_LinkProgram); + SET_MapBufferOES(exec, _es_MapBufferOES); + SET_MultiDrawArraysEXT(exec, _es_MultiDrawArraysEXT); + SET_MultiDrawElementsEXT(exec, _es_MultiDrawElementsEXT); + SET_PixelStorei(exec, _es_PixelStorei); + SET_PolygonOffset(exec, _es_PolygonOffset); + SET_ReadPixels(exec, _es_ReadPixels); + SET_ReleaseShaderCompiler(exec, _es_ReleaseShaderCompiler); + SET_RenderbufferStorage(exec, _check_RenderbufferStorage); + SET_SampleCoverage(exec, _es_SampleCoverage); + SET_Scissor(exec, _es_Scissor); + SET_ShaderBinary(exec, _es_ShaderBinary); + SET_ShaderSource(exec, _es_ShaderSource); + SET_StencilFunc(exec, _es_StencilFunc); + SET_StencilFuncSeparate(exec, _es_StencilFuncSeparate); + SET_StencilMask(exec, _es_StencilMask); + SET_StencilMaskSeparate(exec, _es_StencilMaskSeparate); + SET_StencilOp(exec, _es_StencilOp); + SET_StencilOpSeparate(exec, _es_StencilOpSeparate); + SET_TexImage2D(exec, _es_TexImage2D); + SET_TexImage3DOES(exec, _es_TexImage3DOES); + SET_TexParameterf(exec, _es_TexParameterf); + SET_TexParameterfv(exec, _es_TexParameterfv); + SET_TexParameteri(exec, _es_TexParameteri); + SET_TexParameteriv(exec, _es_TexParameteriv); + SET_TexSubImage2D(exec, _es_TexSubImage2D); + SET_TexSubImage3DOES(exec, _es_TexSubImage3DOES); + SET_Uniform1f(exec, _es_Uniform1f); + SET_Uniform1fv(exec, _es_Uniform1fv); + SET_Uniform1i(exec, _es_Uniform1i); + SET_Uniform1iv(exec, _es_Uniform1iv); + SET_Uniform2f(exec, _es_Uniform2f); + SET_Uniform2fv(exec, _es_Uniform2fv); + SET_Uniform2i(exec, _es_Uniform2i); + SET_Uniform2iv(exec, _es_Uniform2iv); + SET_Uniform3f(exec, _es_Uniform3f); + SET_Uniform3fv(exec, _es_Uniform3fv); + SET_Uniform3i(exec, _es_Uniform3i); + SET_Uniform3iv(exec, _es_Uniform3iv); + SET_Uniform4f(exec, _es_Uniform4f); + SET_Uniform4fv(exec, _es_Uniform4fv); + SET_Uniform4i(exec, _es_Uniform4i); + SET_Uniform4iv(exec, _es_Uniform4iv); + SET_UniformMatrix2fv(exec, _es_UniformMatrix2fv); + SET_UniformMatrix3fv(exec, _es_UniformMatrix3fv); + SET_UniformMatrix4fv(exec, _es_UniformMatrix4fv); + SET_UnmapBufferOES(exec, _es_UnmapBufferOES); + SET_UseProgram(exec, _es_UseProgram); + SET_ValidateProgram(exec, _es_ValidateProgram); + SET_VertexAttrib1f(exec, _es_VertexAttrib1f); + SET_VertexAttrib1fv(exec, _es_VertexAttrib1fv); + SET_VertexAttrib2f(exec, _es_VertexAttrib2f); + SET_VertexAttrib2fv(exec, _es_VertexAttrib2fv); + SET_VertexAttrib3f(exec, _es_VertexAttrib3f); + SET_VertexAttrib3fv(exec, _es_VertexAttrib3fv); + SET_VertexAttrib4f(exec, _es_VertexAttrib4f); + SET_VertexAttrib4fv(exec, _es_VertexAttrib4fv); + SET_VertexAttribPointer(exec, _es_VertexAttribPointer); + SET_Viewport(exec, _es_Viewport); + + return exec; +} + +#endif /* FEATURE_ES2 */ diff --git a/lib/libGL/libmesa/shader/slang/library/Makefile b/lib/libGL/libmesa/shader/slang/library/Makefile deleted file mode 100644 index 3b637c1b9..000000000 --- a/lib/libGL/libmesa/shader/slang/library/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# $OpenBSD: Makefile,v 1.1 2010/05/22 20:14:15 matthieu Exp $ - -TOP = ${.CURDIR}/../../../../../../dist/Mesa - -GLSL_CL = ../../../../glsl/apps/compile -d = ${TOP}/src/mesa/shader/slang/library - -# -# builtin library sources -# - -BUILTIN = slang_common_builtin_gc.h slang_core_gc.h slang_fragment_builtin_gc.h slang_vertex_builtin_gc.h - -BUILTIN += slang_120_core_gc.h slang_builtin_120_common_gc.h slang_builtin_120_fragment_gc.h - - - -all: ${BUILTIN} - -clean: - rm -f *_gc.h - -install: - -slang_120_core_gc.h: ${d}/slang_120_core.gc - $(GLSL_CL) fragment ${d}/slang_120_core.gc slang_120_core_gc.h - -slang_builtin_120_common_gc.h: ${d}/slang_builtin_120_common.gc - $(GLSL_CL) fragment ${d}/slang_builtin_120_common.gc slang_builtin_120_common_gc.h - -slang_builtin_120_fragment_gc.h: ${d}/slang_builtin_120_fragment.gc - $(GLSL_CL) fragment ${d}/slang_builtin_120_fragment.gc slang_builtin_120_fragment_gc.h - -slang_common_builtin_gc.h: ${d}/slang_common_builtin.gc - $(GLSL_CL) fragment ${d}/slang_common_builtin.gc slang_common_builtin_gc.h - -slang_core_gc.h: ${d}/slang_core.gc - $(GLSL_CL) fragment ${d}/slang_core.gc slang_core_gc.h - -slang_fragment_builtin_gc.h: ${d}/slang_fragment_builtin.gc - $(GLSL_CL) fragment ${d}/slang_fragment_builtin.gc slang_fragment_builtin_gc.h - -slang_vertex_builtin_gc.h: ${d}/slang_vertex_builtin.gc - $(GLSL_CL) vertex ${d}/slang_vertex_builtin.gc slang_vertex_builtin_gc.h -.include <bsd.xorg.mk> diff --git a/lib/libGL/shlib_version b/lib/libGL/shlib_version index c10074d52..56246d02b 100644 --- a/lib/libGL/shlib_version +++ b/lib/libGL/shlib_version @@ -1,2 +1,2 @@ -major=10 +major=12 minor=0 |